72 lines
3.5 KiB
YAML
72 lines
3.5 KiB
YAML
---
|
|
# 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 }}"
|