Registrazione di un'attività "persone" in Linux


11

Quindi ho letto molti dei post relativi a questo e sono appena diventato più confuso di prima. Ci sono raccomandazioni per vari strumenti tra cui ttyrec, snoopy, acct, rootsh, sudosh, ttyrpld, auditing unix e altro.

Nel mio caso, voglio essere in grado di registrare tutti i comandi eseguiti su un sistema (come la cronologia con i timestamp abilitati), ma voglio anche sapere chi ha fatto cosa? Tuttavia, accediamo tutti tramite ssh allo stesso piccolo sottoinsieme di account utente (a seconda di ciò che stiamo facendo). Come posso ottenere un registro di comandi che includa le informazioni che un "chi" mi darà (per quanto riguarda la connessione) in modo da poter tracciare l'azione su una persona specifica come posta a un "utente" generico?


Snoopy dovrebbe essere in grado di farlo, e probabilmente molte altre alternative.
3molo,

2
Chiamate di sistema, sudo, cronologia della shell, modifiche al filesystem? Non tutti i processi utente sono necessariamente avviati dalle shell di accesso.

Risposte:


9

Il auditdpacchetto è progettato per questo, è possibile utilizzare PAM per assegnare a ciascun accesso un ID sessione in modo da poter tracciare l'attività su un account di nuovo all'accesso originale (e quindi controllare il registro di accesso per determinare da dove quella persona ha effettuato l'accesso) e utilizzare il ausearchcomando per localizzare gli eventi che ti interessano. Puoi leggere una guida piuttosto completa qui, anche se alcuni dei dettagli più fini dovranno essere modificati per adattarli alla tua distribuzione. Redhat ha un sito con una FAQ e alcuni altri documenti qui .

Poiché questo non si basa sul tentativo di registrare i comandi digitati nelle shell o di registrare la cronologia dei comandi degli utenti, dovrebbe registrare cose come l'apertura di vi (che potrebbe essere eseguita su X o in screen), la scrittura di uno script (forse un carattere in un tempo con i comandi taglia / incolla di vi e alcune esecuzioni :.!/usr/games/fortuneper ottenere alcuni dati di origine che potresti non essere in grado di registrare) quindi eseguire il :%!/bin/bashcomando.


Questa è la risposta più promettente ... L' audit ti consente di tracciare in modo coerente le azioni di un utente dal login fino al logout, indipendentemente dalle identità che questo utente potrebbe adottare utilizzando gli ID di audit creati al momento del login e trasmessi a qualsiasi processo figlio del processo di accesso originale. Un po 'più di lettura da parte mia ora per capire come implementarlo effettivamente. Grazie per aver ristretto i lotti scelti!
Ashimema,

Ci scusiamo per aver impiegato così tanto tempo a contrassegnare questa risposta come accettata .. Ci stavo provando! Funziona un sogno .. Saluti ragazzi!
Ashimema,

4

Ci sono già una varietà di strumenti a tua disposizione, che la tua domanda (e queste risposte) suggeriscono come cronologia, snoopy, auditd, log sudo, ecc ... ma se hai un "Sottoinsieme di account" che la gente sta usando, c'è nessun modo sul server per dire chi ha fatto cosa. L'unico modo in cui puoi dire specificamente chi è stato se gli utenti hanno i loro computer che usano specificamente e usano i keylogger per dire cosa stavano digitando fisicamente su quella tastiera.

Ogni volta che condividi account non puoi dire cosa stava realmente succedendo, dal momento che avresti bisogno di ulteriori prove su chi stava usando il tuo account root o account Bob o qualunque cosa stesse facendo la tua gente. Se stai cercando di indagare su ciò che è accaduto in un incidente specifico, potrebbe essere necessario rivedere le tue politiche e procedure di accesso, le tue procedure di recupero e valutare i tuoi dipendenti e / o impegnarti nella riqualificazione, se necessario (o nella loro affidabilità con account sensibili) piuttosto di concentrarti direttamente sulla ricerca di chi ha fatto qualcosa, poiché potrebbe risucchiare più risorse di quelle che potresti guadagnare nel trovare la persona che l'ha fatto.

Altrimenti potresti voler esaminare le tecniche di indagine forense per rintracciare l'accaduto (guidare l'immagine, tracciabilità dei log, ecc.) Se non stai indagando su un incidente, esamina la revisione delle tue politiche e istituisci un monitoraggio e una verifica dell'account migliori (solo tu hai root, solo Bob usa il suo account usando sudo per accedere a privilegi più alti, installare e monitorare auditd, ecc.) e fare attenzione a non far sembrare il tuo cerchio di fiducia come se fossero tenuti al microscopio o potresti alienare le persone che provano per svolgere il proprio lavoro (o impedirgli di svolgere il proprio lavoro).


2

Linux auditd ( http://people.redhat.com/sgrubb/audit/ ) ti darà il massimo potere nel guardare chi ha fatto cosa. Ne hai di più nella risposta di DerfK.

Nulla, tuttavia, ti dirà chi ha effettuato l'accesso come webadmin, se ci sono n persone che hanno accesso all'account webadmin. Vorrei suggerire di utilizzare account con nome per ciascun utente e quindi utilizzare su - o sudo per eseguire i comandi dall'account "funzione".

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.