Come registro tutti i comandi eseguiti da un utente?


32

Voglio monitorare tutte le attività dell'utente nel mio server.

Anche quando l'utente esegue un comando shell da un editor come VIM, voglio vederli nel file di registro.

Ho controllato lo strumento acct ma non elenca i comandi completi. (Per favore, correggimi se ho perso alcune opzioni che già lo fanno).

Quale strumento Linux dovrei guardare per risolvere questo problema?


1
. man script (1)
adatto il


Risposte:


32

Aggiungi questa riga al tuo pam config responsabile degli accessi (la sua autenticazione di sistema su distro basate su redhat)

session    required     pam_tty_audit.so enable=*

Per scoprire cosa è stato fatto, puoi usare.

ausearch -ts <some_timestamp> -m tty -i

Questo produce un output come questo:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

L'unico aspetto negativo di questo è che può essere un po 'difficile da leggere, ma è molto meglio della maggior parte delle soluzioni proposte dal momento che in teoria potrebbe essere usato per registrare un'intera sessione, tutte le avvertenze.

Modifica: Oh e puoi usare aureport per generare un elenco che può essere più utile.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

Grazie per i dettagli Sto usando Ubuntu 10.04 LTS Quando controllo la cartella / lib / security / il modulo non è presente ma è presente una pagina man per quel modulo. Penso di aver colpito questo bug bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 Esiste un altro modo per installare quel modulo?
Supratik,

La segnalazione di bug suggerisce che è stata distribuita una correzione e l'aggiornamento.
Matthew Ife,

@Mlfe Ho compilato il codice sorgente PAM e copiato il file .so in / lib / security / e ha funzionato. Grazie ancora.
Supratik,

1
@CameronKerr: il problema con la password è stato risolto: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
Nota, vale la pena ricordare che per funzionare sopra, il auditddemone deve essere abilitato prima (non era di default sulla mia installazione di CentOS 6.7). Per avviare il demone, utilizzare :, e service auditd startper rendere persistente questa modifica (dopo il riavvio), utilizzare chkconfig auditd on Source: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… e access.redhat.com/documentation/en-US/ Red_Hat_Enterprise_Linux / ...
jonny


2

Puoi usare snoopy .

È una semplice libreria di registrazione dei comandi e non una soluzione di controllo adeguata (facilmente aggirabile). Divulgazione: sono l'attuale manutentore di snoopy.


2

Un trucco meno noto, ma facilmente il più fantastico è solo quello di utilizzare le funzionalità di controllo integrate di sudo. Sudo viene fornito con un sudoreplaycomando che semplifica la riproduzione delle sessioni. Inoltrerà anche le vimsessioni (come suggerisci).

Ecco come usarlo in pochi semplici passaggi:

  1. Installa sudoshsul tuo sistema; questo è un wrapper di shell attorno al sudocomando che rende l'utente sudostesso (non root) e può essere usato come shell di accesso al sistema
  2. Abilita sudoregistrazione. Modifica /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Aggiungi questo comando a /etc/shellsper consentire l'accesso usando: /usr/bin/sudosh

    Suggerimento : per impedire agli utenti di utilizzare altre shell per accedere, rimuovere quelle altre shell /etc/shells.

  4. Aggiorna l'utente foobarper utilizzare la sudoshshell. chsh -s /usr/bin/sudosh foobar

Per informazioni più dettagliate, consultare: https://github.com/cloudposse/sudosh/


1

ecco una soluzione magica: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum install psacct (redhat)
  • sudo apt-get install acct

è possibile visualizzare le statistiche relative ai comandi / alla connessione dell'utente ecc.

Elenca tutti i comandi invocati da un determinato utente ...

Cerca nei registri contabili per nome comando: $ lastcomm rm $ lastcomm passwd

e così via, per maggiori informazioni si prega di visitare il link sopra.


3
Nella domanda è stato detto: 'Acct non sta elencando i comandi completi'.
Putnik,
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.