GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo usar auditd para monitorear la eliminación de un archivo en Linux

Entonces, tiene una situación en la que un determinado archivo se elimina con frecuencia y necesita investigar quién elimina el archivo. Puede ser un uso o un proceso del sistema que puede eliminar un archivo. El servicio auditd puede ser una herramienta perfecta para investigar tales problemas de eliminación de archivos. La publicación describe los pasos para instalar y configurar auditd para monitorear la eliminación de un archivo /var/tmp/test_file.

Red Hat Enterprise Linux proporciona una función de reglas de auditoría para registrar las actividades de archivos realizadas por usuarios o procesos. Esto se puede lograr configurando reglas de auditoría.

Instalando auditd

1. En su mayoría, encontrará auditd ya instalado en distribuciones basadas en redhat. Si no, instálelo usando yum:

# yum install audit

2. A continuación, asegúrese de que el servicio se inicie en el arranque e inicie el servicio.

# systemctl enable auditd
# systemctl start auditd

Se recomienda que use el comando "servicio" en lugar de systemctl en CentOS/RHEL 7 mientras reinicia el servicio auditd. Si usa el comando systemctl, es posible que encuentre el siguiente error:

# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status auditd.service' for details.

3. Consulta el estado del servicio:

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-16 03:29:19 UTC; 8s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
  Process: 1951 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  Process: 1946 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 1947 (auditd)
    Tasks: 2
   CGroup: /system.slice/auditd.service
           └─1947 /sbin/auditd

Configuración de reglas de auditoría

1. Para configurar las reglas de auditoría, agregue la siguiente línea en el archivo /etc/audit/rules.d/audit.rules:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
En CentOS/RHEL 6, el archivo de configuración es /etc/audit/audit.rules en lugar de /etc/audit/rules.d/audit.rules.

Las reglas anteriores monitorean todos los archivos en el sistema en busca de cambios como desvincular, renombrar, eliminar, etc. Opcionalmente, puede especificar una ruta completa del directorio para monitorear, por ejemplo, si desea monitorear la eliminación de archivos solo en un archivo específico puede especificar el punto de montaje agregando el siguiente campo a la regla de auditoría:

-F dir=[directory or mount point]

Entonces, las reglas definidas anteriormente ahora se convertirán en una sola regla, como se muestra a continuación:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F dir=/var/tmp -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete_var

Tenga en cuenta que también he modificado la clave en las reglas.

2. Debe reiniciar el servicio auditd para que las reglas entren en vigencia.

# service auditd restart

3. Use el comando 'auditctl -l' para ver las reglas de auditoría actualmente activas.

# auditctl -l
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var

Verifique los registros de auditoría para la eliminación de archivos

1. Ahora puede intentar eliminar el archivo "/var/tmp/test_file" para ver si la regla auditd que acabamos de crear registra este evento en el archivo de registro.

2. Esto registrará las operaciones de eliminación de archivos en el archivo /var/log/audit/audit.log , sin embargo podemos usar el comando ausearch con la clave especificada en la regla de auditoría (-k) para ver los eventos:

# ausearch -k delete_var
...
----
time->Sat Jun 16 04:02:25 2018
type=PROCTITLE msg=audit(1529121745.550:323): proctitle=726D002D69002F7661722F746D702F746573745F66696C65
type=PATH msg=audit(1529121745.550:323): item=1 name="/var/tmp/test_file" inode=16934921 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:user_tmp_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529121745.550:323): item=0 name="/var/tmp/" inode=16819564 dev=ca:01 mode=041777 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:tmp_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529121745.550:323):  cwd="/root"
type=SYSCALL msg=audit(1529121745.550:323): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=9930c0 a2=0 a3=7ffe9f8f2b20 items=2 ppid=2358 pid=2606 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="rm" exe="/usr/bin/rm" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="delete_var"

Como puede ver en el registro anterior, el usuario root (uid=0) eliminó (exe=”/usr/bin/rm”) el archivo /var/tmp/test_file.


Cent OS
  1. Cómo usar el comando md5sum en Linux

  2. Cómo usar el comando táctil en Linux

  3. Cómo usar el comando Tar en Linux

  4. Cómo usar auditd para monitorear un SYSCALL específico

  5. Se afirma que un archivo está desapareciendo:cómo monitorear un archivo para eliminarlo en Linux

Cómo crear y usar un archivo de intercambio en Linux

Cómo usar AppImage en Linux (Guía para principiantes)

Cómo usar el comando SCP en Linux

Cómo usar el comando lsof en Linux

¿Cómo usar gzip en Linux?

Cómo usar el comando shred de Linux