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

Cómo monitorear el montaje/desmontaje de puntos de montaje usando Auditd en CentOS/RHEL 6,7

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_umount
En 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


Cent OS
  1. CentOS / RHEL 7:Cómo cambiar la identificación de la máquina

  2. CentOS/RHEL 7:cómo seguir el orden de montaje en /etc/fstab

  3. CentOS/RHEL 7:No se puede iniciar el servicio Samba

  4. Cómo cambiar las etiquetas del sistema de archivos en CentOS/RHEL

  5. Cómo montar sistemas de archivos NFS usando 'autofs' en CentOS/RHEL

Cómo instalar snmp en RHEL 8 / CentOS 8

Cómo monitorear Nginx usando Netdata en CentOS 7

Cómo usar tmpfs en RHEL/CentOS 7

Cómo instalar el servidor VNC en CentOS 8 / RHEL 8

Cómo instalar Flameshot en RHEL/CentOS usando Snapcraft

CentOS/RHEL 7:Cómo verificar el estado de un servicio usando systemd