Registra tutte le attività di root con il nome utente originale che ha eseguito su / sudo su root


11

Qual è il metodo preferito per tenere traccia di chi agisce come root nei log quando l'accesso root è disabilitato (SSH) ma gli utenti possono eseguire sudo -io su -diventare root? Vorrei seguire ogni comando anche con il nome utente originale. RHEL 6 o qualsiasi rsyslog di Linux, ecc.

Risposte:


7

I metodi più efficaci sembrano essere auditd:

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

Auditd fondamentalmente intercetta tutte le chiamate di sistema e le confronta con il tuo set di regole. Quindi nel tuo /etc/audit/audit.rulesfile avresti qualcosa di simile al seguente:

# 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

L'ultima regola è l'unica regola non predefinita.

Lo svantaggio principale di questo approccio (e il motivo per cui ho trovato questa domanda mentre cercavo alternative) è che i file di registro non elaborati sono piuttosto criptici e sono utili solo dopo aver eseguito il programma di query sul file di registro non elaborato: ausearch

Una query di esempio per quella regola sarebbe:

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

Una soluzione di buon senso sarebbe probabilmente quella di creare un cron che interrogherà i log di auditd non elaborati e quindi li spedirà alla soluzione di registrazione.


Se stai cercando qualcosa che sostituisca auditd e faccia la correlazione degli eventi non elaborati per te, dai un'occhiata a: github.com/slackhq/go-audit
freb

3

Nelle distribuzioni Red Hat di solito si utilizza il /var/log/secureregistro per identificare chi ha effettuato l'accesso o che si sta utilizzando sudosu un sistema Fedora / CentOS / RHEL.

Esempi

esempio sudo
$ sudo -Es

risultato del registro:

1 set 19:32:51 greeneggs sudo: saml: TTY = pts / 2; PWD = / home / saml; USER = root; COMANDO = / bin / bash

su esempio
$ su -

risultato del registro:

1 set 19:34:49 greeneggs su: pam_unix (su-l: session): sessione aperta per l'utente root da saml (uid = 1000)


3

Se hai utenti che collaborano, puoi impostare rooth per registrare tutto ciò che l'utente root digita su syslog.

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

rooth rpms sono disponibili in EPEL.

La versione di sudo su RHEL6 è anche in grado di registrare stdout in un file per ogni sessione di sudo. Guarda nella pagina man sudo_plugins.

Nessuno di questi approcci è completamente a prova di proiettile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.