Add Lynis/lynis.md
This commit is contained in:
parent
4688b1fb5a
commit
ff3715f700
1 changed files with 139 additions and 0 deletions
139
Lynis/lynis.md
Normal file
139
Lynis/lynis.md
Normal file
|
|
@ -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/<date>/restore.sh
|
||||
```
|
||||
Les sauvegardes des fichiers d'origine et le journal `CHANGELOG.txt` sont dans
|
||||
le même répertoire.
|
||||
Loading…
Add table
Add a link
Reference in a new issue