Skip to main content

El demonio Audit es un framework que permite auditar eventos en sistemas GNU/Linux. Puede utilizarse para registrar comportamientos y comandos que un usuario ejecuta en un TTY. Cuando inicia sesión, el módulo pam_tty_audit.so es capaz de registrar los keystrokes que realiza el usuario y guardarlos en el archivo /var/log/audit/audit.log.
Es flexible en el sentido de que nos permite habilitar o deshabilitar el registro para usuarios específicos.

Es capaz de capturar pulsaciones de teclas, incluidos los retrocesos, tabulaciones y backspaces (entre otras) por lo que podemos esperar algunos caracteres basura en la salida.
Dado que este es un componente de “auditd“, podemos utilizar la herramienta “aureport” con el parámetro – -tty para mostrar toda la información registrada por el módulo.
El registro no siempre aparece en tiempo real, se almacena en búfer. Si el usuario inició una nueva sesión, el registro se escribirá cuando salga de la misma.

Configuración

NOTA: El proceso de instalación y configuración fue realizado con Debian Buster 10.7.
El mismo es para conexiones SSH y CONSOLE.
El framework tiene muchas mas features, pero este post solo se centra en la auditoría de tty.

Como primer paso, se tiene que tener instalado en el servidor el paquete “auditd”. El mismo se puede realizar con el comando:

-bash-5.0:#~ apt install auditd

Una vez instalado, chequear que esté iniciado el servicio con el comando “systemctl status auditd

Si no está UP, utilizamos “systemctl start auditd“. Chequeamos nuevamente con un status para ver que esta en estado “running”

Luego, es necesario agregar en el archivo /etc/pam.d/ssh (para conexiones ssh) y /etc/pam.d/login (para conexiones en HVC0) que haga uso del módulo “pam_tty_audit.so”.

session required pam_tty_audit.so enable=*

Una vez finalizado los pasos anteriores, cada sesión nueva en el servidor será auditada.
Podemos revisar el log con el comando:

aureport –tty

Como último paso, es necesario enviar los logs almacenados en “/var/log/audit/audit.log” a un logserver para no perder los mismos por cualquier problema que pueda suceder en el servidor auditado.

Interpretación output aureport

Cada uno de los valores de la salida por pantalla del comando representan lo siguiente:

  • Número de log
  • Fecha
  • Hora
  • Número de evento
  • ID del usuario que inició la sesión
  • Terminal donde se provocó el evento
  • Número de sesión
  • Comando ejecutado
  • Desarrollo de la sesión

Configuraciones Extras

Como se aclaró en un principio del artículo, se puede customizar de acuerdo a las necesidades y los recursos de un servidor.

En el caso se que necesite auditar a todos los usuarios excepto a algunos en específicos, se puede agregar la variable “disable” para que haga un bypass. En el siguiente ejemplo, se auditarían todos los usuarios excepto “test”.

session required pam_tty_audit.so disable=test enable=*

La importancia de un disclaimer

Siempre es de vital importancia hacer un aviso de la información y auditoría que se registra sobre el servidor. A continuación se muestra un ejemplo de un posible disclaimer.

ATENCIÓN! Estás entrando en un área restringida!
Su IP, hora de inicio de sesión, nombre de usuario es registrado y será enviado al administrador del servidor.
Este servicio está permitido solamente a usuarios autorizados. Todas las actividades de este sistema serán registradas y auditadas.
El acceso no autorizado será completamente investigado y reportado a las agencias policiales apropiadas.

Configuración en servidor Debian

Como primer paso, crear un archivo en el directorio /etc con el nombre “disclaimer-issue“. Dentro de ese archivo, copiar y pegar el texto de ejemplo que aparece en la sección superior.
Luego, en el archivo de configuración /etc/ssh/sshd_config buscar la linea que contiene el parámetro “Banner“, descomentarla y agregarle el path donde se encuentra el archivo que se creo anteriormente (/etc/disclaimer-issue).
Para finalizar, reiniciar el servicio SSH con el comando “/etc/init.d/ssh restart

El contenido de este artículo esta bajo licencia Creative Commons.