Su Linux c'è un audit RPM chiamato audit, che fornisce il servizio auditd per monitorare anche i processi ei comandi. Usando audit RPM possiamo controllare alcune semplici operazioni sui file come lettura, scrittura ed esecuzione. Questo post introdurrà un metodo per monitorare l'accesso ai file sul sistema Linux. Come "Quando il file è stato letto/modificato?", "Chi ha modificato il file specifico?".
1. avviare prima il servizio auditd se non è in esecuzione.
# service auditd start ### CentOS/RHEL 6 # systemctl start auditd ### CentOS/RHEL 7
2. usa auditctl comando per specificare quali file vuoi monitorare:
# auditctl -w /etc/hosts -p war -k hostswrap
-w :specifica il file che desideri controllare/controllare.
-p :quale operazione/autorizzazione vuoi controllare/guardare, r per leggere, w per scrivere, x per eseguire, a per aggiungere.
-k :specifica una parola chiave per questa regola di controllo, durante la ricerca nel log di controllo, puoi cercare per questa parola chiave
3. Si noti che le modifiche apportate al sistema di controllo in esecuzione eseguendo auditctl sulla riga di comando non sono persistenti durante i riavvii del sistema. Per rendere persistenti le modifiche, aggiungile a /etc/audit/audit.rules file e, se non sono attualmente caricati in audit, riavviare il servizio auditd per caricare il set di regole modificato.
# vi /etc/audit.rules -w /etc/hosts -p war -k hostswrap
# service auditd restart ### CentOS/RHEL 6 # systemctl restart auditd ### CentOS/RHEL 7
4. Per elencare le regole di audit correnti nel servizio auditd, utilizzare l'opzione "l".
# auditctl -l No rules AUDIT_WATCH_LIST: dev=8:5, path=/etc/hosts, filterkey=hostswrap, perms=rwa, valid=0
5. controllare il registro di controllo per qualsiasi accesso al file /etc/hosts.
# ausearch -f /etc/hosts -i | less type=FS_WATCH msg=audit(05/28/18 11:21:27.216:10) : watch_inode=4313009 watch=hosts filterkey=hostswrap perm=read,write,append perm_mask=read type=SYSCALL msg=audit(05/28/18 11:21:46.251:19) : arch=i386 syscall=open success=yes exit=5 a0=c679b5 a1=0 a2=1b6 a3=0 items=1 pid=16056 aui d=unset uid=oracle gid=dba euid=oracle suid=oracle fsuid=oracle egid=dba sgid=dba fsgid=dba comm=ons exe=/home/oracle/oracle/product/10.2.0/c rs_1/opmn/bin/ons ---- type=PATH msg=audit(05/28/18 11:21:38.697:11) : name=/etc/hosts flags=follow,access inode=4313009 dev=08:05 mode=file,644 ouid=root ogid=root rdev=00:00 type=CWD msg=audit(05/28/18 11:21:38.697:11) : cwd=/newspace/TAR/May type=FS_INODE msg=audit(05/28/18 11:21:38.697:11) : inode=4313009 inode_uid=root inode_gid=root inode_dev=08:05 inode_rdev=00:00 type=FS_WATCH msg=audit(05/28/18 11:21:38.697:11) : watch_inode=4313009 watch=hosts filterkey=hostswrap perm=read,write,append perm_mask=writ e .....
Il log mostra il tempo di operazione, l'elaborato/comando per leggere/scrivere il file, uid, ecc.