Sécuriser un serveur est une chose, s'assurer qu'il le reste en est une autre. Lynis est l'outil standard de l'industrie pour l'audit de sécurité, le "Hardening" et les tests de conformité (ISO27001, PCI-DSS). Voici comment l'utiliser comme un pro.
1. Pourquoi Lynis ?
Contrairement à un antivirus qui cherche des fichiers infectés, Lynis cherche des mauvaises configurations. Il scanne le noyau, les services installés, les permissions fichiers et les paramètres réseaux pour vous donner un "Hardening Index" (Score de sécurité).
2. Installation (La méthode propre)
Bien que Lynis soit dans les dépôts apt, la version est souvent obsolète. Pour un audit sérieux, nous allons cloner le dépôt GitHub officiel pour avoir les dernières signatures de sécurité.
# 1. On se place dans un dossier temporaire ou d'outils
cd /usr/local/share
# 2. On clone le dépôt officiel
sudo git clone https://github.com/CISOfy/lynis
# 3. On rend le tout accessible
cd lynis
sudo chmod +x lynis
3. Lancer votre premier Audit
L'audit se lance avec une simple commande. Lynis n'installe rien, il ne fait que lire votre configuration.
sudo ./lynis audit system
Le scan prend entre 1 et 3 minutes. Vous verrez défiler des centaines de tests avec des codes couleurs :
- j [OK] : Le test est passé.
- j [SUGGESTION] : Ce n'est pas critique, mais peut être amélioré.
- j [WARNING] : Problème de sécurité critique à corriger immédiatement.
4. Analyser le rapport et le Score
À la fin du scan, Lynis vous donne un Hardening Index (ex: 65/100). Ne visez pas forcément 100/100 (ce qui rendrait le système inutilisable), mais essayez de dépasser 80 pour un serveur de production.
Comprendre une erreur précise
Lynis vous donne un ID pour chaque suggestion (ex: SSH-7408). Pour savoir comment corriger le problème, utilisez la commande show details :
sudo ./lynis show details SSH-7408
L'outil vous expliquera pourquoi c'est un risque et souvent, quelle ligne modifier dans vos fichiers de config.
5. Automatisation (Cron & Reporting)
Un SysAdmin ne lance pas des commandes manuelles tous les matins. Nous allons automatiser l'audit pour qu'il tourne chaque nuit et nous prévienne uniquement s'il y a des Warnings.
Créez un petit script audit-daily.sh :
#!/bin/bash
LOG_FILE="/var/log/lynis-report.log"
AUDITOR="automaton"
# Lancement en mode non-interactif (--quick)
/usr/local/share/lynis/lynis audit system --auditor "${AUDITOR}" --cronjob > ${LOG_FILE}
# Grep pour voir s'il y a des warnings
if grep -q "Warning" ${LOG_FILE}; then
# Ici, vous pouvez insérer une commande mail ou une alerte Slack/Discord
echo "Attention : Des warnings ont été détectés sur le serveur $(hostname)" | mail -s "Alerte Lynis" admin@lml-info.fr
fi
Rendez le script exécutable et ajoutez-le au Crontab :
chmod +x audit-daily.sh crontab -e # Ajout de la ligne (Tous les jours à 4h00 du matin) 0 4 * * * /path/to/audit-daily.sh
Conclusion
Lynis est un allié indispensable. Couplé au tutoriel précédent sur la sécurisation SSH et Firewall, il vous permet de maintenir un niveau de sécurité professionnel et de prouver la conformité de votre infrastructure.