Quelques bonnes pratiques de sécurisation d’un serveur Linux, partie 5

closeCet article a été publié il y a 8 ans 8 mois 12 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

En conclusion du précédent article, j’ai évoqué le fait qu’il ne fallait jamais « se reposer sur ses lauriers » (référence à l’empire romain). Il est donc nécessaire de vérifier en permanence l’état de la sécurité, ce qu’on appelle pratiquer des audits. Plusieurs outils existent, y compris pour le deuxième point : la supervision. Vérifier l’état d’une machine est un bon moyen de détecter une attaque potentielle. Voyons ça d’un peu plus près.

Rappel : il est évident qu’on ne saurait être exhaustif quand il s’agit de sécurité. Que ce soit le contexte d’installation du serveur ou son utilisation, je ne saurais couvrir tous les besoins. Aussi, il ne faut pas hésiter à me corriger quand je dis une énorme connerie 🙂

Audit

Vous avez certainement rencontré le terme d’audit dans le cadre professionnel. Il s’agit en effet de contrôler la conformité de procédures, de critères en rapport avec des objectifs à réunir, ou de normes à respecter (ISO 9001, si tu m’entend…). Le principe est le même en informatique, à fortiori sous Linux, un audit de sécurité permettra de valider certains comportements de votre installation. Et de procéder à certaines corrections au besoin.

Lynis

Lynis est un script « clé-en-main » pour valider la sécurité de plusieurs systèmes (BSD, Unix proprios, Mac OS…), dont notre manchot favori. Il n’a que très peu de dépendances (au pire, vous verrez ce qui manque à la première utilisation), et vous donnera les résultats pour chaque point qu’il aura analysé. Libre ensuite à vous de corriger le tir/adapter la configuration pour qu’il ne râle plus trop. Petit raffinement, monsieur est sous licence GPL.

secu-lynis-screenshot

LBSA

LBSA est un autre script shell analysant votre installation pour vous indiquer les points dangereux à scruter/corriger. Son code est disponible à cette adresse, par contre, il semble ne pas avoir été mis à jour depuis plus d’un an.

WPScan

Je le mets ici à titre d’exemple, pour montrer qu’au contraire des outils « génériques » présentés juste au dessus, il existe aussi des outils plus dédiés à une application. Ici, c’est WordPress qui aura les faveurs de cet utilitaire. Cet outil écrit en Ruby dont le code est disponible sur GitHub analyse votre installation de fond en comble. Et vous verrez que les infos qu’il sait récupérer sont nombreuses, très nombreuses. On comprendra dès lors le besoin de « museler » un peu un site.

L'image remonte un peu, tentez vous verrez je suis à jour :P

L’image remonte un peu, je suis à jour 😛

Mickael Dorigny en parle plus longuement sur son blog information-security.fr avec moultes captures d’écran.

La supervision

La supervision consiste en premier lieu à surveiller la santé de la machine afin de détecter une défaillance quelconque (logicielle ou matérielle). On peut aussi l’utiliser pour détecter d’éventuels tentative d’attaques. Ces outils, au delà de mesurer plusieurs valeurs comme l’activité réseau, la quantité de mémoire consommée par les processus, la charge du CPU, celle des disques durs, peuvent aussi vous alerter si ces valeurs dépassent certains seuils. Certains vont même plus loin en prenant directement des mesures (redémarrage de programmes, lancement de scripts dédiés à la « réparation »).

En ce sens, Fail2ban est pratiquement à considérer comme un tel outil, puisqu’il analyse l’activité d’autres applications pour prendre une décision : bannir une adresse qui revient trop souvent dans des conditions qu’elle ne devrait pas répéter (auth fail, 404 à répétitions). Mais voyons d’autres outils.

Munin

Un vétéran si l’on peut dire, je l’utilise personnellement depuis plus de six ans chez les T-OC sur les différentes machines qui nous sont passées sous les mains, et toujours sous Debian. Pas mal de plugins sont disponibles, on en trouve plusieurs autres « non-officiels » (pour les serveurs Call of Duty, pour Teamspeak, Mumble), et vous pouvez fabriquer vos propres plugins aussi avec le langage de votre choix (même si beaucoup d’entre eux sont écrits en Perl).

Il est composé de deux éléments : les nodes, qui se chargent de recueillir les valeurs, et un « master » qui se charge de contacter les nodes pour grapher tout ça. Voilà un exemple (très lourd, certes) de ce qu’on a actuellement sur notre machine :

Ça en fait des graphes, hein ?

Ça en fait des graphes, hein ?

Le site regroupe présentation, documentation, forums… Le dépôt GitHub est une mine, notamment pour les plugins tiers. Il permet lui aussi de définir des seuils d’alertes pour certaines valeurs.

Glances

Contrairement à Munin qui garde un historique sur un an des mesures, Glances est un outil de supervision « instantané ». Depuis les dernières versions, il permet en plus de générer des alertes. Je n’en parlerais pas plus, son auteur étant évidemment plus précis que moi sur le sujet, puisqu’il s’agit de Nicolas Hennion alias Nicolargo. La version 2.3 est sortie il y a peu de temps, la 2.4 étant sur le point de la remplacer.

secu-glances-masterOn peut l’installer en mode « serveur » et s’y connecter à distance avec une version locale de Glances installée sur sa machine. Sympa pour simplement vérifier l’état sans lancer toute la batterie SSH.

Shinken

Réécriture en Python du poids lourd Nagios réputé en entreprise, Shinken, tout en suivant maintenant sa propre voie, reste compatible avec une vaste majorité des plugins à destination du « grand frère ». Je dois toujours m’y intéresser d’un peu plus près, et suite à plusieurs « soucis », mes expérimentations sont repoussées. Mais vous êtes entre de bonnes mains, celles de Jean Gabès.

secu-shinken-logo

Il repose notamment sur le protocole SNMP, qui permet de recueillir pas mal d’informations sans avoir à installer de plugins sur les machines « cibles ». La documentation est assez fournie (manque un peu de français, mais c’est commun à tellement d’outils dans l’informatique…). Bref, y’a de quoi s’amuser.

NB : Fait amusant, Shinken a besoin de MongoDB pour stocker ses informations 🙂

En fait, c’est pas fini

J’avais dit que ça serait probablement le dernier article. En fait, j’aimerais évoquer certains outils dont je connais l’existence, mais que je n’ai jamais eu l’occasion ni/ou le courage de tester/d’utiliser. Aucun spoil, va falloir que je potasse un peu pour ne pas me planter en vous les présentant 🙂

4 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
C138
C138
10/08/2015 15:46

apt-cache policy lynis
lynis:
Installé : 1.3.9-1
Candidat : 1.3.9-1
Table de version :
*** 1.3.9-1 0
500 http://fr.archive.ubuntu.com/ubuntu/ trusty/universe i386 Packages

😉

C138
C138
10/08/2015 15:55

(je sais pas si déjà évoqués ici) On peut aussi signaler pour la famille deb*, les paquets harden* hardening-includes – Fichier Make pour permettre des drapeaux du compilateur pour le renforcement de la sécurité hardening-wrapper – Adaptateur du compilateur pour activer les indicateurs de renforcement de la sécurité harden-environment – Hardened system environment harden-surveillance – Check services and/or servers automatically harden – Renforce votre système harden-clients – Éviter les clients qui sont connus pour être non sécurisés harden-development – Outils de développement pour créer des programmes plus sûrs harden-doc – Documentation utile pour sécuriser un système Debian harden-nids – Sécurisation… Lire la suite »

C138
C138
10/08/2015 16:02

« Il [Lynis] n’a que très peu de dépendances (au pire, vous verrez ce qui manque à la première utilisation) »
Une manière de le savoir est de lancer ainsi (avec le paquet auto-apt)

auto-apt run lynis [options]
Et de répondre aux questions… (si l’on sait ce que l’on fait 😉