From ff3715f7002c9fd00815a152befc6ebf605334cf Mon Sep 17 00:00:00 2001 From: Willy Date: Tue, 9 Jun 2026 21:02:18 +0200 Subject: [PATCH] Add Lynis/lynis.md --- Lynis/lynis.md | 139 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 Lynis/lynis.md diff --git a/Lynis/lynis.md b/Lynis/lynis.md new file mode 100644 index 0000000..c2eee2d --- /dev/null +++ b/Lynis/lynis.md @@ -0,0 +1,139 @@ +# 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'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//restore.sh +``` +Les sauvegardes des fichiers d'origine et le journal `CHANGELOG.txt` sont dans +le même répertoire. \ No newline at end of file