Registre toda la actividad raíz con el nombre de usuario original que su'd / sudoed a root

11

¿Cuál es el método preferido para realizar un seguimiento de quién está actuando como root en los registros cuando el inicio de sesión root está deshabilitado (SSH) pero los usuarios pueden ejecutar sudo -io su -convertirse en root? Me gustaría seguir cada comando con el nombre de usuario original también. RHEL 6 o cualquier rsyslog de Linux, etc.

Gregg Leventhal
fuente

Respuestas:

7

Los métodos más robustos parecen ser auditados:

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

Auditd básicamente intercepta todas las llamadas al sistema y las compara con su conjunto de reglas. Entonces en su /etc/audit/audit.rulesarchivo tendría algo como lo siguiente:

# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION

La última regla es la única regla no predeterminada.

El principal inconveniente de este enfoque (y la razón por la que encontré esta pregunta mientras buscaba alternativas) es que los archivos de registro sin procesar son bastante crípticos y solo son útiles después de ejecutar el programa de consulta en el archivo de registro sin procesar: ausearch

Una consulta de ejemplo para esa regla sería:

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

Una solución de sentido común probablemente sería crear un cron que consultará sus registros auditados sin procesar y luego los enviará a su solución de registro.

freb
fuente
Si está buscando algo que reemplace auditado y correlacione los eventos sin procesar por usted, consulte: github.com/slackhq/go-audit
freb
3

En las distribuciones de Red Hat, generalmente usa el /var/log/secureregistro para identificar quién ha estado iniciando sesión o haciendo uso de él sudoen un sistema Fedora / CentOS / RHEL.

Ejemplos

ejemplo de sudo
$ sudo -Es

resultado del registro:

1 de septiembre 19:32:51 greeneggs sudo: saml: TTY = pts / 2; PWD = / home / saml; USUARIO = raíz; COMANDO = / bin / bash

su ejemplo
$ su -

resultado del registro:

1 de septiembre 19:34:49 greeneggs su: pam_unix (su-l: session): sesión abierta para el usuario root por saml (uid = 1000)

slm
fuente
3

Si tiene usuarios cooperantes, puede configurar rooth para registrar todo lo que el usuario root escribe en syslog.

http://linux.die.net/man/1/rootsh

Los rpms de rooth están disponibles en EPEL.

La versión de sudo en RHEL6 también es capaz de registrar stdout en un archivo para cada sesión de sudo. Mire la página de manual de sudo_plugins.

Ninguno de estos enfoques es completamente a prueba de balas.

Fred the Magic Wonder Dog
fuente