Aller au contenu

Auditez la sécurité de vos serveurs avec Lynis

Mise à jour :

Lynis

Lynis est un outil puissant et polyvalent, conçu pour auditer et renforcer la sécurité des systèmes d’exploitation basés sur Unix et Linux. Sa capacité à fournir des analyses détaillées et des recommandations personnalisées fait de lui un allié précieux pour vous aider à progresser dans le domaine du renforcement de la sécurité de vos serveurs Linux.

Pourquoi Utiliser Lynis ?

Lynis effectue des audits approfondis, examinant chaque aspect du système pour y déceler des faiblesses. Il vérifie les configurations, les permissions de fichiers, les paramètres de sécurité du réseau et bien d’autres éléments importants. Cette analyse complète permet de déceler les failles qui pourraient être exploitées par des attaquants.

Contrairement à d’autres outils d’audit, Lynis ne se contente pas de signaler les problèmes : il fournit également des recommandations concrètes pour les résoudre. Chaque avertissement est accompagné de conseils pratiques et de directives pour améliorer la sécurité du système. Cette approche pédagogique est particulièrement bénéfique pour les utilisateurs moins expérimentés.

Lynis est régulièrement mis à jour pour intégrer les dernières menaces et techniques de sécurisation. Sa capacité à s’adapter aux évolutions du paysage des menaces informatiques le rend particulièrement précieux. Que vous gériez un serveur d’entreprise ou un ordinateur personnel, Lynis est un outil flexible qui s’adapte à divers environnements et besoins.

L’utilisation de Lynis dans un contexte DevOps, notamment pour la construction d’images de machines virtuelles (VM) durcies, est importante, car elle permet d’intégrer la sécurité dès le début du cycle de développement, garantissant ainsi que chaque VM déployée respecte les normes élevées de sécurité et de conformité dès sa création.

Installation de Lynis

Ouvrez une fenêtre de terminal et entrez les commandes suivantes :

Terminal window
# Installation de la dernière version de Lynis
sudo -i
cd /tmp
export VERSION=3.1.6
wget https://cisofy.com/files/lynis-${VERSION}.tar.gz
tar -xzf lynis-${VERSION}.tar.gz -C /usr/local
chmod +x /usr/local/lynis/lynis
ln -s /usr/local/lynis/lynis /usr/local/bin

Pour vérifier que Lynis est correctement installé, lancez la commande :

Terminal window
sudo -i
lynis
[ Lynis 3.1.6 ]
################################################################################
Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under the terms of the GNU General Public License.
See the LICENSE file for details about using this software.
2007-2025, CISOfy - https://cisofy.com/lynis/
Enterprise support available (compliance, plugins, interface and tools)
################################################################################
[+] Initializing program
------------------------------------
Usage: lynis command [options]
Command:
audit
audit system : Perform local security scan
audit system remote <host> : Remote security scan
audit dockerfile <file> : Analyze Dockerfile
show
show : Show all commands
show version : Show Lynis version
show help : Show help
update
update info : Show update details
Options:
Alternative system audit modes
--forensics : Perform forensics on a running or mounted system
--pentest : Non-privileged, show points of interest for pentesting
Layout options
--no-colors : Don't use colors in output
--quiet (-q) : No output
--reverse-colors : Optimize color display for light backgrounds
--reverse-colours : Optimize colour display for light backgrounds
Misc options
--debug : Debug logging to screen
--no-log : Don't create a log file
--profile <profile> : Scan the system with the given profile file
--view-manpage (--man) : View man page
--verbose : Show more details on screen
--version (-V) : Display version number and quit
--wait : Wait between a set of tests
--slow-warning <seconds> : Threshold for slow test warning in seconds (default 10)
Enterprise options
--plugindir <path> : Define path of available plugins
--upload : Upload data to central node
More options available. Run '/usr/local/bin/lynis show options', or use the man page.
No command provided. Exiting..

Si Lynis affiche cette aide, l’installation est réussie !

Options utiles de la ligne de commande

Avant de lancer votre premier audit, familiarisez-vous avec les options principales de Lynis :

Terminal window
# Audit rapide (moins verbeux, idéal pour CI/CD)
lynis audit system --quick
# Spécifier un auditeur pour les rapports
lynis audit system --auditor "Mon Entreprise"
# Exécuter uniquement certains tests
lynis audit system --tests "SSH-7408,AUTH-9229"
# Mode pentest (plus agressif, détecte plus de failles)
lynis audit system --pentest
# Sortie sans couleurs (pour les logs)
lynis audit system --no-colors
# Mode silencieux (affiche uniquement les warnings)
lynis audit system --quiet

Premiers Pas avec Lynis

Après avoir installé Lynis, il est temps de se familiariser avec ses fonctionnalités de base. Ce chapitre vous guidera à travers les premières étapes pour lancer et comprendre un audit de sécurité avec Lynis.

Lancement de l’audit Lynis

Depuis votre de fenêtre de Terminal, tapez la commande suivante :

Terminal window
sudo lynis audit system
[ Lynis 3.1.6 ]
################################################################################
Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under the terms of the GNU General Public License.
See the LICENSE file for details about using this software.
2007-2025, CISOfy - https://cisofy.com/lynis/
Enterprise support available (compliance, plugins, interface and tools)
################################################################################
[+] Initializing program
------------------------------------
- Detecting OS... [ DONE ]
- Checking profiles... [ DONE ]
---------------------------------------------------
Program version: 3.1.6
Operating system: Linux
Operating system name: Ubuntu
Operating system version: 22.04
End-of-life: NO
Kernel version: 5.15.0
Hardware platform: x86_64
Hostname: dev
---------------------------------------------------
Profiles: /etc/lynis/default.prf
Log file: /var/log/lynis.log
Report file: /var/log/lynis-report.dat
Report version: 1.0
Plugin directory: /usr/local/lynis/plugins
---------------------------------------------------
Auditor: [Not Specified]
Language: en
Test category: all
Test group: all
---------------------------------------------------
- Program update status... [ NO UPDATE ]
...
-[ Lynis 3.1.6 Results ]-
Warnings (5):
----------------------------
! Reboot of system is most likely needed [KRNL-5830]
- Solution : reboot
https://cisofy.com/lynis/controls/KRNL-5830/
! Found one or more vulnerable packages. [PKGS-7392]
https://cisofy.com/lynis/controls/PKGS-7392/
! PostgreSQL configuration file /etc/postgresql/14/main/postgresql.conf is world readable and might leak sensitive details [DBS-1828]
- Details : /etc/postgresql/14/main/postgresql.conf
- Solution : Use chmod 600 to change file permissions
https://cisofy.com/lynis/controls/DBS-1828/
! PostgreSQL configuration file /etc/postgresql/14/main/start.conf is world readable and might leak sensitive details [DBS-1828]
- Details : /etc/postgresql/14/main/start.conf
- Solution : Use chmod 600 to change file permissions
https://cisofy.com/lynis/controls/DBS-1828/
! PostgreSQL configuration file /etc/postgresql/14/main/pg_ctl.conf is world readable and might leak sensitive details [DBS-1828]
- Details : /etc/postgresql/14/main/pg_ctl.conf
- Solution : Use chmod 600 to change file permissions
https://cisofy.com/lynis/controls/DBS-1828/
Suggestions (41):
...
Follow-up:
----------------------------
- Show details of a test (lynis show details TEST-ID)
- Check the logfile for all details (less /var/log/lynis.log)
- Read security controls texts (https://cisofy.com)
- Use --upload to upload data to central system (Lynis Enterprise users)
================================================================================
Lynis security scan details:
Scan mode:
Normal [ ] Forensics [ ] Integration [ ] Pentest [▆] (running privileged)
Lynis modules:
- Compliance status [?]
- Security audit [V]
- Vulnerability scan [V]
Details:
Hardening index : 64 [############ ]
Tests performed : 260
Plugins enabled : 0
Software components:
- Firewall [V]
- Intrusion software [X]
- Malware scanner [X]
Files:
- Test and debug information : /var/log/lynis.log
- Report data : /var/log/lynis-report.dat
================================================================================
Lynis 3.1.6
Auditing, system hardening, and compliance for UNIX-based systems
(Linux, macOS, BSD, and others)
2007-2025, CISOfy - https://cisofy.com/lynis/
Enterprise support available (compliance, plugins, interface and tools)
================================================================================
[TIP]: Enhance Lynis audits by adding your settings to custom.prf (see /etc/lynis/default.prf for all settings)

Cette commande lance un audit de sécurité sur l’ensemble de votre système. L’utilisation de sudo est nécessaire pour permettre à Lynis d’accéder à toutes les informations nécessaires.

Lynis affiche des informations en temps réel pendant l’audit. Vous verrez des sections telles que “Boot and services”, “Software: antivirus”, “Kernel”, etc.

Lynis utilise des codes de couleur pour souligner l’importance des résultats. Par exemple, le rouge indique un problème critique, tandis que le jaune signale des avertissements.

Analyse du score de l’audit

Le score de l’audit Lynis est une mesure quantitative qui reflète l’état de sécurité de votre système. À la fin de chaque audit, Lynis attribue un score, exprimé en pourcentage, qui évalue la robustesse de votre configuration de sécurité. Ce score est calculé en fonction de divers facteurs, tels que les vulnérabilités détectées, les configurations de sécurité non optimales et les bonnes pratiques en matière de sécurité qui sont déjà en place.

Exemple de score d’audit :

Terminal window
Details:
Hardening index : 64 [############ ]
Tests performed : 260
Plugins enabled : 0

Un score élevé indique que votre système est bien configuré et qu’il respecte de nombreuses bonnes pratiques de sécurité. Cela signifie que Lynis a trouvé moins de problèmes et de vulnérabilités et que les mesures de sécurité importantes sont déjà en place. Inversement, un score bas suggère que des améliorations significatives sont nécessaires pour renforcer la sécurité de votre système. Il indique généralement la présence de nombreuses vulnérabilités ou de configurations de sécurité inadéquates.

Il est important d’utiliser le score de l’audit comme un indicateur de progression dans vos efforts de sécurisation. Après avoir apporté des changements recommandés par Lynis, vous devriez ré-exécuter l’outil pour voir si vos actions ont conduit à une amélioration du score. L’augmentation du score d’un audit à l’autre est un signe positif que vous avez réussi à améliorer la sécurité de votre système.

Analyse Détaillée des Résultats

À la fin de l’audit, Lynis fournit un résumé des résultats, y compris les avertissements et suggestions. Pour chaque point soulevé, Lynis fournit des détails spécifiques sur la nature du problème ou de la suggestion. Lynis liste également les tests effectués et leurs résultats, ce qui vous aide à comprendre quels aspects de votre système ont été audités.

Extraction des données du rapport

Le fichier /var/log/lynis-report.dat contient toutes les informations structurées de l’audit. Voici comment extraire les données essentielles :

Terminal window
# Récupérer le score de durcissement
grep hardening_index /var/log/lynis-report.dat
hardening_index=64
# Lister toutes les suggestions
grep "^suggestion" /var/log/lynis-report.dat
suggestion[]=HRDN-7222|Harden compilers like restricting access to root user only|-|-|
# Lister tous les warnings
grep "^warning" /var/log/lynis-report.dat
warning[]=DBS-1828|PostgreSQL configuration file /etc/postgresql/14/main/pg_ctl.conf is world readable and might leak sensitive details|/etc/postgresql/14/main/pg_ctl.conf|Use chmod 600 to change file permissions|

Chaque avertissement ou suggestion est accompagné d’un code unique (par exemple, SSH-7408) et d’un message descriptif. Ce code peut être utilisé pour rechercher des informations supplémentaires dans la documentation de Lynis ou sur internet.

Pour obtenir des informations détaillées sur une suggestion :

Terminal window
lynis show details SSH-7408
2025-12-04 13:24:38 Performing test ID SSH-7408 (Check SSH specific defined options)
2025-12-04 13:24:38 Test: Checking specific defined options in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Test: Checking AllowTcpForwarding in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option AllowTcpForwarding found
2025-12-04 13:24:38 Result: Option AllowTcpForwarding value is YES
2025-12-04 13:24:38 Result: OpenSSH option AllowTcpForwarding is in a weak configuration state and should be fixed
2025-12-04 13:24:38 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:AllowTcpForwarding (set YES to NO)] [solution:-]
2025-12-04 13:24:38 Hardening: assigned partial number of hardening points (0 of 3). Currently having 122 points (out of 195)
2025-12-04 13:24:38 Test: Checking ClientAliveCountMax in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option ClientAliveCountMax found
2025-12-04 13:24:38 Result: Option ClientAliveCountMax value is 3
2025-12-04 13:24:38 Result: OpenSSH option ClientAliveCountMax is configured reasonably
2025-12-04 13:24:38 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:ClientAliveCountMax (set 3 to 2)] [solution:-]
2025-12-04 13:24:38 Hardening: assigned partial number of hardening points (1 of 3). Currently having 123 points (out of 198)
2025-12-04 13:24:38 Test: Checking ClientAliveInterval in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option ClientAliveInterval found
2025-12-04 13:24:38 Result: Option ClientAliveInterval value is 300
2025-12-04 13:24:38 Result: OpenSSH option ClientAliveInterval is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 126 points (out of 201)
2025-12-04 13:24:38 Test: Checking FingerprintHash in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option FingerprintHash found
2025-12-04 13:24:38 Result: Option FingerprintHash value is SHA256
2025-12-04 13:24:38 Result: OpenSSH option FingerprintHash is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 129 points (out of 204)
2025-12-04 13:24:38 Test: Checking GatewayPorts in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option GatewayPorts found
2025-12-04 13:24:38 Result: Option GatewayPorts value is NO
2025-12-04 13:24:38 Result: OpenSSH option GatewayPorts is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 132 points (out of 207)
2025-12-04 13:24:38 Test: Checking IgnoreRhosts in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option IgnoreRhosts found
2025-12-04 13:24:38 Result: Option IgnoreRhosts value is YES
2025-12-04 13:24:38 Result: OpenSSH option IgnoreRhosts is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 135 points (out of 210)
2025-12-04 13:24:38 Test: Checking LoginGraceTime in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option LoginGraceTime found
2025-12-04 13:24:38 Result: Option LoginGraceTime value is 60
2025-12-04 13:24:38 Result: OpenSSH option LoginGraceTime is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 138 points (out of 213)
2025-12-04 13:24:38 Test: Checking LogLevel in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option LogLevel found
2025-12-04 13:24:38 Result: Option LogLevel value is INFO
2025-12-04 13:24:38 Result: OpenSSH option LogLevel is configured reasonably
2025-12-04 13:24:38 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:LogLevel (set INFO to VERBOSE)] [solution:-]
2025-12-04 13:24:38 Hardening: assigned partial number of hardening points (1 of 3). Currently having 139 points (out of 216)
2025-12-04 13:24:38 Test: Checking MaxAuthTries in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option MaxAuthTries found
2025-12-04 13:24:38 Result: Option MaxAuthTries value is 3
2025-12-04 13:24:38 Result: OpenSSH option MaxAuthTries is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 142 points (out of 219)
2025-12-04 13:24:38 Test: Checking MaxSessions in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option MaxSessions found
2025-12-04 13:24:38 Result: Option MaxSessions value is 2
2025-12-04 13:24:38 Result: OpenSSH option MaxSessions is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 145 points (out of 222)
2025-12-04 13:24:38 Test: Checking PermitRootLogin in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option PermitRootLogin found
2025-12-04 13:24:38 Result: Option PermitRootLogin value is NO
2025-12-04 13:24:38 Expected value has multiple values, testing if active value is in list ((FORCED-COMMANDS-ONLY|NO|PROHIBIT-PASSWORD|WITHOUT-PASSWORD))
2025-12-04 13:24:38 Result: found
2025-12-04 13:24:38 Result: OpenSSH option PermitRootLogin is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 148 points (out of 225)
2025-12-04 13:24:38 Test: Checking PermitUserEnvironment in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option PermitUserEnvironment found
2025-12-04 13:24:38 Result: Option PermitUserEnvironment value is NO
2025-12-04 13:24:38 Result: OpenSSH option PermitUserEnvironment is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 151 points (out of 228)
2025-12-04 13:24:38 Test: Checking PermitTunnel in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option PermitTunnel found
2025-12-04 13:24:38 Result: Option PermitTunnel value is NO
2025-12-04 13:24:38 Result: OpenSSH option PermitTunnel is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 154 points (out of 231)
2025-12-04 13:24:38 Test: Checking Port in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option Port found
2025-12-04 13:24:38 Result: Option Port value is 22
2025-12-04 13:24:38 Result: OpenSSH option Port is in a weak configuration state and should be fixed
2025-12-04 13:24:38 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:Port (set 22 to )] [solution:-]
2025-12-04 13:24:38 Hardening: assigned partial number of hardening points (0 of 3). Currently having 154 points (out of 234)
2025-12-04 13:24:38 Test: Checking PrintLastLog in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option PrintLastLog found
2025-12-04 13:24:38 Result: Option PrintLastLog value is YES
2025-12-04 13:24:38 Result: OpenSSH option PrintLastLog is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 157 points (out of 237)
2025-12-04 13:24:38 Test: Checking StrictModes in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option StrictModes found
2025-12-04 13:24:38 Result: Option StrictModes value is YES
2025-12-04 13:24:38 Result: OpenSSH option StrictModes is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 160 points (out of 240)
2025-12-04 13:24:38 Test: Checking TCPKeepAlive in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option TCPKeepAlive found
2025-12-04 13:24:38 Result: Option TCPKeepAlive value is NO
2025-12-04 13:24:38 Result: OpenSSH option TCPKeepAlive is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 163 points (out of 243)
2025-12-04 13:24:38 Test: Checking UseDNS in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option UseDNS found
2025-12-04 13:24:38 Result: Option UseDNS value is NO
2025-12-04 13:24:38 Result: OpenSSH option UseDNS is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 166 points (out of 246)
2025-12-04 13:24:38 Test: Checking X11Forwarding in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option X11Forwarding found
2025-12-04 13:24:38 Result: Option X11Forwarding value is NO
2025-12-04 13:24:38 Result: OpenSSH option X11Forwarding is configured very well
2025-12-04 13:24:38 Hardening: assigned maximum number of hardening points for this item (3). Currently having 169 points (out of 249)
2025-12-04 13:24:38 Test: Checking AllowAgentForwarding in /tmp/lynis.MMdaGGEU4d
2025-12-04 13:24:38 Result: Option AllowAgentForwarding found
2025-12-04 13:24:38 Result: Option AllowAgentForwarding value is YES
2025-12-04 13:24:38 Result: OpenSSH option AllowAgentForwarding is in a weak configuration state and should be fixed
2025-12-04 13:24:38 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:AllowAgentForwarding (set YES to NO)] [solution:-]
2025-12-04 13:24:38 Hardening: assigned partial number of hardening points (0 of 3). Currently having 169 points (out of 252)
2025-12-04 13:24:38 ====

Recherchez le mot clé “Suggestion”. Ici, il nous indique par exemple de passer la valeur de ClientAliveCountMax de 3 à 2 dans la configuration SSH pour améliorer la sécurité.

Application des recommandations

Commencez par résoudre les problèmes signalés comme critiques. Ces vulnérabilités peuvent exposer votre système à des risques importants. Pour les suggestions, envisagez de les mettre en œuvre progressivement, en fonction de leur pertinence et de l’impact sur votre système.

Si nous reprenons la suggestion indiquée ci-dessus. Nous allons modifier la valeur comme indiqué :

Terminal window
sudo vi /etc/ssh/sshd_config

Si vous ne maitrisez l’éditeur vi, je vous recommande de lire mon guide sur vi.

Décommentez la ligne contenant #ClientAliveCountMax 3 comme suit et modifiez la valeur 3 à 2 ClientAliveCountMax 2.

Après avoir apporté des modifications, relancez Lynis pour vérifier que les problèmes ont été résolus.

Terminal window
systemctl restart sshd
lynis audit system
lynis show details SSH-7408 |grep ClientAliveCountMax
2025-12-04 13:30:58 Test: Checking ClientAliveCountMax in /tmp/lynis.mXpzzjnf2G
2025-12-04 13:30:58 Result: Option ClientAliveCountMax found
2025-12-04 13:30:58 Result: Option ClientAliveCountMax value is 2
2025-12-04 13:30:58 Result: OpenSSH option ClientAliveCountMax is configured very well

Après avoir apporté des modifications, relancez Lynis pour vérifier que les problèmes ont été résolus.

Profils personnalisés

Lynis supporte les profils personnalisés pour adapter les audits à votre environnement. Cela permet d’ignorer certains tests non pertinents ou d’ajuster les seuils de détection.

Terminal window
# Création d'un profil personnalisé pour environnement cloud
cat > /etc/lynis/custom.prf << 'EOF'
# Profil personnalisé - Environnement Cloud
# Ignorer les tests non pertinents pour les VMs cloud
# Pas de BIOS/UEFI en VM
skip-test=BOOT-5104
# Pas de partition physique en cloud
skip-test=FILE-6310
# Logs gérés par le cloud provider
skip-test=LOGG-2154
# Définir l'auditeur
auditor=MonEntreprise
# Ajuster les seuils
min-hardening-index=70
EOF
# Lancer l'audit avec le profil personnalisé
lynis audit system --profile /etc/lynis/custom.prf

Automatisation des Audits avec Lynis

Une fois que vous êtes à l’aise avec l’utilisation de Lynis et l’application de ses recommandations, l’étape suivante consiste à automatiser le processus d’audit pour une surveillance de sécurité continue. Ce chapitre explique comment configurer des audits réguliers et automatisés avec Lynis. L’automatisation des audits avec Lynis vous permet de maintenir une surveillance proactive de la sécurité de votre système. Cela aide à détecter rapidement les nouvelles vulnérabilités ou les changements de configuration non autorisés.

Notifications et Rapports

Configurez Lynis pour envoyer des notifications par e-mail en cas de détection de problèmes critiques. Cela peut se faire en modifiant le fichier de configuration de Lynis (lynis.cfg) pour inclure votre adresse e-mail.

Les rapports générés par Lynis doivent être analysés régulièrement pour identifier et traiter rapidement les vulnérabilités. Assurez-vous de consulter les fichiers log et les e-mails de notification pour rester informé.

Utilisation de Cron

cron est un planificateur de tâches sous Unix qui peut être utilisé pour automatiser l’exécution de Lynis. Pour planifier un audit régulier, créez une tâche cron qui lance Lynis à une fréquence spécifique (quotidienne, hebdomadaire, mensuelle, etc.).

Commande d’Exemple :

Terminal window
sudo crontab -e

Ajoutez cette ligne :

0 2 * * 0 /usr/local/lynis/lynis audit system

Cette commande planifie Lynis pour s’exécuter à 2 heures du matin chaque dimanche, avec les résultats enregistrés dans un fichier log.

Intégration CI/CD avec Packer

L’utilisation de Lynis dans une pipeline CI/CD permet de valider la sécurité des images avant leur déploiement. Voici un exemple d’intégration avec Packer :

# Dans votre fichier Packer (.pkr.hcl)
provisioner "shell" {
inline = [
"# Installation de Lynis",
"cd /tmp && wget -q https://cisofy.com/files/lynis-3.1.6.tar.gz",
"tar -xzf lynis-3.1.6.tar.gz -C /usr/local",
"# Audit de sécurité",
"/usr/local/lynis/lynis audit system --no-colors --quiet",
"# Vérification du score minimum",
"SCORE=$(grep hardening_index /var/log/lynis-report.dat | cut -d= -f2)",
"echo \"Score de durcissement: $SCORE\"",
"if [ \"$SCORE\" -lt 70 ]; then",
" echo \"ERREUR: Score insuffisant ($SCORE < 80)\"",
" grep '^warning' /var/log/lynis-report.dat",
" exit 1",
"fi",
"echo \"Validation sécurité OK\""
]
}

Pour une intégration GitLab CI :

.gitlab-ci.yml
security-audit:
stage: test
script:
- wget -q https://cisofy.com/files/lynis-3.1.6.tar.gz
- tar -xzf lynis-3.1.6.tar.gz
- ./lynis/lynis audit system --no-colors --quick
- SCORE=$(grep hardening_index /var/log/lynis-report.dat | cut -d= -f2)
- 'echo "Hardening score: $SCORE"'
- test $SCORE -ge 80
artifacts:
paths:
- /var/log/lynis-report.dat
when: always

Comparaison avec OpenSCAP

Si vous hésitez entre Lynis et OpenSCAP, voici un tableau comparatif :

CritèreLynisOpenSCAP
Facilité d’utilisationSimple, une commandePlus complexe, nécessite des profils
RéférentielPropre à LynisCIS, DISA STIG, ANSSI
Format de rapportTexte, LogHTML, XML, ARF, JSON
RemédiationSuggestions textuellesPlaybooks Ansible générés
Conformité réglementaireIndicativeCertifiée (PCI-DSS, HIPAA)
InstallationArchive tar.gzPaquets système
PersonnalisationProfils .prfFichiers XCCDF/OVAL

Recommandation : Utilisez Lynis pour des audits rapides et l’apprentissage du durcissement. Préférez OpenSCAP pour la conformité réglementaire et les environnements d’entreprise nécessitant des rapports certifiés.

Pour aller plus loin

Après avoir maîtrisé Lynis, je vous invite à explorer ces guides complémentaires pour renforcer la sécurité de vos systèmes :

Conclusion

En explorant les fonctionnalités et applications de Lynis, vous avez acquis une compréhension approfondie de cet outil indispensable pour l’audit de sécurité des systèmes Unix et Linux. Cette conclusion révisée intègre l’importance de Lynis dans la construction d’images de VM dans un contexte DevOps, en utilisant des outils comme Packer.

Plus d’infos

  • Site Web de Lynis : Le site officiel de Lynis (cisofy.com/lynis) est la première ressource à consulter. Vous y trouverez la documentation la plus à jour, des guides d’utilisation et des informations sur les dernières versions.
  • Manuel de l’Utilisateur : Le manuel de l’utilisateur intégré, accessible via la commande man lynis, fournit des détails complets sur les options de commande et les configurations.
  • Changelog : Consultez les notes de version pour suivre les évolutions de l’outil.
  • Contrôles Lynis : La base de données des contrôles est disponible sur cisofy.com/lynis/controls.