Scan de votre système Unix avec Lynis

I. Présentation de Lynis

Il y a quelques jours, je vous présentais LBSA, un script qui permet de détecter des configurations pouvant mettre en danger un système Linux. Aujourd'hui, nous allons voir l'outil Lynis, développé et maintenant par la société CISOfy. Il faut savoir que Lynis est sous licence open source (GPLv3) et est supporté par un grand nombre de distributions UNIX, de Debian, CentOS jusqu'à Mac OS.

Lynis est un outil qui va être très complet et très utile aux équipes d'administration système, il va en effet effectuer plusieurs dizaines de vérifications dans différents domaines du système pour finir par un rapport final ainsi que des suggestions sur la sécurisation du système. Nous allons ici voir l'installation de Lynis sur un système d'exploitation Debian 7 ainsi que son utilisation et l'étude de ses conclusions afin de vous faciliter l'utilisation de cet outil.

II. Téléchargement et installation de Lynis

Nous pouvons installer Lynis de deux façons, soit depuis les dépôts, soit depuis la source sur le site officiel :

 - Installation depuis la source :

On va commencer par aller chercher l'archive de l'outil sur le site de la société qui le développe, sur le lien suivant : http://cisofy.com/downloads/

On va donc récupérer le lien vers l'archive du script puis le télécharger sur le système :

wget https://cisofy.com/files/lynis-2.0.0.tar.gz

On décompresse l'archive :

tar zxvf lynis-2.0.0.tar.gz

Puis on va dans le dossier Lynis dans lequel on mettra les droits d'exécution au script principal, le fichier "Lynis" :

chmod 500 Lynis

On pourra donc utiliser le script depuis le répertoire dans lequel nous venons de le décompresser.

- Installation depuis les dépôts :

Depuis peu, on peut directement installer Lynis depuis les dépôts, ceci est généralement plus rapide d'installation et plus simple d'utilisation après l'installation. Il suffit pour cela, après s'être assuré que nos dépôts sont à jour, d'exécuter la ligne de commande suivante pour installer Lynis :

apt-get install lynis

On pourra alors utiliser la ligne de commande "Lynis" depuis n'importe quel endroit du système comme les commandes habituelles sont Linux. Nous allons maintenant passer à l'utilisation de Lynis.

III. Utilisation de Lynis

L'utilisation de Lynis est plutôt simple par rapport à la grande aide qu'il fournit aux utilisateurs et aux administrateurs système. Il faut savoir que les développeurs de l'outil le mettent régulièrement à jour afin qu'il sache détecter, par exemple, des vulnérabilités récentes. Nous allons donc voir dans un premier temps comment le mettre à jour, c'est une chose à faire avant chaque scan pour que l'outil soit utilisé de façon optimale.

Note : Pour les utilisateurs ayant installé Linux en téléchargeant l'archive et en décompressant son contenu, exécuter toutes les commandes présentées en étant dans le répertoire décompressé de Lynis et en ajoutant "./" avant la commande présentée.

lynis --check-update

Voici le résultat que j'obtiens :

lynis scan linux
Lynis vérifie qu'il est à jour.

Ici, on voit que dans mon cas, les bases de données des malware et des permissions de fichiers (qui sont des références locales sur lesquelles se base Lynis) sont à jour. En revanche le script en lui même ne l'est pas, on peut donc imaginer que les toutes dernières failles de sécurités ne vont pas être détectées sur mon système. Dans ce cas, si on "apt-get update ; apt-get upgrade" ne résout pas l'obsolescence du script, il est préférable de directement télécharger sa dernière version depuis les sources comme indiqué plus haut.

Note : La version de Lynis présente dans les dépôts par défaut de Debian 7 date de 2011, je conseille donc pour une utilisation optimale d'utiliser l'installation via la source en téléchargeant le script sur le site officiel. Cette version à jour sera utilisée pour la suite du tutoriel.

On va ensuite chercher à exécuter une première fois Lynis, pour cela, rien de plus simple que la ligne de commande suivante :

./Lynis -c

L'option "-c" permet d'effectuer la totalité des vérifications contenues dans l'outil Lynis.

Note : Il faut savoir que Lynis n'effectue aucune modification de paramétrage sur le système.

Voici une partie des résultats obtenus. On commence par avoir un état du système actuel :

lynis scan linux
Voici la première partie affichée lors de l'exécution des vérifications Lynis

Parmi les tests effectués, on retrouve par exemple le boot et les services au démarrage, Lynis détecte ici par exemple que la modification du GRUB n'est pas soumise à mot de passe, une astuce dont nous avons déjà parlé sur IT-Connect (mettre un mot de passe au GRUB) !

lynis scan linux
Voici la partie des tests de Lynis qui concerne le boot et les services de démarrage

Voici les vérifications effectuées par Lynis au niveau des utilisateurs, des groupes et du système authentification :

lynis scan linux
Ici, Lynis vérifie les paramétrages et les configurations à propos des utilisateurs et de l'authentification

Lorsqu'il est marqué "SUGGESTION" ou "WARNING", Lynis développera plus de détail dans le rapport final, pas de panique donc. Voici le scan du service SSH :

lynis scan linux
Lynis vérifie également la configuration SSH du système.

Lynis rapporte ici que l'option "PermitRootLogin" n'est pas configurée et que l'utilisateur root peut se connecter en SSH, ce qui est déconseillé. À la fin de l'analyse, Lynis va donc récapituler les Warnings et les Suggestions détectées sur l'ensemble des vérifications :

lynis scan linux
Résumé des Warnings trouvé par Lynis sur mon système

Ici, on voit par exemple que Lynis a détecté que mon système était vulnérable à la faille ShellShock qui est une faille récente (à la date d'écriture de cet article), on peut également voir "Root can directly login via SSH", ce qui se réfère à la détection du "PermitRootLogin" vu plus haut... On pourra donc ensuite trouver des suggestions que Lynis va nous faire pour améliorer la sécurité de notre système :

lynis scan linux
Suggestions faites par Lynis pour améliorer la sécurité de mon système après analyse.

On voit par exemple que Lynis nous suggère de mettre en place un umask plus strict dans le fichier /etc/login.defs, astuce également développée sur IT-Connect (Gestion de l'umask)

Note : ce rapport final pour être retrouvé dans le dossier /var/log/lynis-report.dat

Il est également intéressant de savoir que l'on peut tout à fait n'effectuer qu'un ou plusieurs tests et non la totalité de ceux-ci en utilisant la syntaxe suivante à la suite de notre ligne de commande :

    --tests "<tests>"             : N'exécute que les tests indiqués
    --tests-category "<category>" : N'exécute que les tests des catégories indiquées

Lynis est un outil intéressant car il permet d'avoir un état des lieux de la sécurité d'une machine. Il ne faut néanmoins par oublier que ces tests ne sont pas exhaustifs et que ce n'est pas parce que Lynis ne détecte pas de défaut que le système est à 100% sécurisé. Il ne s'agit là donc uniquement d'un outil d'aide à la sécurisation d'un système.

IV. Plannification de l'exécution Lynis

Lynis prévoit également la possibilité de faire exécuter ses vérifications par une tâche planifiée. Il existe en effet l'option "--cronjob" qui va exécuter l'intégralité des tests de Lynis sans besoin de validation ou d'action utilisateur. On peut alors très simplement créer un script qui va lancer Lynis et mettre la sortie dans un fichier horodaté et avec le nom du serveur en question. Voici un fichier de ce type que vous pourrez mettre dans le dossier /etc/cron.daily :

#!/bin/sh
mkdir /var/log/lynis
NOM_AUDITEUR="tache_crontab"
DATE=$(date +%Y%m%d)
HOTE=$(hostname)
LOG_DIR="/var/log/Lynis"
RAPPORT="$LOG_DIR/rapport-${HOTE}.${DATE}"
DATA="$LOG_DIR/rapport-data-${HOTE}.${DATE}.txt"

cd /root/Lynis./Lynis -c --auditor "${NOM_AUDITEUR}" --cronjob > ${RAPPORT}
mv /var/log/lynis-report.dat ${DATA}

La variable "NOM_AUDITEUR" est simplement une variable que l'on va mettre en l'option "--auditor" de Lynis afin que ce nom soit affiché dans le rapport :

lynis scan linux
Nous voyons ici le nom de l'auditeur dans le rapport Lynis comme précisé dans le script.

On va également créer quelques variable contextuelles qui vont permettre de mieux nous organiser comme le nom de l'hôte et la date pour nommer le rapport et l'horodater ainsi que le chemin vers le dossier dans lequel nous souhaitons mettre nos rapports.

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael a publié 475 articles sur IT-Connect.See all posts by mickael

    2 réactions sur “Scan de votre système Unix avec Lynis

    Laisser un commentaire

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