Come posso tracciare chi SSH è nella mia macchina Linux?


23

Sto eseguendo Ubuntu 10.04. Esiste un modo per ottenere un rapporto giornaliero su chi ha effettuato l'accesso alla casella, a che ora e persino - questo potrebbe chiedere troppo - un rapporto sui comandi utilizzati? Questa è una scatola a basso utilizzo e quindi penso che sarebbe un bel modo per vedere quale attività sta accadendo su di essa.

Lungo queste stesse linee, ho sentito che non era possibile tracciare quando le cose sono fatte sulla scatola tramite shell non interattive, come rsync o semplicemente eseguendo da remoto singoli comandi tramite ssh. È vero, o c'è un modo per registrare e tracciare anche questo?

Risposte:


21

Le informazioni su chi ha effettuato l'accesso quando è disponibile in /var/log/auth.log(o altri file di registro su altre distribuzioni). Esistono più programmi di monitoraggio dei log in grado di estrarre le informazioni configurate come pertinenti. Su qualsiasi sistema sano, viene registrata ogni autenticazione dell'utente.

Per registrare ogni invocazione di comandi (ma non i loro argomenti), utilizzare la contabilità di processo , fornita dal acctpacchetto Installa acct su Ubuntu. Se il sottosistema di contabilità è attivo e in esecuzione, lastcommmostra le informazioni sui processi finiti.


3
/var/log/secure.log è un altro file di log comune
Adrian Cornish,

9

Puoi anche usare whoo wper vedere chi è attualmente connesso al sistema, inclusi gli utenti SSH.


10
lastpotrebbe essere un'opzione migliore per ciò che l'OP stava cercando ...
Jasonwryan,

1
infatti. "last" è il comando che desideri.
Sirex,

1
Questa è una risposta MOLTO migliore di quella selezionata.
PaulBGD

0

Di solito quando qualcuno accede a un sistema utente quindi in / var / log / messaggi viene stampato come:

sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2

Quindi grep i messaggi come:

grep -E "Accepted keyboard-interactive/pam for" /var/log/messages

0

Puoi anche modificare la shell bash per fare un po 'di rsylog.

In effetti, si configura rsyslog su un host remoto per accettare connessioni specifiche. Quindi modificare la shell host su cui si desidera monitorare, compilando la versione, con una che ha il seguente abilitato:

vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
#  define SYSLOG_FACILITY LOG_USER
#  define SYSLOG_LEVEL LOG_INFO
#endif

Una volta compilato con questo abilitato, puoi sostituire bash con questa versione O far accedere gli utenti a questo reindirizzando i loro accessi ad esso.

Per maggiori informazioni:

https://www.pacificsimplicity.ca/blog/remote-logging-using-syslog-and-logging-shell-commands-remotely


Belle. Lo aggiornerò.
Mcdoomington,
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.