web-dev-qa-db-fra.com

Comment afficher toutes les adresses IP interdites avec fail2ban?

Lorsque j'exécute cette commande fail2ban-client status sshd J'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 IP dans la liste IP interdite au lieu de 8, comme le dit Total Banned.

Pendant que je fais tail -f /var/log/auth.log J'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 en train d'essayer.

Cependant quand je vérifie avec Sudo iptables -L INPUT -v -n J'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 IP interdites?

Merci d'avance.

40
Dark Cyber

Veuillez garder à l'esprit que l'interdiction fail2ban de l'IP est de nature temporaire.

La meilleure façon de consulter la liste complète des adresses IP qui ont été bloquées serait de vérifier le fichier journal:

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

La commande suivante peut également vous donner une liste claire des règles d'entrée:

Sudo iptables -L INPUT -v -n | less
20
NA AE

Pour afficher la gamme 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 "REJETER" par "DROP", selon votre cas.

9

Semblable à NA AE ci-dessus avec les commentaires de kwaa inclus, cela répertorie toutes les adresses IP:

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

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

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

La sortie de la commande ci-dessus (avec le nombre de lignes) doit correspondre au nombre 'Total interdit' dans la sortie d'état de fail2ban:

fail2ban-client status sshd

testé dans 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:   [...]
8
Marc Compere

si vous souhaitez 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
5
gstlouis

Juste un FYI:

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

J'espère que cela pourra aider.

4
Rob Pickering

Cela montrera ce qui est actuellement interdit (REJECT) dans la partie Chain fail2ban-ssh d'iptables.

Sudo iptables -L fail2ban-ssh -v -n
3
IG-88

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

Veuillez noter que iptables peut ne pas être la bonne réponse et peut ne pas vous donner d'informations pertinentes du tout (pour l'affiche originale, c'est le cas). Cela dépend de la valeur pour banaction = [action] que vous utilisez dans votre définition de prison par défaut ou spécifique.

J'ai beaucoup de petites boîtes ARM propulsées par Linux mais le noyau n'a pas tous les modules iptables disponibles, donc iptables ne fonctionnera pas dans ce cas.

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

Sur mes boîtes ARM que j'utilise route pour le blocage. Il ajoute une route non valide pour les adresses IP interdites et, par conséquent, les paquets de retour ne sont pas livrables et IP est essentiellement bloqué. 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 de nombreuses options pour interdire. Et donc de nombreuses options pour vérifier la liste des interdictions. Lequel utiliser dépend de votre plateforme et de vos préférences. Il existe de nombreux fichiers de configuration préconfigurés dans: /etc/fail2ban/action.d/ parmi lesquels choisir.

2
srx

voir la base de données

/var/lib/fail2ban/fail2ban.sqlite3

1
Ervin Juhász