Ich habe einen Ubuntu-Server mit openssh konfiguriert, um eine Verbindung zu ihm herzustellen und Befehle von einem entfernten System wie einem Telefon oder einem Laptop auszuführen. Das Problem ist ... ich bin wahrscheinlich nicht der einzige.
Gibt es eine Möglichkeit, alle Anmeldeversuche zu ermitteln, die auf dem Server durchgeführt wurden?
Antworten:
Auf Ubuntu-Servern finden Sie in der Datei, wer sich wann (und von wo) angemeldet hat
/var/log/auth.log
. Dort finden Sie Einträge wie:quelle
lastb
Befehl ?/var/log/auth.log
Auf Red Hat-basierten Distributionen wie Fedora / CentOS / RHEL können Sie überprüfen, ob Benutzer in der Datei angemeldet sind
/var/log/secure
.Wenn Sie weitere Informationen benötigen, lesen Sie die SuperUser-Fragen und Antworten mit dem Titel: Wie kann ich SSH-Zugriffsversuche protokollieren und verfolgen, was SSH-Benutzer auf meinem Server tun? .
quelle
/var/log/secure
keinem meiner Ubuntu-Systeme gibt es eine./var/log/auth
in meinen Systemen. Aus diesem Grund habe ich vor dem Posten der Antwort überprüft, ob sich/var/log/secure
auf meinem System ein Ubuntu-Server befindet :)/var/log/secure
./var/log/secure
ist ein Fedora / CentOS / RHEL ism.Unter Ubuntu können Sie sich über SSH anmelden und den Linux-Befehl tail verwenden, um die letzten x Zeilen Ihrer
/var/log/auth.log
Datei anzuzeigen . Wenn Sie über SSH angemeldet sind, verwenden Sie den folgenden Befehl, um die letzten 100 Zeilen Ihres SSH-Protokolls anzuzeigen:oder noch sauberer
quelle
Beachten Sie, dass die Standardkonfiguration unter Ubuntu darin besteht, SSH-Anmeldungen NICHT in der
/var/log/auth
Datei zu protokollieren . Dies ist dieINFO
Protokollierungsstufe.Wenn Sie haben wollen , es Login - Versuche in der Protokolldatei enthalten, werden Sie müssen die bearbeitende
/etc/ssh/sshd_config
Datei (als root oder mit sudo) und der ÄnderungLogLevel
vonINFO
zuVERBOSE
.Starten Sie danach den sshd-Daemon mit neu
Danach werden die SSH-Anmeldeversuche in der
/var/log/auth.log
Datei protokolliert .quelle
Meine Empfehlung ist die Verwendung von auditd . Dies ist die Protokollierung mit dem Audit-Subsystem des Linux-Kernels und meiner Meinung nach der richtige Weg, dies zu tun, wenn Sie es ernst meinen. Und angesichts der Art der Sicherheitsfrage sollten Sie auch PAM verwenden . Bei der Standardstufe, bei der nur auditd und PAM installiert sind, sollten automatisch alle erfolgreichen und erfolglosen SSH-Versuche in Ihrer audit.log-Datei protokolliert werden. Sie müssen also wirklich nichts konfigurieren, sondern müssen nur auditd und PAM installieren. Ich kenne das aus erster Hand für SLES. Und würde wetten, RHEL und jede andere Enterprise- Version von Linux würden ähnlich funktionieren.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
Innerhalb des von auditd generierten unformatierten Überwachungsprotokolls können Sie entweder eine Art
aureport
Filter verwenden, die in den auditd- Manpages beschrieben ist, einen eigenen Textparser schreiben oder einfach VI verwenden und nach Stichwörtern suchen.hier ist eine
/var/log/audit/audit.log
ausnahme meiner datei mit der ich auf meinen linux server ssh'ing.date --date @1480622612.317
die in ErgebnisseThu Dec 1 15:03:32 EST 2016
und ist , wenn ich in meinen Server ssh'd.Wann
res=failed
möchten Sie diese IP-Adressen und Hostnamen untersuchen, um festzustellen, welche Systeme versucht haben, unter welchem Benutzernamen eine Verbindung herzustellen? Und offensichtlich versucht der erfolgreiche SSH zu verstehen, was auf Ihrem System passiert - zum Beispiel Ihr Kollege Bob, der jeden Tag mit Hostname = Bobcomputer und IP-Adresse = 192.168.5.5 am selben Schreibtisch sitzt; Wenn Sie gestern um 2 Uhr einen erfolgreichen SSH-Versuch unter seinem Benutzernamen von der IP-Adresse 10.10.5.6 sehen, ist es möglicherweise in Ihrem Interesse, mit Bob zu sprechen, um dies zu untersuchen. Möglicher Hackversuch von jemand anderem? Und kurz danach gibt es su Versuche, sich im Audit-Log von Bob's Account aus zu verankern?wenn Sie sehen , sich wiederholende
res=failed
undauid=0
undacct=root
dann ist das jemand ssh in die Box in den Root - Account versuchen, und ist , wenn Sie ändern/etc/hosts.deny
mit dieser IP - Adresse für SSHD.quelle
Ich weiß, dass dies alt ist, aber ich habe etwas geschrieben, um erfolgreiche und fehlgeschlagene SSH-Verbindungen / Versuche zu überwachen. Sowie gesperrte IPs, wenn Sie sshguard verwenden. Die Software ist in Python geschrieben. Sie erhalten eine E-Mail, wenn eine Verbindung über ssh erfolgreich hergestellt wurde, wenn jemand ein falsches ssh-Passwort hat oder wenn jemand aufgrund vieler fehlgeschlagener Versuche gesperrt wurde. Hoffentlich hilft dies jemandem in der Zukunft, der nach diesem Problem sucht und meinen Code findet!
Für das Python-Skript habe ich ein Bash-Skript geschrieben, um den Prozess zu überwachen. Es prüft, ob es jede Minute über eine Root-Cron-Task ausgeführt wird. Wenn es nicht läuft, startet es einen anderen Prozess. Was jede Minute von einem Root- Cron-Task aufgerufen wird .
quelle
Das Beste, was ich je bei der Protokollierung von SSH-Befehlen gesehen habe, ist rootsh. Mit diesem Tool kann der Administrator jeden Befehl aus jeder Sitzung mit einer umfassenden Protokollierungsstufe abrufen.
Ich habe ein Skript geschrieben, um ROOTSH in Ubuntu und CentOS / RHEL zu installieren und zu konfigurieren
Download von Github hier ist der Link
quelle