Configuration et sécurisation d’un serveur Linux Debian Jessie: Partie 3

Dernière partie de l’article sur la configuration et la sécurisation d’un serveur Linux Debian. La première ce trouve ici. La seconde .

A ce stade le serveur fonctionne bien et possède une sécurisation minimale. Mais qu’arrive-t-il si pour une raison ou une autre un des services tombe ? Dans ce dernier chapitre on va se concentrer sur la partie monitoring du serveur.

Partie 3: Monitoring

Surveillance du disque dur

Le disque dur est un organe central d’un serveur dédié. Avec le temps, de petites détériorations peuvent apparaître et entraîner une perte de données ou une instabilité du système.

Si comme moi vous avez un serveur Kimsufi chez OVH, il faut savoir que la surveillance du disque dur de la machine est à vôtre charge. En cas de panne de ce dernier il vous faudra prévenir l’hébergeur afin qu’il procède au remplacement de la pièce.

L’idée est donc de contrôler l’état du disque du serveur afin de diagnostiquer un éventuel problème qui pourrait conduire au changement préventif du disque. Pour cela nous allons utiliser le protocole SMART. SMART est une technologie implémentée dans les disques durs permettant permet ainsi de collecter en permanence des informations sur la santé du matériel.

Comme d’habitude l’installation s’effectue via le gestionnaire de paquets

On va identifier le disque avec la commande fdik -l.

fdisk

Le disque est donc sda. Normalement c’est sda si vous n’avez qu’un seul disque dans le serveur.

Petit test rapide en manuel

La commande doit retourner

Si la commande ne retourne pas « PASSED » c’est que le disque est en train de passer l’arme à gauche.

On va vérifier à présent se qui est faisable avec le SMART de vôtre disque.

Ce qui donne pour le disque de mon serveur perso

smart-abilities

La ligne intéressante est « Self-test supported ». Le disque peut s’auto diagnostiquer.

Cette ligne vous donne aussi une idée des durées de test estimés. Pour un test court (short) c’est une minute dans mon cas. 43 minutes pour un long (Extended).

On va justement lancer un test rapide

Le résultat nous demande d’attendre une minute.

A la fin de cette minute on peut regarder le résultat avec la commande:

Qui nous donne

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 8867 –
# 2 Short offline Completed without error 00% 8863 –

Completed without error donc c’est tout bon! Bref ça c’était la partie manuel pour se rassurer que tout va bien. On va maintenant automatiser un peu. Pour cela rien de plus simple. Smartmontools est livré avec son propre deamon qu’il faut juste régler.

Pour que le démon se lance au démarage du serveur on décommante la ligne suivante dans le fichier /etc/default/smartmontools

On édite ensuite le fichier /etc/smartd.conf.

On commande la ligne par défaut.

On ajoute notre disque.

Explication des paramètres

  • -a : Monitor la santé du disque
  • -d : Précise le type de disque
  • -o : Offline test
  • -S : Autosave
  • -m : adresse ou envoyer le mail d’alerte
  • -M : en mode test pour vérifier de suite que l’envoi de mail est ok

On démarre le programme pour prendre en compte les changements.

On reçoit le mail de test

mail_test_smartmontools

 

C’est tout bon, on édite à nouveau le fichier de configuration pour remplacer le paramètre -M comme ceci

On redémarre pour prendre en compte et c’est fini. Le prochain mail reçu de sa part sera à prendre avec considération car cela voudra dire qu’il y a un problème avec le disque.

Petite supervision

Je dis « petite » parce que en terme de supervision il existe de l’artillerie lourde sur Linux (nagios, centreon, skinken,etc…). Si vous êtes intéressé par ce sujet j’ai un article pour vous ici. Sinon on va mettre en place un petit outil nommé Monit.

Monit est un outil de surveillance des services locaux installés sur une machine. Monit est capable de surveiller un service mais aussi de tenter une réparation de lui même en relançant un programme en cas de problème ou de simplement alerter l’administrateur. Il est possible aussi de créer des script afin d’affiner au maximum la supervision en fonction de vos besoins. Plus encore, Monit dispose d’une interface web.

monit_gui

Installation du programme

On commence par effectuer les réglages de base dans le fichier /etc/monit/monitrc

On peux laisser par défaut la surveillance de la mémoire, du CPU et du load average

La documentation est très explicite mais je vais vous mettre quelques exemples quand même.

On va créer un fichier /etc/monit/conf.d/mon_serveur. Dans ce fichier on place la configuration spécifique de se que l’on veut superviser.

Par exemple, j’ai un serveur web apache, les ligne suivante permettent de vérifier que le service tourne et de tenter de le lancer si ce n’est pas le cas

Ici je vérifie mon serveur SSH. Si la connexion n’est pas possible alors Monit tentera de le relancer

Une alerte dans le cas ou le disque dur contenant le système dépasse 90%

Il est possible de faire ses propres scripts. Un exemple simple en python. Je créé un script /etc/monit/check_coucou.py dans lequel je place les lignes suivantes:

Ce code vérifie que le fichier coucou.txt est bien présent. Il retourne 0 si le fichier est présent, 1 sinon.

Pensez bien à rendre le script exécutable

 

Et au niveau du fichier de configuration de monit on ajoute le script comme ceci

On relance le service pour prendre en compte  et c’est tout bon.

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *