--- # Durcissement CIS Ubuntu 24.04 — modules noyau reseau/filesystem inutilises + sysctl reseau # (checks 35509, 35604-35607, 35608-35618) # # IMPORTANT : # - net.ipv4.ip_forward est laisse ACTIF sur la plupart des hosts (Docker gere le NAT des ports # publies, vpn-uber fait relais entre pairs WireGuard) — le desactiver casserait ces usages. # Seul load-balancer (pas de Docker, pas de relais VPN) le desactive, via la variable # `ip_forwarding_disabled` (group_vars, defaut false, true uniquement pour load-balancer). # Le check CIS 35608 restera donc en echec par necessite fonctionnelle sur la plupart des hosts. # - rp_filter est mis a 1 (strict) partout : verifie sans casse sur cette infra (Docker + WireGuard # coexistent sans probleme de routage asymetrique ici), mais a re-tester si la topologie change. # - Aucun des modules blacklistes n'est charge sur cette infra (verifie via lsmod avant deploiement) : # zero impact fonctionnel attendu. Exception : fat/fuse sont compiles en dur dans le noyau Ubuntu # (builtin) et resteront "disponibles" quoi qu'il arrive — check CIS 35509 restera en echec pour # ces deux modules specifiquement, cas documente par la CIS elle-meme comme sans remediation # possible ("if pre-compiled into the kernel, no remediation is necessary"). # # `serial: 1` + `any_errors_fatal` : un host a la fois, arret immediat si un host casse. # # Usage recommande : tester sur un host avant le rollout complet : # ansible-playbook hardening/playbook-kernel-sysctl-hardening.yml --limit pre-prod-uber - name: Durcissement kernel modules + sysctl reseau (CIS Ubuntu 24.04) hosts: prod,pre-prod,bdd-redis-prod,replica-prod,infra,infra-runner,infra-utils,load-balancer become: true serial: 1 any_errors_fatal: true tasks: - name: Deployer le blacklist des modules noyau inutilises ansible.builtin.template: src: ../templates/blacklist-unused-modules.conf.j2 dest: /etc/modprobe.d/cis-blacklist-unused.conf owner: root group: root mode: "0644" - name: Deployer le durcissement sysctl reseau ansible.builtin.template: src: ../templates/60-cis-network-hardening.conf.j2 dest: /etc/sysctl.d/60-cis-network-hardening.conf owner: root group: root mode: "0644" register: sysctl_conf - name: Appliquer les parametres sysctl actifs ansible.builtin.command: cmd: sysctl --system when: sysctl_conf.changed changed_when: true register: sysctl_apply - name: Verifier qu'aucune erreur n'est remontee par sysctl --system ansible.builtin.fail: msg: "Erreur sysctl --system sur {{ inventory_hostname }} : {{ sysctl_apply.stdout }}" when: sysctl_apply is defined and sysctl_apply.stdout is defined and 'error' in sysctl_apply.stdout | lower - name: Verifier la valeur effective de ip_forward ansible.builtin.command: cmd: sysctl -n net.ipv4.ip_forward register: ip_forward_check changed_when: false failed_when: > (not (ip_forwarding_disabled | default(false)) and ip_forward_check.stdout != "1") or ((ip_forwarding_disabled | default(false)) and ip_forward_check.stdout != "0") - name: Confirmer le succes pour cet host ansible.builtin.debug: msg: "✅ Durcissement kernel/sysctl appliqué sur {{ inventory_hostname }} — ip_forward={{ ip_forward_check.stdout }}"