
Ich möchte ein Skript erstellen, möglicherweise in Python, bin für Vorschläge offen, es protokolliert jeden auf dem Server eingegebenen Befehl. Es würde also Benutzer, Zeitstempel und Befehl protokollieren.
Ist das möglich?
Antwort1
1 - Es könnte verschiedene Ansätze geben, um dies in Python zu erreichen. DiesArtikeloder diesesArtikelkann Ihnen helfen, alle Befehle zu protokollieren, und Sie können sie dann mit Python analysieren.
2 - Sie können auch überprüfenGrsicherheitum die Exec-Protokollierung auf Kernelebene zu konfigurieren.
3 – Dann können Sie so etwas tun (einfacher Analysecode):
''A very simple log parser for ssh connections to display IP address and their User name'''
SSH_LOG_FILE_NAME = '/var/log/secure'
for line in open(SSH_LOG_FILE_NAME):
if "sshd" in line:
if "Accepted" in line:
print "Connection is accepted from "
print "User: ", line.split()[8], "IP: ", line.split()[10]
if "session closed" in line:
print "Connection is closed from "
print "User: ", line.split()[10]
PS: Ich denke, der zweite Teil ist leichter zu befolgen und zeigt, wie man es mit sed analysiert, was Sie auch problemlos in Python tun können, wenn Sie alle Befehle protokollieren können.
Antwort2
Bitte überprüfen Sie ~/.bash_history. Diese Protokollierung kann einfach deaktiviert werden.