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.
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
- Von oben ist mein Servername Hai .
- Viele solcher Zeilen befinden sich in audit.log. Ich möchte, dass diese auf exe = "/ usr / sbin / sshd" basiert.
- Die UID des Kontos, in das ssh'd wird, ist der Wert von auid, der in diesem Beispiel 23456 beträgt
- Der Name des mit auid verknüpften Benutzerkontos wird durch acct = "ron" angegeben.
- In den meisten Fällen zeichnet das Prüfsystem den DNS-Hostnamen des Systems auf, das versucht, eine Verbindung herzustellen, aber es hat immer seine IP-Adresse
- das Datum des Eintrags, der in Epoche Zeit, so dass Sie etwas , das über umwandeln müssen werden wie
date --date @1480622612.317
die in Ergebnisse Thu 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
und auid=0
und acct=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.