Wie kann ich verfolgen, wer SSH auf meinem Linux-Rechner ist?

23

Ich verwende Ubuntu 10.04. Kann ich auf irgendeine Weise täglich einen Bericht darüber abrufen, wer sich zu welcher Zeit in der Box angemeldet hat, und sogar - was zu viel verlangt - einen Bericht über die von ihnen verwendeten Befehle? Dies ist eine Box mit geringem Verbrauch und ich denke, dies wäre eine gute Möglichkeit, um zu sehen, welche Aktivität darauf stattfindet.

In diesem Sinne hörte ich, dass es nicht möglich war, zu verfolgen, wann Dinge auf der Box über nicht interaktive Shells wie rsync erledigt wurden oder einfach einzelne Befehle über ssh aus der Ferne ausgeführt wurden. Ist das wahr oder gibt es auch eine Möglichkeit, dies zu protokollieren und zu verfolgen?

cwd
quelle

Antworten:

21

Die Informationen darüber, wer sich wann angemeldet hat, sind in /var/log/auth.log(oder in anderen Protokolldateien auf anderen Distributionen) verfügbar . Es gibt mehrere Protokollüberwachungsprogramme, die die von Ihnen konfigurierten Informationen als relevant extrahieren können. Auf jedem vernünftigen System wird jede Benutzerauthentifizierung protokolliert.

Um jeden Befehlsaufruf (aber nicht deren Argumente) zu protokollieren, verwenden Sie die Prozessabrechnung , die vom acctPaket Installieren Sie acct unter Ubuntu bereitgestellt wird . Wenn das Abrechnungssubsystem aktiv ist, lastcommwerden Informationen zu abgeschlossenen Prozessen angezeigt.

Gilles 'SO - hör auf böse zu sein'
quelle
3
/var/log/secure.log ist eine weitere übliche Protokolldatei
Adrian Cornish
9

Sie können auch whooder verwenden, um wzu sehen, wer gerade am System angemeldet ist, einschließlich der SSH-Benutzer.

Tim
quelle
10
lastkönnte eine bessere Option für das sein, wonach die OP suchte ...
jasonwryan
1
tatsächlich. "last" ist der gewünschte Befehl.
Sirex
1
Dies ist eine VIEL bessere Antwort als die ausgewählte.
PaulBGD
0

Wenn sich jemand bei einem Benutzersystem anmeldet, wird dieses normalerweise in / var / log / messages wie folgt gedruckt:

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

Greifen Sie einfach zu den Nachrichten wie folgt:

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

Sie können auch die Bash-Shell ändern, um ein rsylog auszuführen.

Tatsächlich richten Sie rsyslog auf einem Remote-Host ein, um bestimmte Verbindungen zu akzeptieren. Ändern Sie dann die Host-Shell, auf der Sie überwachen möchten, indem Sie Ihre Version kompilieren, bei der Folgendes aktiviert ist:

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

Sobald dies aktiviert ist, können Sie bash durch diese Version ersetzen ODER Benutzer bei dieser Version anmelden, indem Sie ihre Anmeldungen darauf umleiten.

Für mehr Information:

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

mcdoomington
quelle
Fein. Ich werde es aktualisieren.
McDoomington