Comment afficher toutes les adresses IP interdites avec fail2ban?


36

Quand j'ai lancé cette commande, fail2ban-client status sshdj'ai eu ceci:

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

Il ne montre que deux adresses IP dans la liste des adresses interdites au lieu de 8, comme le dit Total Banned.

Pendant ce temps, tail -f /var/log/auth.logj'ai eu ceci:

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

IP interdit toujours essayer.

Cependant, quand je vérifie, sudo iptables -L INPUT -v -nj'ai eu ceci:

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

Qu'est-ce que je fais mal ici?

Comment puis-je afficher toutes les listes d'adresses IP interdites?

Merci d'avance.


"Total" signifie le total jamais banni, pas le total actuellement banni. Le seul endroit où vous trouverez des adresses précédemment interdites se trouve dans les journaux (si vous les avez conservées).
Arrêtez de blesser Monica le

dans jail.local ou jail.conf, vous semblez avoir un petit bantime. Faites-le 200mou même plus haut puis faites sudo service fail2ban restartet ensuitefail2ban-client status sshd
Allen King

Réponses:


19

Veuillez garder à l’esprit que l’interdiction de la propriété intellectuelle par fail2ban est de nature temporaire.

Le meilleur moyen de consulter la liste complète des adresses IP bloquées serait de consulter le fichier journal:

sudo zgrep 'Ban:' /var/log/fail2ban.log*

La commande suivante peut également vous donner une liste épurée de règles de saisie:

sudo iptables -L INPUT -v -n | less

3
Il n'y a pas de deux points dans mes fichiers de log (donc nécessaire pour ajuster le grep). Laissant comme commentaire plutôt que comme édition cependant, comme je ne sais pas à quel point c'est répandu / s'il s'agit d'un changement récent.
kwah

Gardez à l'esprit que la liste des règles iptables ne fonctionne que dans le cas où iptables est votre action d'interdiction. Parfois ce n'est pas le cas.
gilad mayani

@kwah identique pour moi, pas de deux points dans le fichier journal. Probablement un changement récent dans la sortie, ou une faute de frappe.
David Mordigal

Supprimez le ':' après le terme de recherche 'Ban' car le ':' n'est plus écrit dans le fichier journal. Vous pourrez ainsi voir à nouveau les adresses IP bloquées avec la commande mentionnée ci-dessus.
Mario Neubauer le

9

Pour voir la ligne complète d'iptables:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"'

Pour afficher uniquement l'adresse IP:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0" {print $4}'

Vous pouvez changer "REJECT" par "DROP", selon votre cas.


6

Similaire à NA AE ci-dessus avec les commentaires de kwaa inclus, cela répertorie tous les IP:

sudo zgrep 'Ban' /var/log/fail2ban.log*

mais cette sortie a tant de lignes. Cela compte les lignes de toutes les adresses IP interdites enregistrées (et probablement non interdites):

sudo zgrep 'Ban' /var/log/fail2ban.log* | wc -l

La sortie de la commande ci-dessus (avec le compte de ligne) doit correspondre au compte 'Total banni' dans la sortie d'état de fail2ban:

fail2ban-client status sshd

testé sous Ubuntu 18.04.1 LTS.

Ma sortie de la ligne 'wc -l':

7244

Et à partir du statut de fail2ban, le même numéro 7244 est vérifié:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 7
|  |- Total failed: 49457
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 9
   |- Total banned: 7244
   `- Banned IP list:   [...]

4

Juste un FYI:

  • "Total interdit" correspond au nombre total d'adresses IP qui ont été interdites pour cette prison (et qui ont probablement été non bannies).
  • "Actuellement banni" sont les SEULES IP actuellement bannies pour cette prison (et la liste d'IP le confirme).

J'espère que ça t'as aidé.


4

si vous voulez voir la liste des IP interdites avec leur délai d'expiration (le délai expire, elles sont supprimées du pool interdit), vous pouvez utiliser:

ipset list

2

Cela montrera ce qui est actuellement banni (REJECT) dans la partie Chain fail2ban-ssh de iptables.

sudo iptables -L fail2ban-ssh -v -n

2

Pour ajouter une réponse plus générique:

S'il vous plaît noter que iptables pourrait ne pas être la bonne réponse et pourrait ne pas vous donner des informations pertinentes du tout (pour l'affiche originale c'est). Cela dépend de la valeur pour banaction = [action] que vous utilisez dans votre définition DEFAULT ou jail spécifique.

J'ai de nombreuses petites boîtes alimentées par ARM sous Linux, mais le noyau ne dispose pas de tous les modules iptables pertinents. Par conséquent, iptables ne fonctionnera pas dans ce cas.

* BSD peut ne pas avoir du tout iptables et utiliser quelque chose comme pf à la place.

Sur mes boîtes ARM, j'utilise route pour bloquer. Il ajoute une route non valide pour les adresses IP interdites et, par conséquent, les paquets en retour ne sont pas distribuables et l'adresse IP est essentiellement bloquée. Fonctionne très bien. Dans ce cas, vous pouvez vérifier les adresses IP interdites en utilisant:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
# normal routing entries
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
# banned IPs (no gateway, no iface)
223.96.95.85    -               255.255.255.255 !H    0      -        0 -

Vous avez beaucoup d'options pour interdire. Et donc beaucoup d'options pour vérifier la liste d'interdiction. Lequel utiliser dépend de votre plate-forme et de vos préférences. Il existe de nombreux fichiers de configuration préconfigurés dans: /etc/fail2ban/action.d/.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.