first commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
---
|
||||
# Regles d'audit detaillees (CIS 6.2.3.1-6.2.3.3) — surveillance sudo + surveillance dediee omnex
|
||||
#
|
||||
# PREREQUIS : necessite hardening/playbook-coredump-auditd-hardening.yml deja applique
|
||||
# (auditd installe et actif).
|
||||
#
|
||||
# - Regles CIS standard : changements /etc/sudoers(.d), toute action "en tant qu'un autre
|
||||
# utilisateur" (execve avec euid!=uid, couvre sudo/su), modifications de /var/log/sudo.log.
|
||||
# - Regle custom omnex : capture TOUTE commande executee par omnex (execve filtre sur auid,
|
||||
# qui persiste a travers sudo/su, donc suit omnex meme apres elevation) — uniquement sur
|
||||
# les hosts ou l'utilisateur omnex existe (absent sur bdd-redis-prod/backup-mln, root direct).
|
||||
# - `augenrules --load` recharge la config a chaud : PAS besoin de redemarrage ici (contrairement
|
||||
# a audit=1 dans GRUB) tant que le mode immutable (-e 2) n'est pas active — volontairement pas
|
||||
# configure par ce playbook (risque : plus aucune modif de regle possible sans reboot).
|
||||
#
|
||||
# `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-audit-rules-sudo-omnex.yml --limit pre-prod-uber
|
||||
|
||||
- name: Regles d'audit detaillees - sudo + omnex (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 les regles d'audit sudo (CIS 6.2.3.1-6.2.3.3)
|
||||
ansible.builtin.template:
|
||||
src: ../templates/audit-50-sudo.rules.j2
|
||||
dest: /etc/audit/rules.d/50-sudo.rules
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
register: sudo_rules
|
||||
|
||||
- name: Verifier si l'utilisateur omnex existe sur cet host
|
||||
ansible.builtin.getent:
|
||||
database: passwd
|
||||
key: omnex
|
||||
ignore_errors: true
|
||||
register: omnex_getent
|
||||
|
||||
- name: Deployer la regle d'audit dediee omnex (uniquement si l'utilisateur existe)
|
||||
ansible.builtin.template:
|
||||
src: ../templates/audit-51-omnex.rules.j2
|
||||
dest: /etc/audit/rules.d/51-omnex.rules
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
vars:
|
||||
omnex_uid: "{{ ansible_facts.getent_passwd.omnex[1] }}"
|
||||
when: omnex_getent is succeeded
|
||||
register: omnex_rules
|
||||
|
||||
- name: Charger les nouvelles regles d'audit (augenrules --load)
|
||||
ansible.builtin.command:
|
||||
cmd: augenrules --load
|
||||
when: sudo_rules.changed or (omnex_rules is defined and omnex_rules.changed)
|
||||
changed_when: true
|
||||
|
||||
- name: Verifier que les regles sudo sont bien actives (auditctl -l)
|
||||
ansible.builtin.command:
|
||||
cmd: auditctl -l
|
||||
register: auditctl_check
|
||||
changed_when: false
|
||||
failed_when: >
|
||||
'scope' not in auditctl_check.stdout or
|
||||
'user_emulation' not in auditctl_check.stdout or
|
||||
'sudo_log_file' not in auditctl_check.stdout
|
||||
|
||||
- name: Verifier que la regle omnex est active (si applicable)
|
||||
ansible.builtin.command:
|
||||
cmd: auditctl -l
|
||||
register: auditctl_omnex_check
|
||||
changed_when: false
|
||||
when: omnex_getent is succeeded
|
||||
failed_when: "'omnex_actions' not in auditctl_omnex_check.stdout"
|
||||
|
||||
- name: Confirmer le succes pour cet host
|
||||
ansible.builtin.debug:
|
||||
msg: >-
|
||||
✅ Règles d'audit sudo{{ ' + omnex' if omnex_getent is succeeded else '' }}
|
||||
actives sur {{ inventory_hostname }} (auditctl -l vérifié, pas de reboot requis).
|
||||
Reference in New Issue
Block a user