| .. | ||
| degrade-security.sh | ||
| README.md | ||
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 systemavant de dégrader (baseline), puis une fois après. Le score (« Hardening index ») et lesSuggestionspermettent 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
nftablesouufw(FIRE-4513). - Pas d'auditd →
apt install auditd(ACCT-9628). - Pas d'AIDE / intégrité de fichiers →
apt install aide(FINT-4350). - Mises à jour automatiques absentes →
apt install unattended-upgrades(PKGS-7390). - Pas de politique de complexité de mot de passe →
apt 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.