Entonces, la pregunta aquí es cómo determinamos qué usuario o proceso del sistema está desmontando o montando un punto de montaje en particular. El montaje y desmontaje de un punto de montaje se puede monitorear con la ayuda de auditd. auditd es un componente de espacio de usuario para el sistema de auditoría de Linux. Esto significa que los usuarios del sistema podrán ejecutar auditd para configurar reglas y alertas para la funcionalidad de auditoría con el sistema Linux.
Una de las mejores cosas de auditd es que está estrechamente integrado con el kernel, por lo que nos da el poder de monitorear casi todo lo que queremos, de verdad. De forma predeterminada, no hay reglas configuradas. Necesitamos escribir nuestras reglas en /etc/audit/rules.d/audit.rules archivo de configuración que se leerá y se aplicarán las acciones de auditoría correspondientes.
Instalando auditd
1. Los paquetes auditd son parte de la instalación predeterminada de los sistemas RHEL/CentOS 7. Podemos verificarlo con el siguiente comando:
# rpm -qa | grep audit audit-libs-2.8.1-3.el7.x86_64 audit-libs-python-2.8.1-3.el7.x86_64 audit-2.8.1-3.el7.x86_64
2. Si el paquete no es parte de nuestro sistema, podemos continuar e instalarlo:
# yum install audit
3. Asegúrese de que el demonio de auditoría se esté ejecutando. Usaremos el siguiente comando:
# systemctl status auditd ● auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-06-17 06:56:06 UTC; 2min 37s ago Docs: man:auditd(8) https://github.com/linux-audit/audit-documentation Process: 657 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Process: 652 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS) Main PID: 653 (auditd) Tasks: 2 CGroup: /system.slice/auditd.service └─653 /sbin/auditd
En el caso de CentOS/RHEL 6, puede usar el comando de servicio para verificar el estado del servicio de auditoría:
# service auditd status
Configuración de reglas de auditoría para monitorear el montaje/desmontaje de sistemas de archivos
Ahora configuremos las reglas de auditoría requeridas para monitorear el montaje/desmontaje de sistemas de archivos.
1. Agregue la siguiente regla en el archivo /etc/audit/rules.d/audit.rules operaciones de montaje y desmontaje de auditoría. Observe que el nombre de umount SYCALL es umount2.
# vi /etc/audit/rules.d/audit.rules -a always,exit -F arch=b64 -S mount,umount2 -k mount_umountEn CentOS/RHEL 6, el archivo de configuración es /etc/audit/audit.rules en lugar de /etc/audit/rules.d/audit.rules.
Aquí,
-a – Agrega la regla al final de la lista con acción.
siempre, salir – son las acciones especificadas con la opción -a.
-S – significa SYSCALL (en caso de montar y desmontar2)
arch=b64 – especifica la regla para la arquitectura de 64 bits.
2. Reinicie el servicio auditd con el comando "servicio":
# service auditd restart Stopping logging: [ OK ] Redirecting start to /bin/systemctl start auditd.service
Verificar
1. Tomemos el punto de montaje /data como ejemplo y veamos si obtenemos registros de auditoría generados al montar/desmontar este punto de montaje.
# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/xvdf 976M 2.6M 907M 1% /data
2. Desmonte este punto de montaje manualmente.
# umount /data
Supervise /var/log/audit/audit.log, busque mensajes similares a los siguientes. El uid= y gid= secciones, así como el pid= parte de los registros de auditoría puede ayudar a determinar el proceso o el usuario que emite el comando:
# tailf /var/log/audit/audit.log ... type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount" type=CWD msg=audit(1529223527.639:881): cwd="/root"
Pasar por /var/log/audit/audit.log puede ser abrumador si tiene muchas cosas auditadas en su servidor. En su lugar, puede usar el comando "ausearch" con la clave definida en la regla para filtrar los registros solo relacionados con el montaje y desmontaje. Por ejemplo:
# ausearch -k mount_umount ---- time->Sun Jun 17 08:18:47 2018 type=PROCTITLE msg=audit(1529223527.639:881): proctitle=756D6F756E74002F64617461 type=PATH msg=audit(1529223527.639:881): item=0 name="/data" inode=2 dev=ca:50 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:unlabeled_t:s0 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=CWD msg=audit(1529223527.639:881): cwd="/root" type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"¿Cómo monitorear los archivos /etc/shadow y /etc/passwd en busca de cambios con Auditd?
Cómo usar auditd para monitorear la eliminación de un archivo en Linux
Comprender la auditoría del sistema con auditd