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