Ich habe mich gerade cat /var/log/auth.log
angemeldet und festgestellt, dass es viele | grep "Failed password for"
Datensätze gibt.
Es gibt jedoch zwei mögliche Datensatztypen - für einen gültigen / ungültigen Benutzer. Es erschwert meine Versuche, | cut
sie.
Ich würde gerne eine Liste (Textdatei) mit den IP-Adressen möglicher Angreifer und der Anzahl der Versuche für jede IP-Adresse erstellen. Gibt es eine einfache Möglichkeit, es zu erstellen?
Außerdem nur in Bezug auf ssh
: Was für Aufzeichnungen /var/log/auth.log
sollte ich berücksichtigen, wenn ich eine Liste möglicher Angreifer erstelle?
Beispiel für mein 'auth.log' mit versteckten Zahlen:
cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail
Ergebnis:
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user vijay from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user webalizer from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user xapolicymgr from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user yarn from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zookeeper from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zt from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for mysql from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.111.111.1 port 11111 ssh1
/etc/ssh/sshd_config
... Einstellungen für die SuchePasswordAuthentication no
undPermitRootLogin without-password
... dann werden alle derartigen Passwortversuche vereitelt, bevor Sie jemals in die Datei auth.log eintreten ...Antworten:
Sie könnten so etwas verwenden:
Es greift nach dem String
Failed password for
und extrahiert (-o
) die IP-Adresse. Es ist sortiert unduniq
zählt die Anzahl der Vorkommen.Die Ausgabe würde dann so aussehen (mit Ihrem Beispiel als Eingabedatei):
Der letzte in der Ausgabe hat es 6 Mal versucht.
quelle
| sort -n
die Kette hinzugefügt .sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'
ersetzt beide greps.zgrep "Failed" /var/log/auth.log*
, auch die komprimierten Logarchive zu durchsuchen, wassed
nicht geht.Es könnte eine aufgeblähte Lösung sein, aber ich schlage vor, Sie versuchen etwas wie Fail2Ban zu installieren
Diese Art der Protokollierung bietet den Vorteil, dass Sie (temporäre) Regeln in Ihre Firewall einfügen können, um sich wiederholende Täter zu blockieren. Stellen Sie jedoch sicher, dass Sie Ihre eigenen IP-Adressen auf die Whitelist setzen. Ich habe es nur gelegentlich geschafft, mich vorübergehend auszuschließen
quelle
Das hat für mich sehr gut geklappt. (IPs wurden geändert, um die Schuldigen zu schützen)
quelle
quelle
password
- funktioniert nicht. Es werden nicht einmal verschiedene Eintragsarten behandelt, dieawk
Druckspalte ist eine Alternative zurcut
, nicht die Lösung.uniq -c
wie in der besten Antwort.