Wie logge ich den SSH-Port weiter?


8

Angenommen, ich habe einen SSH-Server mit aktivierter Portweiterleitung. Für einen Benutzer ist es ziemlich einfach, eine SSH-Verbindung einzurichten und BitTorrent-Verkehr oder anderen illegalen oder missbräuchlichen Verkehr darüber weiterzuleiten. Wie kann ich die Protokollierung einrichten, um aufzuzeichnen, welche Portweiterleitungen Benutzer vornehmen?


Für ein angemessenes Sicherheitsniveau müssen Sie sicherstellen, dass in allen anderen Programmen auf Ihrem System, die zum Weiterleiten des Datenverkehrs verwendet werden können, dieselbe Protokollierungsstufe verfügbar ist - einschließlich der Programme, die Benutzer selbst schreiben / kompilieren.
Alex Holst

2
Wenn Sie jemandem nicht vertrauen, ist es mit ziemlicher Sicherheit besser, ihm einfach keinen Zugriff auf Ihr Netzwerk zu gewähren.
Zoredache

@Zoredache Die Antwort lautet also, niemandem Zugriff auf Ihr Netzwerk zu gewähren?
Rox0r

Antworten:



2

Ich stelle hier eine Frage: Wie kann ein SSH-Hostprozess erkennen, welche Ports vom Client weitergeleitet wurden (-R nicht -L) , um einen eleganteren Weg zu finden, um dasselbe zu tun.

Da es jedoch nicht so aussieht, als gäbe es einen besseren Weg, mache ich es mit lsof:

sudo lsof -aPni@127.0.0.1 -Fn -p99999 | grep "^n" | grep -v '\->' | awk -F: '{print $NF}' | sort | uniq

99999 ist die PID der sshdBehandlung der Verbindung, an der Sie interessiert sind.

Es gibt verschiedene Möglichkeiten, dieses Snippet zu verwenden. Entweder haben Sie einen lang laufenden Prozess, der nach neuen Instanzen von sucht und diese sshddann mit dem obigen Befehl überprüft, oder Sie stellen allen .ssh/authorized_keysEinträgen einen benutzerdefinierten Befehl voran, execder dies tut, protokolliert ihn irgendwo und dann den ursprünglich vorgesehenen Befehl ( SSH_ORIGINAL_COMMANDoder in den meisten Fällen die Anmeldeshell) Fälle).


0

Sie könnten versuchen, Wireshark . Ich bin mir ehrlich gesagt nicht sicher, ob es genau das tut, was Sie wollen, aber es kann sicherlich bestimmen, was Benutzer im Netzwerk tun. Spiceworks ist eine weitere kostenlose Option


0

netstat, psUnd einige clevere Cuting & greping. Netstat kann Ihnen die Programm-IDs geben und ps kann Ihnen den Benutzer geben.

user@myhome:~$ ssh user@some.server -R 12345:other.server:22

Inzwischen auf der anderen Seite der Konsole

root@some.server# netstat -plnt | grep 12345
tcp        0      0 127.0.0.1:12345         0.0.0.0:*               LISTEN     12998/15            
tcp6       0      0 ::1:12345               :::*                    LISTEN     12998/15 
                                                                                 ^ PID!

Natürlich kennen Sie den in grep angegebenen Port nicht. Grep ist hier, um meine Ausgabe einzuschränken

und

ps -aux | grep 12998 # the PID
user   12998  0.0  0.1   6624  1920 ?        S    07:57   0:00 sshd: user@pts/15

et voila! Sie wissen, dass Benutzer "Benutzer" Port 12345 mit sshd umleitet

Skript & Cron etwas mit diesem

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.