Aller au contenu principal

Auditez la sécurité de vos serveurs avec Lynis

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 cruciaux. 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 :

sudo -i
cd /tmp
export VERSION=3.0.9
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 :

lynis help

Si Lynis affiche l'aide alors l'installation a réussi.

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 :

sudo lynis audit system

[ Lynis 3.0.9 ]

################################################################################
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-2021, CISOfy - https://cisofy.com/lynis/
Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program
------------------------------------
- Detecting OS... [ DONE ]
- Checking profiles... [ DONE ]
- Detecting language and localization [ fr ]

---------------------------------------------------
Program version: 3.0.9
Operating system: Linux
Operating system name: Ubuntu
Operating system version: 22.04
Kernel version: 5.15.0
Hardware platform: x86_64
Hostname: internal
---------------------------------------------------
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: fr
Test category: all
Test group: all
---------------------------------------------------
- Program update status... [ PAS DE MISE A JOUR ]

...

* Consider hardening SSH configuration [SSH-7408]
- Details : AllowTcpForwarding (set YES to NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : ClientAliveCountMax (set 3 to 2)
https://cisofy.com/lynis/controls/SSH-7408/
...

Hardening index : 66 [############# ]
Tests performed : 274
Plugins enabled : 2

Components:
- Firewall [V]
- Malware scanner [X]

Scan mode:
Normal [V] Forensics [ ] Integration [ ] Pentest [ ]

Lynis modules:
- Compliance status [?]
- Security audit [V]
- Vulnerability scan [V]

Files:
- Test and debug information : /var/log/lynis.log
- Report data : /var/log/lynis-report.dat

================================================================================

Exceptions trouvées
Des événements ou informations exceptionnels ont été trouvés!

Que faire:
Vous pouvez aider en envoyant votre fichier journal (/var/log/lynis.log).
Go to https://cisofy.com/contact/ and send your file to the e-mail address listed

================================================================================

Lynis 3.0.9

Auditing, system hardening, and compliance for UNIX-based systems
(Linux, macOS, BSD, and others)

2007-2021, 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 :

  Hardening index : 66 [#############       ]
Tests performed : 274
Plugins enabled : 2

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.

Lynis enregistre les résultats dans des fichiers de log, généralement situés dans /var/log/lynis.log.

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 :

2023-12-06 14:08:50 Performing test ID SSH-7408 (Check SSH specific defined options)
2023-12-06 14:08:50 Test: Checking specific defined options in /tmp/lynis.PpJ9G5auvQ
2023-12-06 14:08:50 Test: Checking AllowTcpForwarding in /tmp/lynis.PpJ9G5auvQ
2023-12-06 14:08:50 Result: Option AllowTcpForwarding found
2023-12-06 14:08:50 Result: Option AllowTcpForwarding value is YES
2023-12-06 14:08:50 Result: OpenSSH option AllowTcpForwarding is in a weak configuration state and should be fixed
2023-12-06 14:08:50 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:AllowTcpForwarding (set YES to NO)] [solution:-]
2023-12-06 14:08:50 Hardening: assigned partial number of hardening points (0 of 3). Currently having 126 points (out of 170)
2023-12-06 14:08:50 Test: Checking ClientAliveCountMax in /tmp/lynis.PpJ9G5auvQ
2023-12-06 14:08:50 Result: Option ClientAliveCountMax found
2023-12-06 14:08:50 Result: Option ClientAliveCountMax value is 3
2023-12-06 14:08:50 Result: OpenSSH option ClientAliveCountMax is configured reasonably
2023-12-06 14:08:50 Suggestion: Consider hardening SSH configuration [test:SSH-7408] [details:ClientAliveCountMax (set 3 to 2)] [solution:-]
2023-12-06 14:08:50 Hardening: assigned partial number of hardening points (1 of 3). Currently having 127 points (out of 173)
2023-12-06 14:08:50 Test: Checking ClientAliveInterval in /tmp/lynis.PpJ9G5auvQ

Recherchez le mot clé "Suggestion". Ici, il nous indique de passer la valeur de ClientAliveCountMax de 3 à 2.

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.

attention

Procédez avec Prudence : Lorsque vous apportez des modifications à votre système, faites-le avec soin. Des erreurs dans la configuration peuvent avoir des conséquences imprévues. Donc tester les sur une VM temporaire !

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

sudo vi /etc/ssh/sshd_config

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.

  Lynis security scan details:

Hardening index : 68 [############# ]
Tests performed : 274
Plugins enabled : 2
attention

Notez précieusement toutes vos actions, car vous pourrez les réutiliser par la suite pour automatiser ce processus de durcissement avec Ansible par exemple !

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

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 :

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.

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.