auditd è il componente dello spazio utente del sistema di auditing Linux. È responsabile della scrittura dei record di controllo sul disco. La visualizzazione dei registri viene eseguita con le utilità aussearch o aureport. La configurazione delle regole di controllo viene eseguita con l'utilità auditctl. Durante l'avvio, le regole in /etc/audit/rules.d/audit.rules (per CentOS/RHEL 7) vengono lette da auditctl. Il demone di audit stesso ha alcune opzioni di configurazione che l'amministratore potrebbe voler personalizzare. Si trovano nel file auditd.conf.
Il post fornisce una regola di controllo di esempio per acquisire le credenziali dell'utente e il comando utilizzato per riavviare/spegnere i server Linux e questa regola può essere modificata come richiesto.
Il file di configurazione principale per aggiungere la regola di controllo è “/etc/audit/audit.rules” e lo stesso deve essere aggiornato con le regole richieste.
Nota :su CentOS/RHEL 7, il file di configurazione è /etc/audit/rules.d/audit.rules invece di /etc/audit/audit.rules.
Configurazione di controllo
Di seguito è riportato un esempio basato su CentOS/RHEL 6, ma i passaggi rimangono gli stessi anche per CentOS/RHEL 7.
1. Eseguire il backup della configurazione esistente.
# cp /etc/audit/audit.rules /etc/audit/audit.rules.bkp
2. Modifica il file /etc/audit/audit.rules e aggiungi le seguenti regole per renderlo persistente.
# vi /etc/audit/audit.rules -a exit,always -F arch=b64 -S execve -F path=/sbin/reboot -k reboot [ -k Filter key ] -a exit,always -F arch=b64 -S execve -F path=/sbin/init -k reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/poweroff -k reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/shutdow -k reboot
3. Riavviare il servizio auditd per rendere effettive le modifiche.
# service auditd restart
4. Elenca le regole aggiunte,
# auditctl -l LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/reboot key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/init key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/poweroff key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/shutdow key=reboot syscall=execve
Verifica
Per filtrare gli eventi di riavvio dal log di controllo è necessario specificare la chiave del filtro.
# ausearch -k reboot time->Mon Jan 4 11:48:20 2016 type=PATH msg=audit(1451926100.004:17): item=1 name=(null) inode=1368522 dev=fc:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=PATH msg=audit(1451926100.004:17): item=0 name="/sbin/init" inode=1792404 dev=fc:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=CWD msg=audit(1451926100.004:17): cwd="/root" type=EXECVE msg=audit(1451926100.004:17): argc=2 a0="init" a1="6" type=SYSCALL msg=audit(1451926100.004:17): arch=c000003e syscall=59 success=yes exit=0 a0=12706f0 a1=1271190 a2=1268ec0 a3=8 items=2 ppid=2830 pid=2879 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=1 comm="init" exe="/sbin/init" key="reboot
Qui,
uid – Rappresenta l'ID utente.
gid – Rappresenta l'id del gruppo
exe="/sbin/init" – comando eseguito