Dans ce billet, je vais décrire les quelques étapes préliminaires que j'effectue avant d'installer des services sur un serveur que j'administre.

Sauvegarde

Je commence par mettre en place mon script de sauvegarde. Comme je suis en auto-hébergement, j'ai une autre machine sur mon réseau local qui fait office de disque externe. Je rapatrie aussi des sauvegardes sur une autre de mes machines portables qui est à l'extérieur. En gros, je sauvegarde

  1. /var/www
  2. /etc
  3. /home

Sauvegarder /etc peut peut-être vous surprendre. Disons que mes notes peuvent être lacunaires et si j'ai besoin de remonter une machine rapidement, ce sera toujours moins stressant/plus facile d'avoir cette feuille de triche sous la main. Comme dans la suite je vais mettre en place un certain nombre de service, ça me donnera l'occasion de vérifier que ça tourne bien.

A noter que mon /etc est suivi avec etckeeper. C'est pas de la sauvegarde, mais je vais le ranger ici.

Monitoring

J'aime que ma machine me parle. J'utilise deux projets. Logwatch et monit.Logwatch surveille les logs et m'envoie chaque matin une version "digérée". Ca me permet de savoir que ma machine est bien vivante à chaque petit dej. Monit permet d'envoyer des alertes quand un événement se produit : redémarrage/arrêt d'un service, utilisation élevée du CPU...

Ceci dit, je n'aime pas trop la configuration de monit. Peut-être que supervisord pourrait me donner plus grande satisfaction. (Des avis ?)

Il existe bien sûr des solutions plus évoluées, mais elles le sont beaucoup trop quand on est en possession d'une petite machine et non d'un parc de machines.

Investigation

Ca, c'est pour le moment où je suis arrivé sur la machine. J'aime avoir :

  1. htop (top en mieux)
  2. iotop (le top les IO)
  3. glances Super outil.
  4. des outils réseaux (host, dig, nslookup, traceroute...)

Pour glances, je ne le range pas dans le monitoring car même s'il a une gestion client/serveur, je considère que le monitoring ne doit pas me demander de rester rivé sur un écran.

Santé

Coté santé de la machine, je mets

  1. smartmontools. Ca donne la possibilité d'être prévenu d'un futur pépin.
  2. lm-sensors pour les températures.

Prévention

En vrac :

  1. ntp (On s'assure que les logs sont à l'heure, si on doit recouper l'information, ce sera utile ; et puis avoir une machine à l'heure, c'est bien)
  2. par-feu : ufw simple et efficace
  3. safe-rm : afin d'éviter les catastrophes, on blacklist des répertoires sensibles
  4. molly-guard pour éviter un arrêt malheureux à distance.
  5. fail2ban, bien connu je pense...
  6. rkhunter

Mise à jour

Là, c'est spécifique à l'OS. Pour debian :

  1. apt-listbug : vérifie les rapports avant d'installer un paquet
  2. cron-apt  : vérifie la disponibilité de maj et envoie un courriel

Fin

Je pense avoir fait le tour. A titre indicatif, smartmontools et monit m'ont donné des alertes pertinentes. Si vous avez des alternatives ou des compléments à suggérer, je suis ouvert :)