Überwachung aktiver Benutzer und Logins: Befehle who
, w
, last
1. Warum ist die Überwachung von Benutzern wichtig?
Linux, wie auch jeder andere Server (oder sogar diese böse Kiste mit Webseiten), ermöglicht es mehreren Benutzern gleichzeitig zu arbeiten. Aber was, wenn dein Server gehackt wurde? Oder ein Kollege-Bösewicht beschließt mitten in der Nacht "zufällig" wichtige Dateien zu löschen? Die Überwachung von Benutzeraktivitäten hilft uns zu verstehen, wer wann und von wo auf das System zugegriffen hat und welche Prozesse sie ausgeführt haben. Es ist wie eine Überwachungskamera, nur für deinen Server.
Wichtige Überwachungstools
Um die Aktivität der Benutzer auf einem Server zu bewerten, stehen in Linux drei Hauptbefehle zur Verfügung:
who
— zeigt die aktuellen Benutzer an, die im System aktiv sind.w
— gibt etwas mehr Infos: was die Benutzer gerade machen und die Systemauslastung.last
— zeigt die Anmeldehistorie im System an.
Jeder dieser Befehle hat seine eigenen Feinheiten und ist in unterschiedlichen Szenarien anwendbar. Lass uns diese an Beispielen durchgehen.
2. Befehl who
Der Befehl who
zeigt eine Liste von Benutzern, die aktuell im System angemeldet sind. Das ist wie ein „Gästebuch“, in dem du nachschauen kannst, wer gerade auf dem Server ist.
who
Beispielausgabe des Befehls:
user1 pts/0 2023-10-20 09:10 (192.168.1.100)
root pts/1 2023-10-20 09:15 (192.168.1.101)
Was wir hier sehen:
- Benutzername
user1
,root
. - Terminal, über das sie verbunden sind
pts/0
,pts/1
. - Anmeldezeit
2023-10-20 09:10
. - Von wo aus die Verbindung kommt
192.168.1.100
.
Optionen für who
:
who -a
: Zeigt auch Systeminformationen wie Boot-Zeit, laufende Prozesse und Benutzer.who am i
: Zeigt nur Informationen über den Benutzer, der den Befehl ausgeführt hat.
3. Befehl w
Wenn who
einfach nur registriert, wer sich eingeloggt hat, gibt w
mehr Infos – es zeigt, was der Nutzer gerade macht. Das ist praktisch, um zu verstehen, ob er etwas Nützliches macht oder etwas, das gestoppt werden sollte.
w
Beispielausgabe:
10:20:42 up 1 day, 5:12, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 09:10 1:00 0.01s 0.01s nano app.py
root pts/1 192.168.1.101 09:15 2:00 0.02s 0.02s htop
Was passiert hier:
- Die obere Zeile gibt Systeminfos aus: aktuelle Uhrzeit, Server-Uptime, Anzahl der Nutzer und Systemlast
load average
. - Die Tabelle zeigt:
- Den Nutzernamen
user1
,root
. - Das Terminal, durch das der Nutzer verbunden ist
pts/0
,pts/1
. - Die IP-Adresse des Nutzers
192.168.1.100
. - Die Login-Zeit
09:10
. - Die Leerlaufzeit
IDLE
. - Aktuelle Aktivität des Nutzers
WHAT
, z. B. das Bearbeiten der Dateiapp.py
mitnano
.
- Den Nutzernamen
Optionen für w
:
w -h
: Entfernt die Tabellenüberschriften.w username
: Zeigt Infos nur über einen bestimmten Nutzer an.
4. Der Befehl last
Wenn who
und w
die Gegenwart betrachten, erlaubt last
, einen Blick in die Vergangenheit zu werfen. Es zeigt eine Historie aller Logins im System. Dieser Befehl liest die Datei /var/log/wtmp
, wo alle Nutzer-Logins gespeichert werden.
last
Beispielausgabe:
user1 pts/0 192.168.1.100 Fri Oct 20 09:10 - 09:30 (00:20)
root pts/1 192.168.1.101 Fri Oct 20 09:15 - down (00:15)
Was sehen wir hier:
- Nutzername
user1
,root
. - Terminal
pts/0
,pts/1
. - IP-Adresse oder Hostname
192.168.1.100
,192.168.1.101
. - Login-Zeit
Fri Oct 20 09:10
. - Logout-Zeit
09:30
und gesamte Sitzungsdauer00:20
.
Parameter für last
:
last -n 10
: Zeigt nur die letzten 10 Einträge.last username
: Login-Historie für einen bestimmten Nutzer.last reboot
: Zeigt, wann der Server zuletzt gestartet wurde.
5. Praktisches Beispiel: Analyse der Benutzeraktivität
Stell dir vor, du willst herausfinden, wer nachts auf dem Server gearbeitet hat, um sicherzustellen, ob nichts Verdächtiges passiert ist. Fangen wir mit der Anzeige der aktuellen Benutzer an:
who
Schauen wir uns jetzt an, was diese Benutzer gerade tun:
w
Falls du etwas Ungewöhnliches entdeckst (z. B. einen unbekannten Prozess), solltest du überprüfen, wer sich nachts eingeloggt hat. Dafür benutzen wir:
last
Wir schauen die Einträge für einen spezifischen Benutzer an, der deine Aufmerksamkeit erregt hat:
last user1
Falls du eine Anomalie bemerkst, zum Beispiel einen Login von einer unbekannten IP, solltest du Maßnahmen ergreifen: den Zugang einschränken, Zwei-Faktor-Authentifizierung aktivieren oder den Benutzer sperren.
6. Besonderheiten und typische Fehler
Beim Arbeiten mit Monitoring-Befehlen ist es wichtig, Folgendes zu beachten:
Logdatei kann gelöscht werden. Wenn jemand absichtlich die Einträge in
/var/log/wtmp
löscht, zeigt der Befehllast
nichts an. Das ist einer der Gründe, warum es wichtig ist, regelmäßig Backups der Logdateien zu erstellen oder sie auf einen entfernten Server zu senden.Erleichterung des Verständnisses der Ausgabe. Manchmal kann die Ausgabe der Befehle überladen sein (z. B. wenn viele Benutzer aktiv sind). Verwende Filter wie
grep
, um die benötigten Informationen zu finden:last | grep user1
Abhängigkeit von den Systemeinstellungen. Manche Systeme führen keine Login-Protokolle, wenn dies aufgrund der Konfiguration deaktiviert wurde. Stelle sicher, dass
/var/log/wtmp
regelmäßig aktualisiert wird.
Wie wendet man dieses Wissen in der Praxis an?
- Serveradministration. Zum Beispiel bist du der Administrator eines Unternehmens und musst die Systemsicherheit überwachen, damit niemand versehentlich oder absichtlich „alles kaputt macht“.
- Bedrohungserkennung. Monitoring-Tools helfen dir dabei, Versuche eines unbefugten Zugriffs zu erkennen.
- Systemaudit. Beim Überprüfen von Servern auf die Einhaltung von Sicherheitsstandards werden diese Befehle häufig verwendet, um die Benutzeraktivitäten zu analysieren.
- Diagnose. Du bemerkst, dass der Server langsam geworden ist? Schau nach, wer und was dort gerade macht!
Jetzt bist du bereit, dein System wie ein Profi zu überwachen! Denk dran: Der Schutz deines Systems fängt mit dem Verständnis an, was unter der Haube vor sich geht.
GO TO FULL VERSION