Supondo que você esteja executando o RHEL / CentOS 6 e tenha um compartilhamento nfs montado como /mnt/nfs/foo
:
$ tree /mnt/nfs/foo
/mnt/nfs/foo
|-- a
| '-- foo
|-- b
'-- bar
Você precisará definir as seguintes regras em /etc/audit/audit.rules
:
# Delete existing rules
-D
# Set buffer size
-b 320
# Log read and write operations
-w /mnt/nfs/foo -p r -k read -k nfs
-w /mnt/nfs/foo -p w -k write -k nfs
Em seguida, recarregue o serviço auditd
com /etc/init.d/auditd reload
.
Uma vez feito isso, você pode usar ausearch
e aureport
para ler os registros de eventos gerados por auditd
:
$ cat /mnt/nfs/foo/a/foo
$ echo 'test' > /mnt/nfs/foo/b/bar
$ ausearch -k nfs | aureport -f
File Report
===============================================
# date time file syscall success exe auid event
===============================================
1. 07/15/2015 11:39:04 /mnt/nfs/foo/a/foo 2 yes /bin/cat 500 59
2. 07/15/2015 11:39:05 /mnt/nfs/foo/b/bar 2 yes /bin/bash 500 60
Uma ressalva de que ele só poderá coletar as informações do lado do cliente. Se o seu cliente não é confiável, você não pode usar este método para determinar com segurança o que eles estão acessando através do nfs.