Introduction
Lynis est un outil d'audit de sécurité écrit par CISOfy, utilisé partout dans le monde par les sysadmins et auditeurs. Il scanne votre système, vérifie 200+ contrôles (configurations SSH, kernel, file permissions, services exposés, certificats, packages obsolètes, etc.) et donne :
- Un Hardening Index (note de 0 à 100)
- Un rapport priorisé des points à corriger
- Des suggestions de remédiation concrètes
Idéal pour un audit initial après installation d'un VPS, ou avant une mise en production.
Prérequis
- VPS Linux (Debian, Ubuntu, CentOS, Fedora, RHEL, Arch)
- Accès root ou sudo (pour des résultats complets)
- 5-10 minutes pour le scan complet
Étape 1 : Installation
Via apt (Debian/Ubuntu)
sudo apt update
sudo apt install -y lynis
La version d'apt peut être en retard. Pour la dernière :
Via le repo officiel CISOfy
# Ajouter la clé et le repo
sudo apt install -y apt-transport-https
wget -O - https://packages.cisofy.com/keys/cisofy-software-public.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/cisofy.gpg
echo "deb https://packages.cisofy.com/community/lynis/deb/ stable main" | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list
sudo apt update
sudo apt install -y lynis
Vérifiez :
lynis show version
Étape 2 : Premier audit
sudo lynis audit system
Le scan prend 2-5 minutes. Lynis va dérouler plus de 50 catégories :
- Boot and services
- Kernel
- Memory and processes
- Users, groups and authentication
- Shells
- File systems
- Storage
- NFS, name services
- Ports and packages
- Networking
- Printers and spools
- Software : e-mail and messaging
- Software : firewalls
- Software : webserver
- SSH support
- SNMP support
- Databases
- LDAP services
- PHP
- Squid support
- Logging and files
- Insecure services
- Banners and identification
- Scheduled tasks
- Accounting
- Time and synchronization
- Cryptography
- Virtualization
- Containers
- Security frameworks
- File integrity
- Tooling
À la fin, vous obtenez :
================================================================================
Lynis security scan details:
Hardening index : 72 [############# ]
Tests performed : 247
Plugins enabled : 0
================================================================================
Étape 3 : Lire le rapport
Lynis affiche en couleur :
- 🟢 OK : tout va bien
- 🟡 WARNING : à corriger en priorité
- 🔵 SUGGESTION : amélioration possible
Exemple type :
[+] Software: file integrity
------------------------------------
- Checking file integrity tools
- AIDE [ NOT FOUND ]
- OSSEC [ NOT FOUND ]
- Samhain [ NOT FOUND ]
- Checking presence integrity tool [ NOT FOUND ]
Suggestion: Install a file integrity tool to monitor changes
to critical and sensitive files [FINT-4350]
Étape 4 : Inspecter le log détaillé
Lynis écrit tous les résultats dans /var/log/lynis.log :
sudo less /var/log/lynis.log
Pour les warnings uniquement :
sudo grep -i warning /var/log/lynis-report.dat
Pour les suggestions :
sudo grep -i suggestion /var/log/lynis-report.dat
Étape 5 : Lecture du Hardening Index
Le Hardening Index sur 100 indique votre niveau de durcissement. Repères :
- 0-50 : système non sécurisé (installation par défaut)
- 50-70 : configuration de base, quelques améliorations nécessaires
- 70-85 : bien sécurisé, niveau acceptable pour production publique
- 85+ : excellent, top 5% des serveurs
Un VPS Debian fraîchement installé est souvent autour de 55-65. Après hardening, on vise 80+.
Étape 6 : Top warnings classiques et leur correction
"USB devices auto-mount"
[WARNING] Disable USB devices [USB-1000]
Sur un VPS, désactivez USB storage :
echo "install usb-storage /bin/true" | sudo tee /etc/modprobe.d/disable-usb-storage.conf
"AIDE / file integrity"
Installez AIDE :
sudo apt install -y aide
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Lancez une vérif quotidienne via cron :
sudo crontab -e
0 5 * * * /usr/bin/aide --check | mail -s "AIDE Report $(hostname)" [email protected]
"No password aging configured"
sudo nano /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
"Disable ICMP timestamp requests"
Ajoutez à /etc/sysctl.conf :
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_timestamps = 0
sudo sysctl -p
"Banner missing"
sudo nano /etc/issue.net
Authorized access only. All activity is monitored.
Référencez-le dans SSH :
sudo nano /etc/ssh/sshd_config
Banner /etc/issue.net
"Kernel sysctl values not hardened"
sudo nano /etc/sysctl.d/99-hardening.conf
# Anti-spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.send_redirects = 0
# Log martians
net.ipv4.conf.all.log_martians = 1
# SYN flood protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
# Disable IP forwarding (si pas routeur)
net.ipv4.ip_forward = 0
# ASLR
kernel.randomize_va_space = 2
# Disable kexec (charge un autre kernel sans reboot)
kernel.kexec_load_disabled = 1
# Restrict ptrace
kernel.yama.ptrace_scope = 1
sudo sysctl --system
"rkhunter / chkrootkit not installed"
Installez les détecteurs de rootkits :
sudo apt install -y rkhunter chkrootkit
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
"Unused packages"
Listez et supprimez les packages inutiles :
sudo apt list --installed | grep -i "old\|deprecated"
sudo apt autoremove --purge
Étape 7 : Audit personnalisé
Pour ignorer certains tests inutiles dans votre contexte, créez un profile :
sudo nano /etc/lynis/custom.prf
# Ignorer certains tests
skip-test=USB-1000
skip-test=BANN-7126
# Compliance
compliance=disable
Lancez avec :
sudo lynis audit system --profile /etc/lynis/custom.prf
Étape 8 : Audit récurrent automatisé
Pour auditer chaque semaine et recevoir un rapport :
sudo crontab -e
0 4 * * 1 /usr/sbin/lynis audit system --cronjob > /var/log/lynis-weekly-$(date +\%F).log 2>&1 && mail -s "Lynis Weekly Audit $(hostname)" [email protected] < /var/log/lynis-weekly-$(date +\%F).log
Étape 9 : Audit centralisé avec Lynis Enterprise (optionnel)
Si vous gérez plusieurs VPS, CISOfy propose Lynis Enterprise (payant) : agents sur chaque serveur qui remontent leurs résultats vers une console centralisée. Pour 1-3 serveurs, la version Community gratuite suffit.
Étape 10 : Comparer dans le temps
Lynis enregistre l'historique des scans. Voyez l'évolution :
sudo lynis show details --quick
Ou exportez chaque scan dans un fichier daté pour suivre la progression du Hardening Index.
Dépannage
"Plugins directory not found"
sudo mkdir -p /usr/share/lynis/plugins/
Hardening Index reste bas malgré corrections
Relancez Lynis : il faut un nouveau scan pour mettre à jour le score.
sudo lynis audit system
Test spécifique échoue par défaut
Certains tests Lynis font des suppositions (ex: SE Linux activé). Sur Debian sans SELinux, ces tests fail systématiquement. Ignorez-les avec skip-test dans le profile custom.
Commandes utiles
# Audit complet
sudo lynis audit system
# Audit court (skip slow tests)
sudo lynis audit system --quick
# Tester un groupe spécifique
sudo lynis audit system --tests-from-group "kernel,authentication"
# Lister les tests disponibles
sudo lynis show tests
# Détails d'un test
sudo lynis show details TEST-ID
# Update Lynis
sudo lynis update info
sudo apt update && sudo apt upgrade lynis -y
# Audit dockerfile
sudo lynis audit dockerfile /path/to/Dockerfile
Conclusion
Lynis est l'outil de référence pour un audit rapide et complet. Lancez-le :
- Après chaque installation d'un nouveau VPS
- Avant de mettre en production un nouveau service
- Périodiquement (mensuel) pour détecter les régressions
Combinez avec d'autres outils complémentaires : rkhunter pour les rootkits, AIDE pour l'intégrité des fichiers, CrowdSec pour la protection runtime.
Ressources
- Site officiel : https://cisofy.com/lynis/
- GitHub : https://github.com/CISOfy/lynis
- Documentation : https://cisofy.com/documentation/lynis/


















