In wenigen Worten
Verwenden Sie die Protokolle von ssh auf beiden Maschinen: Sie erhalten die PID der erzeugten Shell. Dies sollte es Ihnen ermöglichen, die PID der Shell mit der Ausführung des Programms zu verbinden und eine bestimmte Übereinstimmung mit dem tty herzustellen. Für ein tieferes Audit können Sie ein Audit-Tool verwenden.
In mehr Worten
last
Mit dem einfachen last
Sie können die Liste der Verbindungen anzeigen, die sich auf das verwendete tty beziehen.
Sie können zwei Listen von Ihrem Proxy Maschine (ich möchte es Gateway, GW nennen) und die andere von Ihrem Server .
Der Befehl last
Standardmäßig geben Sie Ihren Benutzernamen, pts / tty, IP / Hostname an. Anmeldung Terminzeit, Ausloggen Terminzeit. Sie können das Format usw. ändern.
Dann müssen Sie an den Überlagerungen der Periode arbeiten und raten, wer war.
Das Problem, das ich sehe, ist, dass Sie auf diese Weise ein Werkzeug (Skript) erstellen müssen, das Ihnen alle möglichen Übereinstimmungen bietet, und sie bereinigen, während Sie gute Übereinstimmungen finden. Trotzdem können Sie seltsame Situationen haben.
Lassen Sie uns eine Fallstudie durchführen. Ein erster Benutzer, sagen wir Nicolas, kann sich beim GW anmelden. Dann geht er einen Kaffee trinken oder beantwortet einen Anruf. Inzwischen einen zweiten Benutzer, sagen wir Hastur, loggen Sie sich in das GW ein und schneller als der 1 st Benutzerprotokolle beim Server. Gerade in diesem Moment ist Ihr Doppelprotokoll kompliziert. Jetzt hat Hastur das Bedürfnis nach einem Kaffee und Nicolas meldet sich beim Server an. Wer wird der erste sein, der den Kaffee zu Ende bringt und sich zuerst mit dem Programm verbindet?
/var/log/auth
(oder andere Protokolldatei von ssh) [ 1 ] ..
Es gibt Protokolldateien, die zur Überwachung der Anmeldung und Abmeldung auf jedem System verwendet werden. Suchen Sie nach dem richtigen Pfad und Namen, je nach System. Mit
sudo grep TheUsername /var/log/auth.log
Sie erhalten ähnliche Zeilen wie
May 1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May 1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
wo Sie die richtige Login-Zeit haben, und sogar die PID ( [9024]
) und die IP.
Dieses Mal können Sie die Daten dieser Datei mit den von übereinstimmen last
Befehl, um das tty zu kennen, oder Sie können die PID der Shell, die das Programm selbst aufgerufen hat, irgendwie im Programm protokolliert haben (es ist möglich, einen Systemaufruf der Shell auszuführen).
Wenn Sie an diesen Dateien arbeiten, können Sie für jede Sitzung eine eindeutige Übereinstimmung finden. Für die analoge Protokolldatei auf dem Gateway haben Sie die ursprüngliche IP-Adresse und den Benutzernamen.
audit tools
[ 2 ], [ 3 ]
Wenn Sie die Berechtigung dazu haben und dies legal ist, können Sie ein Überwachungstool verwenden und ein vollständiges Protokoll der Shell auf dem Host-Computer erstellen.
Verweise
- [ 1 ] Protokollierung von SSH-Zugriffsversuchen
- [ 2 ] shell / ssh / tty Session Logger
- [ 3 ] Protokollierung der BASH-Shell-Sitzung auf dem Remote-Host