Audit de sécurité Linux avec Lynis

Audit de sécurité Linux avec Lynis

Auditez automatiquement votre VPS Linux avec Lynis : 200+ checks de sécurité, kernel, services, ports, permissions, et un rapport priorisé. Outil reconnu par les sysadmins pros pour identifier en 5 minutes les failles évidentes d'un serveur.

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
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

Rejoignez notre serveur communautaire Discord

Pour toute question, suggestion ou simplement pour discuter avec la communauté, rejoignez-nous sur Discord !

900+Membres