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 : auditd et aide installé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 :

ÉtiquetteSignification
[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éePermitRootLogin yes dans /etc/ssh/sshd_config
  • Aucun mot de passe pour GRUB — chargeur de démarrage non protégé
  • Outils de compilation installésgcc sur un serveur de production
  • Aucun pare-feu actif — aucune règle ufw, firewalld ou iptables trouvé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 auditd pour la journalisation d’audit au niveau du noyau
  • Activer la comptabilité des processus (acct)
  • Configurer umask 027 pour des permissions de création de fichiers plus strictes
  • Ajouter apt-listchanges pour 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é

OutilTypePortéeBenchmarks CISRemédiationIdéal pour
LynisAgent localLinux/macOSPartielSuggestionsDurcissement manuel par un administrateur système
OpenSCAPAgent localLinuxSCAP/XCCDF completAutomatiséeOrganisations axées conformité (DISA STIG)
CIS-CAT LiteAgent localMulti-OSCIS completRapport uniquementScore de référence CIS
WazuhAgent + serveurMulti-OSOuiAlertesSIEM centralisé + conformité
Nessus EssentialsScanner réseauMulti-OSOuiRapportAnalyse de vulnérabilités externe
TrivyConteneur/codeConteneurs, IaCPartielRapportPipelines 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 :

  1. Connexion SSH root activée — vos scripts de déploiement utilisent encore le compte root
  2. Aucune règle de pare-feu — l’instance s’appuie uniquement sur le groupe de sécurité cloud
  3. MySQL à l’écoute sur 0.0.0.0 — exposé inutilement au réseau interne
  4. /tmp monté avec les permissions exec — 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 ufw autorisant uniquement les ports 22, 80 et 443
  • Liez MySQL à 127.0.0.1 dans /etc/mysql/mysql.conf.d/mysqld.cnf
  • Ajoutez noexec au point de montage /tmp dans /etc/fstab et 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 --profile pour 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

Articles Connexes