TMP-Hosting/Lynis/lynis.md
2026-06-09 21:02:18 +02:00

5.1 KiB

Démo Lynis — fiche de remédiation

Cette fiche relie chaque dégradation introduite par degrade-security.sh au contrôle Lynis correspondant, puis à la correction et au durcissement attendus.

Astuce démo : lancez une fois sudo lynis audit system avant de dégrader (baseline), puis une fois après. Le score (« Hardening index ») et les Suggestions permettent une comparaison parlante.


1. SSH — /etc/ssh/sshd_config.d/00-lynis-demo-insecure.conf

Ce qui a été modifié Pourquoi c'est un problème
PermitRootLogin yes Login root direct → cible de bruteforce, pas de traçabilité nominative
PasswordAuthentication yes Expose au bruteforce/credential stuffing
PermitEmptyPasswords yes Connexion possible sans mot de passe
X11Forwarding yes Surface d'attaque inutile sur un serveur
MaxAuthTries 10 Trop d'essais d'authentification tolérés

Contrôle Lynis : SSH-7408 (multiples suggestions).

Correction / durcissement (dans un drop-in /etc/ssh/sshd_config.d/10-hardening.conf) :

PermitRootLogin no
PasswordAuthentication no      # bascule vers l'authentification par clé
PermitEmptyPasswords no
X11Forwarding no
MaxAuthTries 3
LoginGraceTime 30
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Puis : sshd -t && systemctl reload ssh.


2. umask trop permissif — /etc/login.defs

UMASK 000 → les nouveaux fichiers sont créés en 666 et les répertoires en 777.

Contrôle Lynis : AUTH-9328 (Default umask values).

Correction : mettre UMASK 027 dans /etc/login.defs (et idéalement aussi dans /etc/profile / /etc/pam.d selon la politique).


3. Paramètres noyau non durcis — /etc/sysctl.d/99-lynis-demo-insecure.conf

Clé Valeur posée Risque
net.ipv4.ip_forward = 1 routage activé la machine relaie du trafic
*.accept_redirects = 1 accepte les redirects ICMP détournement de route
*.send_redirects = 1 émet des redirects info de topologie divulguée
accept_source_route = 1 source routing contournement de filtrage
log_martians = 0 pas de log des paquets usurpés angle mort
kernel.sysrq = 1 combinaisons SysRq actives actions noyau non maîtrisées
kernel.dmesg_restrict = 0 dmesg lisible par tous fuite d'infos noyau
kernel.kptr_restrict = 0 pointeurs noyau exposés aide à l'exploitation
fs.suid_dumpable = 2 core dumps des binaires SUID fuite de secrets

Contrôle Lynis : KRNL-6000 (liste les clés sysctl à corriger).

Correction : supprimer le fichier de démo et appliquer un profil durci (/etc/sysctl.d/90-hardening.conf) avec les valeurs inverses (ip_forward=0, accept_redirects=0, kernel.sysrq=0, kptr_restrict=2, dmesg_restrict=1, fs.suid_dumpable=0, …) puis sysctl --system.


4. Bannières légales absentes — /etc/issue, /etc/issue.net

Fichiers vidés → aucune bannière d'avertissement.

Contrôles Lynis : BANN-7126 (/etc/issue), BANN-7130 (/etc/issue.net).

Correction : y placer un avertissement légal, par ex. :

Acces reserve aux personnes autorisees. Toute activite est journalisee
et peut etre poursuivie. Deconnectez-vous immediatement si non autorise.

5. Permissions dangereuses

Élément État posé Attendu
/etc/crontab 0777 0644 root:root
/etc/lynis-demo-world-writable.conf 0666 (monde-inscriptible) à supprimer
/opt/lynis-demo-shared 0777 sans sticky bit 0755 ou 1777 si partage

Contrôle Lynis : section File Permissions (fichiers world-writable, droits des fichiers de cron).

Correction :

chmod 0644 /etc/crontab
rm -f /etc/lynis-demo-world-writable.conf
chmod 0755 /opt/lynis-demo-shared   # ou chmod 1777 si réellement partagé

6. (Optionnel) AppArmor désactivé

Bloc commenté dans le script. Si activé, systemctl disable --now apparmor désactive le module de contrôle d'accès obligatoire (effet complet après reboot).

Contrôle Lynis : MACF-6208.

Correction : systemctl enable --now apparmor puis reboot ; vérifier avec aa-status.


Écarts déjà présents sur une install fraîche (à expliquer aussi)

Sur une Debian 12 « nue », Lynis remontera de toute façon ces points — utiles pour le discours sur le durcissement, sans rien dégrader :

  • Pas de pare-feu actif → installer/configurer nftables ou ufw (FIRE-4513).
  • Pas d'auditdapt install auditd (ACCT-9628).
  • Pas d'AIDE / intégrité de fichiersapt install aide (FINT-4350).
  • Mises à jour automatiques absentesapt install unattended-upgrades (PKGS-7390).
  • Pas de politique de complexité de mot de passeapt install libpam-pwquality (AUTH-9262).
  • Vieillissement des mots de passe par défaut (PASS_MAX_DAYS 99999) → réduire dans /etc/login.defs (AUTH-9286).

Tout remettre en l'état

sudo /root/lynis-demo-backups/<date>/restore.sh

Les sauvegardes des fichiers d'origine et le journal CHANGELOG.txt sont dans le même répertoire.