SSH-erweiterte Protokollierung

3640
Radek Simko

Ich habe OpenSUSE auf meinem Server installiert und möchte, dass ssh jeden Befehl protokolliert, der über das System an das System gesendet wird.

Ich habe dies in meiner sshd_config gefunden:

# Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH #LogLevel INFO 

Ich schätze, dass diese beiden Anweisungen unkommentiert sein müssen, aber ich möchte jeden Befehl protokollieren, nicht nur die Autorisierung (Anmelden / Abmelden über SSH). Ich möchte nur wissen, ob jemand in mein System einbricht, was er getan hat.

4

4 Antworten auf die Frage

1
BloodPhilia

history does this automatically, login as the user that was logged into through ssh and execute:

history 

It shows the history of commands executed by that specific user.

history > command.log 

will save the history to the file "command.log"

More about history: http://en.wikipedia.org/wiki/History_%28Unix%29 and http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?history

Command line history should also be stored in .bash_history (file in the user's home directory) when using bash (properly).

Kann dieser (der Bericht vom "history" -Befehl) von einem möglichen Angreifer gelöscht werden? Radek Simko vor 13 Jahren 0
Es könnte, aber jedes andere Protokoll könnte auch gelöscht werden ... BloodPhilia vor 13 Jahren 1
Es gibt einige Quellcode-Ergänzungen zu SSHD, die alle SSH-Ein- und -Ausgaben protokollieren. Diese Dateien werden von root geschrieben und werden häufig an syslog gesendet. Der Benutzer kann diese Protokolldateien nicht löschen. Mir ist jedoch kein öffentlich verfügbarer Code bekannt, und OpenSSH ist ein von BSD lizenziertes Produkt, sodass keine Notwendigkeit besteht, Änderungen im Code umzuverteilen. Stefan Lasiewski vor 13 Jahren 0
Bash-Historie wird nicht in SSH-Befehlen verwendet, die keine Bash-Shell starten. user3338098 vor 8 Jahren 0
0
Josh K

Your best bet would be to install Fail2Ban and ignore the SSH logging. Preventing the breaking in is worth much more then seeing what an attacker might have done. Especially when you assume if he breaks in he could remove the logfile.

0
Janne Pikkarainen

Wenn jemand in Ihr System eindringen kann, ist er wahrscheinlich intelligent genug, um die Verlaufsdatei zu löschen und die Protokolle zu manipulieren. Um es für den Bösen schwerer zu machen:

  • Sehen Sie sich die Überwachungsfunktionen von SELinux / GRsecurity und Linux an
  • Richten Sie einen zentralen Protokollierungsserver ein, und richten Sie Ihren syslog-daemon (ich ziehe syslog-ng vor) alle Ihre Protokolldateien dort weiter. Stellen Sie sicher, dass sich Ihr Protokollierungsserver hinter einer engen Firewall befindet und nur der Protokollierungsport für eingehende Verbindungen geöffnet ist (wenn Sie versuchen, eine Verbindung von einem anderen Server herzustellen).
  • Erwägen Sie, rootsh oder ein Äquivalent davon zu verwenden.
0
lesmana

Sie sagten, Sie wollten jeden "Befehl" protokollieren. Ich nehme an, Sie meinen jeden Befehl, der in der Shell des Benutzers eingegeben wurde (sei es ein legitimer Benutzer oder nicht). In den folgenden Links gibt es viele Tools, die dies mehr oder weniger sicher tun können:

Hinweis: Wie @ Janne-Pikkarainen sagte, wenn Sie wirklich sichere Protokolle erstellen möchten, sollten Sie Ihre Protokolldateien an einen anderen Computer senden.