Wenn ich diesen Befehl ausführe, erhalte fail2ban-client status sshd
ich Folgendes:
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 81
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 2
|- Total banned: 8
`- Banned IP list: 218.65.30.61 116.31.116.7
Es werden nur zwei IP-Adressen in der Liste der gesperrten IP-Adressen anstelle von 8 angezeigt, wie Total Banned sagt.
Während ich das tue, habe tail -f /var/log/auth.log
ich Folgendes:
Mar 29 11:08:40 DBSERVER sshd[29163]: error: maximum authentication attempts exceeded for root from 218.65.30.61 port 50935 ssh2 [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61 user=root
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:08:44 DBSERVER sshd[29165]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61 user=root
Mar 29 11:08:46 DBSERVER sshd[29165]: Failed password for root from 218.65.30.61 port 11857 ssh2
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:01 DBSERVER CRON[29226]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:10:02 DBSERVER CRON[29226]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:18 DBSERVER sshd[29238]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185 user=root
Mar 29 11:10:20 DBSERVER sshd[29238]: Failed password for root from 113.122.43.185 port 46017 ssh2
Mar 29 11:10:33 DBSERVER sshd[29238]: message repeated 5 times: [ Failed password for root from 113.122.43.185 port 46017 ssh2]
Mar 29 11:10:33 DBSERVER sshd[29238]: error: maximum authentication attempts exceeded for root from 113.122.43.185 port 46017 ssh2 [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185 user=root
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:11:36 DBSERVER sshd[29245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7 user=root
Mar 29 11:11:38 DBSERVER sshd[29245]: Failed password for root from 116.31.116.7 port 24892 ssh2
Mar 29 11:11:43 DBSERVER sshd[29245]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 24892 ssh2]
Mar 29 11:11:43 DBSERVER sshd[29245]: Received disconnect from 116.31.116.7 port 24892:11: [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: Disconnected from 116.31.116.7 port 24892 [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7 user=root
Mar 29 11:12:39 DBSERVER sshd[29247]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7 user=root
Mar 29 11:12:41 DBSERVER sshd[29247]: Failed password for root from 116.31.116.7 port 26739 ssh2
Mar 29 11:12:45 DBSERVER sshd[29247]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 26739 ssh2]
Mar 29 11:12:45 DBSERVER sshd[29247]: Received disconnect from 116.31.116.7 port 26739:11: [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: Disconnected from 116.31.116.7 port 26739 [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7 user=root
Mar 29 11:13:41 DBSERVER sshd[29249]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7 user=root
Mar 29 11:13:43 DBSERVER sshd[29249]: Failed password for root from 116.31.116.7 port 27040 ssh2
gesperrte IP versucht immer noch.
Wenn ich sudo iptables -L INPUT -v -n
mich jedoch erkundige, erhalte ich Folgendes:
Chain INPUT (policy ACCEPT 228 packets, 18000 bytes)
pkts bytes target prot opt in out source destination
6050 435K f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Was mache ich hier falsch?
Wie kann ich alle gesperrten IP-Adressen anzeigen?
Danke im Voraus.
bantime
. Machen Sie es200m
oder noch höher und dannsudo service fail2ban restart
und dannfail2ban-client status sshd
Antworten:
Bitte beachten Sie, dass das fail2ban-Verbot von IP nur vorübergehend ist.
Die vollständige Liste der gesperrten IP-Adressen können Sie am besten in der Protokolldatei nachlesen:
Mit dem folgenden Befehl können Sie auch eine saubere Liste der Eingaberegeln erstellen:
quelle
So zeigen Sie die gesamte iptables-Reihe an:
So zeigen Sie nur die IP-Adresse an:
Sie können "REJECT" je nach Fall durch "DROP" ändern.
quelle
Ähnlich wie bei NA AE oben, mit den Kommentaren von kwaa , werden hier alle IPs aufgelistet:
aber diese Ausgabe hat so viele Zeilen. Dies zählt die Zeilen aller protokollierten gesperrten (und wahrscheinlich nicht gesperrten) IPs:
Die Ausgabe des obigen Befehls (mit Zeilenzahl) sollte mit der Anzahl 'Total Banned' in der Statusausgabe von fail2ban übereinstimmen:
getestet in Ubuntu 18.04.1 LTS.
Meine Ausgabe von 'wc -l' Zeile:
Und vom Status von fail2ban wird dieselbe 7244-Nummer überprüft:
quelle
Nur zu Ihrer Information:
Hoffentlich hilft das.
quelle
Wenn Sie die Liste der gesperrten IPs mit ihrem Timeout anzeigen möchten (Timeout läuft ab, sie werden aus dem gesperrten Pool entfernt), können Sie Folgendes verwenden:
quelle
Dies zeigt an, was derzeit im Chain fail2ban-ssh-Teil von iptables gesperrt ist (REJECT).
quelle
So fügen Sie eine allgemeinere Antwort hinzu:
Bitte beachten Sie, dass iptables möglicherweise nicht die richtige Antwort sind und Ihnen möglicherweise überhaupt keine relevanten Informationen liefern (für das Originalposter ist dies der Fall). Es hängt davon ab, welchen Wert für banaction = [action] Sie in Ihrer DEFAULT- oder spezifischen Gefängnisdefinition verwenden.
Ich habe viele kleine ARM-Boxen, auf denen Linux läuft, aber im Kernel sind nicht alle relevanten iptables-Module verfügbar, sodass iptables in diesem Fall nicht funktioniert.
* BSD hat möglicherweise überhaupt keine iptables und verwendet stattdessen so etwas wie pf .
Auf meinen ARM-Boxen verwende ich route zum Blockieren. Es wird eine ungültige Route für gesperrte IPs hinzugefügt, und daher sind zurückgegebene Pakete nicht zustellbar und IP wird im Wesentlichen blockiert. Funktioniert sehr gut In diesem Fall können Sie gesperrte IP-Adressen überprüfen, indem Sie Folgendes verwenden:
Sie haben viele Möglichkeiten zum Sperren. Und deshalb viele Möglichkeiten, die Verbotsliste zu überprüfen. Welche Sie verwenden, hängt von Ihrer Plattform und Ihren Vorlieben ab. In /etc/fail2ban/action.d/ stehen viele vorkonfigurierte Konfigurationsdateien zur Auswahl.
quelle