Aktive SSH-Verbindungen unter Linux finden

Wenn Sie als Linux-Systemadministrator Server verwalten, müssen Sie oft wissen, wie viele SSH-Verbindungen aktuell aktiv sind und von welchen Hosts sie stammen. Es gibt mehrere eingebaute Befehle und Werkzeuge, mit denen Sie aktive SSH-Verbindungen anzeigen und kurz analysieren können.
In diesem Leitfaden zeigen wir verschiedene Methoden, typische Ausgaben, wann eine Methode versagt und welche zusätzlichen Sicherheits- und Monitoring-Schritte sinnvoll sind.
Voraussetzungen
- Ein Server mit einem Linux-Betriebssystem.
- Root- oder sudo-Zugriff auf dem Server.
Kurzer Überblick über die Werkzeuge
- who: Liste eingeloggter Nutzer.
- w: Erweiterte Informationen zu eingeloggten Nutzern und ihren Prozessen.
- ps: Prozesse anzeigen, liefert PIDs der sshd-Subprozesse.
- netstat / ss: Netzwerkverbindungen und Status (ESTABLISHED).
- last: Historie und aktuell eingeloggte Nutzer aus /var/log/wtmp.
- Ergänzend: /var/log/auth.log oder journalctl zur Prüfung von Authentifizierungen.
who
who zeigt an, welche Benutzer aktuell eingeloggt sind.
Öffnen Sie das Terminal und führen Sie aus:
who
Beispielausgabe:
root pts/0 2020-05-01 02:37 (27.61.161.61)
root pts/1 2020-05-01 02:39 (45.58.38.21)
Erklärung: Die Spalte in Klammern enthält die Quell-IP-Adresse der SSH-Verbindung.
w
w liefert zusätzliche Details wie Idle-Zeiten, laufende Prozesse und System-Load.
w
Beispielausgabe:
02:40:07 up 1 day, 18:35, 2 users, load average: 0.02, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 27.61.161.61 02:37 1.00s 0.04s 0.01s ssh [email protected]
root pts/1 45.58.38.21 02:39 1.00s 0.02s 0.00s w
Nutzen: Erkennen, welche Prozesse in der Session laufen (WHAT) und wie lange die Session inaktiv ist (IDLE).
ps
ps zeigt die sshd-Prozesse und deren PIDs — nützlich, wenn Sie eine bestimmte Session anhand der PID terminiert wollen.
ps auxwww | grep sshd: | grep -v grep
Beispielausgabe:
root 609 0.0 0.1 12160 7268 ? Ss Apr29 0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 35532 0.0 0.2 13864 8796 ? Ss 02:37 0:00 sshd: root@pts/0
root 35669 0.0 0.2 13860 8916 ? Ss 02:38 0:00 sshd: root@pts/1
Hinweis: Die PIDs (z. B. 35532) sind praktisch zum gezielten Beenden oder für weitere forensische Prüfungen.
netstat
netstat zeigt offene Netzwerkverbindungen. Filtern Sie nach ESTABLISHED und sshd.
netstat -tnpa | grep 'ESTABLISHED.*sshd'
Beispielausgabe:
tcp 0 88 45.58.38.21:22 27.61.161.61:8363 ESTABLISHED 35532/sshd: root@pt
tcp 0 0 45.58.38.21:22 45.58.38.21:51166 ESTABLISHED 35669/sshd: root@pt
Erläuterung: Lokale Adresse:Port links, entfernte Adresse:Port rechts. Praktisch, um aktive Netzwerkendpunkte zu sehen.
last
last liest /var/log/wtmp und zeigt eingeloggte und abgemeldete Sessions, inklusive derjenigen, die noch aktiv sind.
last -a | grep -i still
Beispielausgabe:
root pts/1 Fri May 1 02:39 still logged in 45.58.38.21
root pts/0 Fri May 1 02:37 still logged in 27.61.161.61
reboot system boot Wed Apr 29 08:04 still running 5.4.0-26-generic
Nutzen: Historie + aktuell eingeloggte Sitzungen.
ss
ss ist ein modernes Gegenstück zu netstat und oft schneller; verwenden Sie grep, um SSH-Verbindungen zu filtern.
ss | grep -i ssh
Beispielausgabe:
tcp ESTAB 0 0 45.58.38.21:51166 45.58.38.21:ssh
tcp ESTAB 0 56 45.58.38.21:ssh 27.61.161.61:8363
tcp ESTAB 0 0 45.58.38.21:ssh 45.58.38.21:51166
ss liefert detaillierte Socket-Informationen und ist in vielen Distributionen Standard.
Alternative Ansätze
- /var/log/auth.log oder journalctl -u sshd: Prüfen Sie Authentifizierungsereignisse, fehlgeschlagene Logins und Zeitstempel.
- lsof -i :22: Listet Prozesse, die Port 22 verwenden.
- auditd: Für detailliertes Audit-Logging von Logins und Befehlen.
- Centerized Monitoring: Prometheus + node_exporter, zusammen mit Benachrichtigungen für ungewöhnlich viele Verbindungen.
Wann die Methoden versagen
- Wenn SSH über Non-Standard-Ports läuft, filtern Sie entsprechend (z. B. :2222 statt :22).
- Bei NAT oder Load-Balancer sehen Sie eventuell nur die IP des Load-Balancers; prüfen Sie X-Forwarded-For im Proxy oder die Proxylogs.
- Wenn Auth-Logs rotiert oder gelöscht sind, fehlen historische Daten.
- Containerisierte Dienste: ps/ss/netstat laufen innerhalb des Containers und zeigen nur containerinterne Verbindungen.
Wichtig: Verlassen Sie sich nicht nur auf eine einzelne Methode. Kombinieren Sie Prozess-, Socket- und Log-Informationen für genaue Analysen.
Sicherheits- und Betriebsmaßnahmen
- Beschränken Sie root-Login (PermitRootLogin no) und nutzen Sie Key-Authentifizierung.
- Setzen Sie Fail2ban oder ähnliche Tools ein, um Brute-Force-Angriffe zu blockieren.
- Protokollieren und zentralisieren Sie Authentifizierungsereignisse (SIEM, syslog-Server).
- Richten Sie Alerts ein, z. B. bei ungewöhnlich vielen Verbindungen von einer IP.
Rollenspezifische Checkliste
Für Systemadministratoren:
- who/w prüfen, um aktuelle Sessions zu sehen.
- ps verwenden, um verdächtige PIDs zu identifizieren.
- Bei Bedarf eine Session sauber beenden (kill PID) und untersuchen.
Für Sicherheitsteams:
- Auth-Logs auf Fehlversuche und ungewöhnliche IPs prüfen.
- Fail2ban-Status und Blocklisten kontrollieren.
- Historische Auswertung mit last und zentralisiertem Logging durchführen.
Kriterien für Prüfung
- Können Sie alle aktuell aktiven SSH-Sessions mit IP-Adresse und Login-Zeit auflisten? (who, w oder last)
- Haben Sie die zugehörigen PIDs identifiziert? (ps)
- Können Sie aktive TCP-Verbindungen zu Port 22/SSH nachverfolgen? (ss/netstat)
- Liegt eine zentrale Protokollierung vor, die längere Historie erlaubt?
Kurzes Glossar
- SSH: Secure Shell, verschlüsselter Fernzugriff.
- PID: Prozess-ID.
- ESTABLISHED: Zustand einer vollständig aufgebauten TCP-Verbindung.
- wtmp: Binäre Datei mit Login/Logout-Ereignissen (/var/log/wtmp).
Testfälle und Akzeptanzkriterien
- Test: Öffnen Sie eine SSH-Verbindung von einem Client. Erwartet: who, w und ss/netstat zeigen die Verbindung innerhalb von Sekunden.
- Test: Beenden Sie die Session sauber. Erwartet: last zeigt keine “still logged in”-Einträge mehr für diese Session.
- Test: Simulierter Brute-Force. Erwartet: Fail2ban (wenn konfiguriert) blockiert die IP nach konfigurierter Schwelle.
Fazit
Mit who, w, ps, netstat, ss und last haben Sie robuste, sofort verfügbare Werkzeuge, um aktive SSH-Verbindungen zu identifizieren und zu analysieren. Ergänzen Sie diese Abfragen durch Log-Analysen und automatisierte Sicherheitsmaßnahmen, um Monitoring und Incident-Response sicherzustellen.
Zusammenfassung und Handlungsempfehlung:
- Kombinieren Sie mehrere Tools für Zuverlässigkeit.
- Protokollieren Sie zentral und richten Sie Alerts ein.
- Einschränken des root-Zugangs und harte Authentifizierungsrichtlinien erhöhen die Sicherheit.
Ähnliche Materialien

Netflix herunterladen: Filme & Serien offline
RAID1 auf CentOS 5.3 vorbereiten und GRUB anpassen

YouTube-Dislikes anzeigen: Browser & Android

RSS filtern mit Feed Rinse

Smartphones hacken japanische Autos — Experiment
