--- # Durcissement CIS Ubuntu 24.04 — core dumps restreints, Apport désactivé, auditd installé/actif # (checks 35543, 35545, 35723-35726, 35756, 35757) # # IMPORTANT — REBOOT : # - audit=1 et audit_backlog_limit=8192 sont ajoutés à /etc/default/grub puis `update-grub` # régénère immédiatement /boot/grub/grub.cfg → les checks CIS 35725/35726 passent au VERT # dès ce playbook exécuté (ils inspectent le fichier grub.cfg généré, pas le noyau en cours # d'exécution). # - MAIS la protection réelle (auditer les process qui démarrent avant auditd) ne prend effet # qu'après un REDÉMARRAGE du serveur (le paramètre kernel n'est actif qu'au prochain boot). # Ce playbook NE redémarre PAS automatiquement les serveurs — décision à prendre séparément, # en fenêtre de maintenance, host par host (impact Docker/VPN/prod public à chaque reboot). # # - apport est PURGÉ (pas juste désactivé) : cohérent avec le choix déjà fait pour rsync/telnet/ftp # dans ce même chantier. apport-core-dump-handler et python3-apport partent avec (dépendances), # sans impact sur les services applicatifs de cette infra (aucun ne dépend d'apport). # # `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-coredump-auditd-hardening.yml --limit pre-prod-uber - name: Durcissement core dumps + apport + auditd (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: # --- 1.5.3 Core dumps restreints --- - name: Deployer fs.suid_dumpable=0 ansible.builtin.template: src: ../templates/60-cis-coredump-sysctl.conf.j2 dest: /etc/sysctl.d/60-cis-coredump-sysctl.conf owner: root group: root mode: "0644" register: coredump_sysctl - name: Appliquer fs.suid_dumpable ansible.builtin.command: cmd: sysctl --system when: coredump_sysctl.changed changed_when: true - name: Deployer la limite hard core 0 ansible.builtin.template: src: ../templates/60-cis-coredump-limits.conf.j2 dest: /etc/security/limits.d/60-cis-coredump.conf owner: root group: root mode: "0644" # --- 1.5.5 Apport (Automatic Error Reporting) --- - name: Purger apport (et ses dependances python3-apport, apport-core-dump-handler) ansible.builtin.apt: name: apport state: absent purge: true # --- 6.2.1.x auditd --- - name: Installer auditd et audispd-plugins ansible.builtin.apt: name: - auditd - audispd-plugins state: present update_cache: true cache_valid_time: 3600 - name: Demasquer, activer et demarrer auditd ansible.builtin.systemd: name: auditd masked: false enabled: true state: started - name: Verifier la presence de audit=1 dans GRUB_CMDLINE_LINUX ansible.builtin.lineinfile: path: /etc/default/grub regexp: '^GRUB_CMDLINE_LINUX=' line: 'GRUB_CMDLINE_LINUX="audit=1 audit_backlog_limit=8192"' backup: true register: grub_conf - name: Regenerer grub.cfg si la config a change ansible.builtin.command: cmd: update-grub when: grub_conf.changed changed_when: true - name: Verifier que audit=1 est bien present dans grub.cfg genere ansible.builtin.command: cmd: grep -q 'audit=1' /boot/grub/grub.cfg changed_when: false # --- 6.2.4.9 / 6.2.4.10 Ownership des outils d'audit --- - name: Proprietaire/groupe root:root sur les outils d'audit ansible.builtin.file: path: "{{ item }}" owner: root group: root loop: - /sbin/auditctl - /sbin/aureport - /sbin/ausearch - /sbin/autrace - /sbin/auditd - /sbin/augenrules ignore_errors: true # certains binaires peuvent etre des symlinks vers /usr/sbin selon la distro - name: Confirmer le succes pour cet host ansible.builtin.debug: msg: >- ✅ Core dumps/apport/auditd appliqués sur {{ inventory_hostname }}. REDÉMARRAGE requis pour que audit=1 protège les process pré-auditd (non fait par ce playbook).