Fiche audit sécurité avec Lynis

Lynis est un outil d’audit de sécurité pour systèmes Linux.
Il permet d’identifier les faiblesses de configuration et de proposer des actions correctives.

L’objectif pour un étudiant en BTS CIEL ou SIO est de :

  • comprendre les résultats de l’audit
  • corriger les vulnérabilités principales
  • atteindre un niveau de sécurité cohérent avec un environnement professionnel

ATTENTION : ce document est fait dans un but pédagogoique, tout durcissmeent d’une machine en production doit être réalisé par un professionel.

Les éléments présents dans cette fiches sont insufisants pour protéger la machine.

Audit avec Lynis

# INSTALLATION
apt update && apt install lynis -y

# AUDIT COMPLET
lynis audit system

# MODES UTILES
lynis audit system --quick
lynis audit system --quiet
lynis audit system --tests-from-group authentication,networking

# RAPPORT
cat /var/log/lynis-report.dat
cat /var/log/lynis.log

# SCORE
grep hardening_index /var/log/lynis-report.dat

Explication du fonctionnement

Lynis réalise une série de tests sur le système :

  • analyse des services actifs
  • vérification des configurations réseau
  • contrôle de la sécurité SSH
  • vérification des permissions
  • analyse des journaux

Le résultat se compose de :

  • warnings : problèmes importants à corriger
  • suggestions : améliorations possibles

Le score final (hardening index) permet d’évaluer le niveau global de sécurité.


Objectif

Un système correctement configuré doit atteindre :

  • minimum : 70
  • bon niveau : 80
  • niveau avancé : 90

Durcissement du système

1. Mise à jour automatique

apt install unattended-upgrades -y
dpkg-reconfigure unattended-upgrades

Explication :
Permet d’installer automatiquement les mises à jour de sécurité.
C’est essentiel car la majorité des attaques exploitent des failles connues déjà corrigées.


2. Sécurisation SSH

nano /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers adminsys
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2

Explication :

  • changement de port réduit les scans automatisés
  • interdiction du compte root limite les attaques
  • désactivation des mots de passe impose l’usage de clés SSH
  • limitation des tentatives réduit le brute force

3. Protection avec fail2ban

apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 192.168.1.0/24

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 2h

Explication :
Fail2ban surveille les logs et bloque automatiquement les adresses IP qui échouent plusieurs fois à se connecter.
Sans configuration, il est inutile. Il doit être adapté au service protégé.


4. Mise en place d’un pare-feu

ufw enable
ufw default deny incoming
ufw allow 2222/tcp

Explication :
Le pare-feu bloque tout par défaut et n’autorise que les services nécessaires.
Cela réduit fortement la surface d’attaque.


5. Vérification des ports ouverts

ss -tuln

Explication :
Permet d’identifier les services exposés.
Tout port inutile doit être fermé.


6. Désactivation des services inutiles

systemctl list-units --type=service
systemctl disable nom_service

Explication :
Chaque service actif représente un risque potentiel.
Il faut limiter au strict nécessaire.


7. Gestion des logs

journalctl -xe
tail -f /var/log/auth.log

Explication :
Les logs permettent de détecter :

  • tentatives d’intrusion
  • erreurs système
  • anomalies

8. Rotation des logs

apt install logrotate -y
nano /etc/logrotate.conf

Explication :
Évite la saturation du disque et garantit la conservation des journaux importants.


9. Sécurisation des comptes

cat /etc/passwd

Explication :
Il faut :

  • supprimer les comptes inutiles
  • limiter les privilèges
  • contrôler les accès

10. Permissions des fichiers sensibles

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Explication :
Empêche l’accès non autorisé aux clés SSH et aux fichiers critiques.


11. Sécurité kernel

nano /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.tcp_syncookies=1

Explication :
Renforce la protection contre :

  • spoofing IP
  • attaques réseau
  • flood SYN

12. Vérification des fichiers SUID

find / -perm -4000 2>/dev/null

Explication :
Les fichiers SUID peuvent être utilisés pour escalader les privilèges.
Ils doivent être contrôlés régulièrement.


13. Vérification des droits sudo

cat /etc/sudoers

Explication :
Permet de contrôler qui peut exécuter des commandes en tant qu’administrateur.


Méthode de travail

  1. lancer un audit Lynis
  2. analyser les warnings
  3. corriger les points critiques
  4. relancer l’audit
  5. vérifier l’amélioration du score

Conclusion

Lynis est un outil d’audit, pas une solution de sécurité en lui-même.
La sécurité repose sur :

  • la mise à jour du système
  • la configuration des services
  • la réduction de la surface d’attaque
  • la surveillance des logs

Un système correctement durci est :

  • maintenu à jour
  • filtré
  • contrôlé
  • surveillé

Retour en haut