Objectifs de l`activité
Transcription
Objectifs de l`activité
Objectifs de l'activité : Théoriquement : Administrer une machine Linux avec le pack Linux SSH. Pratiquement : Installer le serveur SSH Générer des clés asymétriques pour SSH et les exporter Tester SSH Installer le pack Linux SSH Tester la supervision Matériel nécessaire : Deux machines virtuelles avec Linux Debian Wheezy 64 bits graphique installé pour avoir le navigateur, gedit et Shinken. Une machine superviseur (appelée ici SHINKEN) et une machine supervisée (appelée ici GLPI). Résultat attendu : La supervision de la machine GLPI par la machine Shinken par l’intermédiaire de SSH avec envoi de mail en cas de problème. Un compte rendu démontrant que la supervision se déroule avec succès et que les notifications sont envoyées devra être rédigé, les copies d'écran et les commentaires seront nécessaires. Organisation Travail individuel. Travail à faire Chaque partie comporte des travaux à faire. Auteur Roger Sanchez pour le réseau CERTA http://www.reseaucerta.org © CERTA (Roger Sanchez) - Mars 2015 – v1.0 Page 1 Partie 1 : SSH Nous travaillons sur 2 machines Linux. La machine superviseur est appelée shinken ici et la machine supervisée est appelée glpi. Travail à faire : Effectuer les commandes et vérifier leur bonne exécution Il faut installer sur glpi le serveur SSH. root@debianGLPI:~# apt-get install openssh-server Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Le paquet suivant a été installé automatiquement et n'est plus nécessaire : xulrunner-10.0 .etc. On vérifie que le port 22 (SSH) est bien à l‘écoute. root@debianGLPI:~# netstat -tlnp | grep 22 tcp 0 0 0.0.0.0:22 0.0.0.0:* tcp6 0 0 :::22 :::* LISTEN 3598/sshd LISTEN 3598/sshd On créé maintenant sur glpi un utilisateur shinken qui nous permettra de nous connecter à distance via SSH (ce serait une mauvaise pratique que d’utiliser root d’autant que les commandes ssh utilisés par shinken n’ont pas besoin des privilèges root). Sur glpi root@debianGLPI:~# adduser shinken Ajout de l'utilisateur « shinken » ... Ajout du nouveau groupe « shinken » (1001) ... Ajout du nouvel utilisateur « shinken » (1001) avec le groupe « shinken » ... Création du répertoire personnel « /home/shinken »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : Aucun mot de passe fourni Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur shinken Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n] Sur Shinken on va générer une paire de clé pour authentifier et crypter la communication SSH. On le fait bien sur avec l’utilisateur Shinken qui est associé aux différents processus de supervision. root@debianWheezy:~# su shinken shinken@debianWheezy:/root$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/shinken/.ssh/id_rsa): Created directory '/home/shinken/.ssh'. http://www.reseaucerta.org © CERTA (Roger Sanchez) - Mars 2015 – v1.0 Page 2 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/shinken/.ssh/id_rsa. Your public key has been saved in /home/shinken/.ssh/id_rsa.pub. The key fingerprint is: b6:ac:ba:a6:96:89:3c:c0:37:45:fb:37:23:ae:cf:02 shinken@debianWheezy The key's randomart image is: +--[ RSA 2048]----+ .etc. On copie maintenant la clé publique générée dans le répertoire de l’utilisateur distant shinken (attention à ne pas confondre ici, on a un utilisateur shinken sur la machine shinken et un utilisateur shinken sur la machine glpi d’adresse 172.16.20.100, adresse à adapter pour vous). shinken@debianWheezy:/root$ ssh-copy-id -i ~/.ssh/id_rsa [email protected] [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. .etc. On peut vérifier la copie sur glpi shinken@debianGLPI:~# cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjLSwTrbhJqxFuyyNq8qMCFInqgk7gIOZG/+CMBWJY45 cotuC3K91NLZZR6VGyLwr1cQaDgVikNUgSJhzG5lXMPm9Mj3A8xQS5eQC4lOW0iFfhBEM+dYCATr GIhHigrvriGtdy5OgA13NU6EdKsL4hy2B3PIDFFdHTQqQmSCNzwuf9DKtSU19Cl66w8gRvMnhZx0tF 8ZOMjnsyFgDl/UzFjnGkCmruJKBvti03+knikbAwulg7+m8K+cJn9b8AW+kgnC+Lxb1L/OUgsikcxLVby MfFVZBLPZpMfp6MM9RR+LCdzumhhw00Z7LF9+pOGpAE2yVX4sUPItw6dwN9g4Mf shinken@debianWheezy et on peut vérifier à partir de shinken la connexion ssh (notez qu’on se trouve bien sur glpi à la fin de l’instruction (exit pour revenir). shinken@debianWheezy:/root$ ssh [email protected] -i ~/.ssh/id_rsa Linux debianGLPI 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Mar 18 14:43:28 2015 from debianwheezy.local shinken@debianGLPI:~$ Rappel (wikipedia): Avec SSH, l'authentification peut se faire sans l'utilisation de mot de passe ou de phrase secrète en utilisant la cryptographie asymétrique. La clé publique est distribuée sur les systèmes sur lesquels on souhaite se connecter. La clé privée, qu'on prendra le soin de protéger par un mot de passe, reste uniquement sur le poste à partir duquel on se connecte. http://www.reseaucerta.org © CERTA (Roger Sanchez) - Mars 2015 – v1.0 Page 3 Partie 2 : Supervision avec le pack linux-ssh On va maintenant installer le pack shinken avec ‘utilisateur shinken On vérifie le nom du pack shinken@debianWheezy:/root$ shinken search linux WARNING: gnome-keyring:: couldn't connect to: /root/.cache/keyring-RZBtou/pkcs11: Permission denied glances (david-guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server linux-snmp (naparuba) [pack,linux,snmp] : Linux checks based on SNMP linux-ssh (naparuba) [pack,linux,ssh] : Linux checks based on SSH without any script on distant server pack-glances (david-guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server raspberrypi (frescha) [pack,linux,raspberrypi,server,os] : Standard checks varnish-ssh (kokosny) [pack,linux,varnish,ssh] : varnish checks based on ssh shinken@debianWheezy:/root$ sur shinken et on l’installe shinken@debianWheezy:/root$ shinken install linux-ssh WARNING: gnome-keyring:: couldn't connect to: /root/.cache/keyring-RZBtou/pkcs11: Permission denied Grabbing : linux-ssh OK linux-ssh On trouve maintenat de nouvelles sondes dans libexec shinken@debianWheezy:/root$ ls /var/lib/shinken/libexec/ check_cpu_stats_by_ssh.py check_ssh_connexion.py check_disks_by_ssh.py check_ssh_proxy_check.py check_disks_stats_by_ssh.py check_tcp_states_by_ssh.py check_kernel_stats_by_ssh.py check_uptime_by_ssh.py check_linux.py discovery check_load_average_by_ssh.py dump_vmware_hosts.py check_logfiles external_mapping.py check_mdadm_by_ssh.py LICENSE check_memory_by_ssh.py link_libvirt_host_vm.py check_netint.pl link_vmware_host_vm.py check_net_stats_by_ssh.py link_xen_host_vm.py check_nfs_stats_by_ssh.py logFiles_linux.conf check_ntp_sync_by_ssh.py notify_by_xmpp.ini check_processes_by_ssh.py notify_by_xmpp.py check_ro_filesystem_by_ssh.py README.md checks schecks.py check_shinken.py schecks.pyc check_snmp_load.pl send_nsca.py check_snmp_mem.pl service_dependency_mapping.py check_snmp_storage.pl utils.pm On peut tester une sonde shinken@debianWheezy:/root$ /var/lib/shinken/libexec/check_load_average_by_ssh.py -H 172.16.100.20 ERROR : this plugin needs the python-paramiko module. Please install it Il faut installer un paquet supplémentaire shinken@debianWheezy:/root$ apt-get install python-paramiko http://www.reseaucerta.org © CERTA (Roger Sanchez) - Mars 2015 – v1.0 Page 4 Et on re-teste en fournissant notre clé toutefois shinken@debianWheezy:/root$ /var/lib/shinken/libexec/check_load_average_by_ssh.py -H 192.168.1.26 -i ~/.ssh/id_rsa Ok: load average is good 0.00,0.01,0.05 | load1=0.00;1.00;2.00;; load5=0.01;1.00;2.00;; load15=0.05;1.00;2.00;; Ça marche ! Relançons shinken et vérifions ce que nous dit webui Ça a l’air pas trop mal, on peut compléter tout ça en regardant les diiférents fichiers de configuration présents dans /etc/shinken/packs/linux-ssh shinken@debianWheezy:/root$ ls /etc/shinken/packs/linux-ssh/ commands.cfg discovery.cfg linux-ssh.pack services templates.cfg http://www.reseaucerta.org © CERTA (Roger Sanchez) - Mars 2015 – v1.0 Page 5