Effectuer un audit Lynis est le moyen le plus rapide d’obtenir une image honnête de la posture de sécurité de votre serveur Linux. Lynis est un outil d’audit de sécurité open source qui effectue plus de 300 vérifications — couvrant l’authentification, les permissions du système de fichiers, le durcissement du noyau, les services réseau, les vulnérabilités logicielles et les contrôles de conformité — puis produit un indice de durcissement entre 0 et 100. Dans ce guide, vous allez installer Lynis, interpréter sa sortie, appliquer les recommandations de durcissement les plus impactantes et automatiser des audits récurrents pour une conformité Linux continue.
Prérequis
- Un serveur Linux (Ubuntu 20.04/22.04, Debian 11/12, RHEL/CentOS/AlmaLinux 8/9 ou équivalent)
- Accès root ou
sudo - Familiarité de base avec la ligne de commande et la lecture des journaux
- Facultatif :
auditdetaideinstallés pour une couverture de tests complète
Installation de Lynis
Lynis est disponible dans les dépôts de paquets standard, mais le dépôt maintenu par CISOfy fournit toujours la dernière version — ce qui est important car les tests Lynis sont mis à jour fréquemment au fur et à mesure que de nouveaux CVE sont publiés.
Ubuntu / Debian :
sudo apt install -y apt-transport-https gnupg
curl -fsSL https://packages.cisofy.com/keys/cisofy-software-public.key | sudo gpg --dearmor -o /usr/share/keyrings/cisofy.gpg
echo "deb [signed-by=/usr/share/keyrings/cisofy.gpg] 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 lynis
RHEL / CentOS / AlmaLinux :
sudo rpm --import https://packages.cisofy.com/keys/cisofy-software-public.key
cat <<EOF | sudo tee /etc/yum.repos.d/cisofy-lynis.repo
[lynis]
name=CISOfy Software - Lynis package
baseurl=https://packages.cisofy.com/community/lynis/rpm/
enabled=1
gpgcheck=1
gpgkey=https://packages.cisofy.com/keys/cisofy-software-public.key
EOF
sudo yum install lynis
Vérifiez l’installation :
lynis show version
Lancer Votre Premier Audit Lynis
Un audit système complet prend 2 à 5 minutes et nécessite les droits root pour tester tous les contrôles :
sudo lynis audit system
Lynis affiche les résultats dans le terminal et écrit un journal détaillé dans /var/log/lynis.log ainsi qu’un rapport dans /var/log/lynis-report.dat. La sortie terminal utilise des étiquettes avec code couleur :
| Étiquette | Signification |
|---|---|
[OK] | Test réussi |
[WARNING] | Faille de sécurité — à corriger en priorité |
[SUGGESTION] | Amélioration recommandée — urgence moindre |
[FOUND] | Élément découvert (neutre) |
[NOT FOUND] | Outil ou fichier absent |
À la fin de l’analyse, recherchez la ligne Hardening index :
Hardening index : 62 [############ ]
Un nouveau serveur Ubuntu 22.04 avec les paramètres par défaut obtient généralement un score d’environ 60-65. Votre objectif est 80+.
Comprendre et Prioriser la Sortie Lynis
Avertissements — corriger en premier
Les avertissements indiquent de réelles failles de sécurité. Les avertissements courants sur une installation par défaut incluent :
- Connexion SSH root activée —
PermitRootLogin yesdans/etc/ssh/sshd_config - Aucun mot de passe pour GRUB — chargeur de démarrage non protégé
- Outils de compilation installés —
gccsur un serveur de production - Aucun pare-feu actif — aucune règle
ufw,firewalldouiptablestrouvée - Fichiers accessibles en écriture par tous — fichiers que n’importe qui peut modifier
Pour chaque avertissement, Lynis affiche un identifiant de test tel que SSH-7412. Utilisez-le pour rechercher la remédiation exacte :
lynis show details SSH-7412
Suggestions — durcir progressivement
Les suggestions sont des bonnes pratiques de sécurité qui ne sont pas urgentes mais qui améliorent votre score :
- Installer
auditdpour la journalisation d’audit au niveau du noyau - Activer la comptabilité des processus (
acct) - Configurer
umask 027pour des permissions de création de fichiers plus strictes - Ajouter
apt-listchangespour surveiller les notices de sécurité des journaux de paquets - Activer
AIDE(surveillance de l’intégrité des fichiers)
Actions de Durcissement Clés Après un Audit Lynis
Voici les correctifs à fort impact qui font le plus progresser l’indice de durcissement.
1. Durcir SSH
sudo nano /etc/ssh/sshd_config
Définissez ces valeurs :
PermitRootLogin no
PasswordAuthentication no
X11Forwarding no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowTcpForwarding no
Redémarrez SSH : sudo systemctl restart sshd
2. Appliquer le durcissement du noyau via sysctl
Créez /etc/sysctl.d/99-hardening.conf :
# Désactiver le routage source IP
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# Ignorer les redirections ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Activer la protection par cookies SYN
net.ipv4.tcp_syncookies = 1
# Journaliser les paquets martiens
net.ipv4.conf.all.log_martians = 1
# Désactiver IPv6 si non nécessaire
net.ipv6.conf.all.disable_ipv6 = 1
Appliquez : sudo sysctl --system
3. Installer et configurer auditd
sudo apt install auditd audispd-plugins
sudo systemctl enable auditd --now
Ajoutez des règles pour la journalisation des commandes privilégiées :
sudo auditctl -a always,exit -F arch=b64 -S execve -k exec_commands
4. Activer un pare-feu
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Après avoir appliqué ces quatre modifications, le score d’un serveur typique passe généralement de 62 à 75-80.
Comparaison : Lynis vs. Autres Outils d’Audit de Sécurité
| Outil | Type | Portée | Benchmarks CIS | Remédiation | Idéal pour |
|---|---|---|---|---|---|
| Lynis | Agent local | Linux/macOS | Partiel | Suggestions | Durcissement manuel par un administrateur système |
| OpenSCAP | Agent local | Linux | SCAP/XCCDF complet | Automatisée | Organisations axées conformité (DISA STIG) |
| CIS-CAT Lite | Agent local | Multi-OS | CIS complet | Rapport uniquement | Score de référence CIS |
| Wazuh | Agent + serveur | Multi-OS | Oui | Alertes | SIEM centralisé + conformité |
| Nessus Essentials | Scanner réseau | Multi-OS | Oui | Rapport | Analyse de vulnérabilités externe |
| Trivy | Conteneur/code | Conteneurs, IaC | Partiel | Rapport | Pipelines DevSecOps |
Lynis excelle pour le durcissement individuel de serveurs par un administrateur système. Pour les tableaux de bord de conformité à l’échelle de l’entreprise ou la sécurité des conteneurs, combinez Lynis avec Wazuh ou OpenSCAP.
Scénario Réel
Vous disposez d’un serveur web de production sous Ubuntu 22.04 avec Nginx, MySQL et une application Node.js. Il a été déployé il y a six mois et n’a jamais été audité. Une revue de sécurité est maintenant requise avant l’audit ISO 27001 de l’entreprise.
Vous exécutez sudo lynis audit system et obtenez un score de 58 avec 7 avertissements et 34 suggestions. Les avertissements critiques sont :
- Connexion SSH root activée — vos scripts de déploiement utilisent encore le compte root
- Aucune règle de pare-feu — l’instance s’appuie uniquement sur le groupe de sécurité cloud
- MySQL à l’écoute sur 0.0.0.0 — exposé inutilement au réseau interne
/tmpmonté avec les permissionsexec— permet l’exécution de code depuis les fichiers temporaires
Vous traitez chaque avertissement :
- Mettez à jour les scripts de déploiement pour utiliser un utilisateur dédié avec sudo, puis définissez
PermitRootLogin no - Ajoutez des règles
ufwautorisant uniquement les ports 22, 80 et 443 - Liez MySQL à
127.0.0.1dans/etc/mysql/mysql.conf.d/mysqld.cnf - Ajoutez
noexecau point de montage/tmpdans/etc/fstabet remontez
En relançant Lynis, vous obtenez un score de 79. Vous traitez cinq autres suggestions prioritaires (installer auditd, définir umask 027, désactiver les modules du noyau inutilisés) et atteignez 84 — bien au-dessus du seuil de 80 requis pour l’audit.
Pièges et Cas Particuliers
Le score varie selon ce qui est installé. Lynis ignore les tests pour les outils absents (par exemple, si postfix n’est pas installé, tous les tests liés à la messagerie sont ignorés). Un serveur minimal peut obtenir un score plus élevé simplement parce que moins de tests de surface d’attaque s’appliquent — pas parce qu’il est mieux durci.
Certaines suggestions entrent en conflit avec les exigences applicatives. Désactiver les outils de compilation (gcc) rapporte des points, mais un serveur qui compile des logiciels (runner CI, hôte de build) en a légitimement besoin. Exercez votre jugement — Lynis est un guide, pas un règlement absolu.
Relancer sans modifications peut donner des scores légèrement différents. Lynis teste l’état du système en temps réel. Si un processus démarre ou s’arrête entre deux exécutions, les scores peuvent varier de 1 à 2 points. Considérez cela comme un bruit normal.
Tests réservés au root. Exécuter Lynis en tant qu’utilisateur non-root ignorera de nombreux tests privilégiés et produira un score plus bas et moins significatif. Exécutez toujours avec sudo.
Profils personnalisés. Pour les environnements avec des exigences spécifiques (PCI-DSS, HIPAA), utilisez --profile pour charger un profil Lynis personnalisé qui active ou désactive des groupes de tests spécifiques. Copiez /etc/lynis/default.prf et modifiez-le pour supprimer les faux positifs propres à votre environnement.
Résolution de Problèmes
“Warning: lynis executable not found” — le paquet du dépôt CISOfy s’installe dans /usr/bin/lynis. Si vous avez installé via une archive tar, assurez-vous que le chemin est dans votre $PATH ou appelez-le avec le chemin complet.
L’audit se termine avec des erreurs de permission — certains tests vérifient /proc, /sys et /etc/shadow. Ceux-ci nécessitent root. Exécutez avec sudo lynis audit system, pas en tant qu’utilisateur ordinaire.
Fichier journal non écrit — /var/log/lynis.log nécessite des permissions d’écriture. Sur les systèmes avec SELinux en mode enforcing, vérifiez : ausearch -m avc -ts recent pour les refus liés à lynis. Vous devrez peut-être ajouter une politique SELinux personnalisée ou utiliser --logdir /tmp comme solution de contournement.
Le score a baissé après une mise à jour OS — les mises à jour de paquets peuvent installer de nouveaux logiciels que Lynis teste désormais. Examinez les nouveaux avertissements et suggestions introduits par la mise à jour ; ils représentent une surface d’attaque nouvellement détectée.
La tâche cron ne produit aucune sortie — exécutez avec --quiet --cronjob et redirigez la sortie vers un fichier : sudo lynis audit system --quiet --cronjob >> /var/log/lynis-cron.log 2>&1. Utilisez logrotate pour gérer la taille du fichier.
Résumé
- L’audit Lynis analyse plus de 300 contrôles de sécurité et produit un indice de durcissement de 0 à 100
- Les nouvelles installations Linux obtiennent généralement 55-65 ; visez 80+ pour les serveurs de production
- Traitez d’abord les éléments WARNING (vraies vulnérabilités), puis travaillez sur les éléments SUGGESTION
- Les correctifs à plus fort impact sont : désactiver la connexion SSH root, activer un pare-feu, installer auditd et appliquer le durcissement du noyau sysctl
- Lynis est en lecture seule — il ne modifie jamais votre système ; toutes les modifications sont appliquées manuellement
- Utilisez
--profilepour supprimer les faux positifs spécifiques à votre environnement - Planifiez des exécutions cron hebdomadaires pour maintenir votre score de durcissement dans le temps à mesure que le système évolue
- Pour la conformité en entreprise (CIS, DISA STIG), combinez Lynis avec OpenSCAP ou Wazuh