125 votes

Comment montrer toutes les IP interdites avec fail2ban ?

Quand je lance cette commande fail2ban-client status sshd J'ai eu ça :

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 des IP interdites au lieu de 8, comme le dit Total Banned.

Bien que je fasse tail -f /var/log/auth.log J'ai eu ça :

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

Interdiction d'IP, mais on essaie toujours.

Cependant, lorsque je vérifie avec sudo iptables -L INPUT -v -n J'ai eu ça :

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 de mal ici ?

Comment puis-je afficher la liste de toutes les IP interdites ?

3 votes

"Total" signifie le nombre total de personnes interdites, et non le nombre total de personnes actuellement interdites. Le seul endroit où vous trouverez des adresses précédemment bannies est dans les journaux (si vous les avez conservés).

1 votes

Dans jail.local ou jail.conf, il semble que vous ayez une petite bantime . Faites-le 200m ou même plus, puis faire sudo service fail2ban restart et ensuite fail2ban-client status sshd

8voto

DevX Points 402

Juste un FYI :

  • Le "Total banni" est le total des IPs qui ont été bannies pour cette prison. (et qui ont probablement été débanalisées).
  • Les "actuellement interdites" sont les SEULS IP qui sont actuellement interdites pour cette prison (et la liste des IP le confirme).

J'espère que cela vous aidera.

5voto

gstlouis Points 85

Si vous voulez voir la liste des IP bannies avec leur délai d'attente (à l'expiration de ce délai, elles sont retirées du pool de bannissement), vous pouvez utiliser :

ipset list

0 votes

Pourquoi cela ne donne-t-il aucun résultat ? Je suis sûr qu'il y a des IP qui sont actuellement bannies.

1 votes

Je pense qu'il y a beaucoup de raisons à cela. S'il est complètement vide et n'affiche pas d'en-têtes comme "Name : f2b-sshd", il se peut qu'il ne s'enregistre pas et que fail2ban travaille avec les règles iptables directement au lieu de firewalld. Sur un centos7 propre avec un noyau récent, fail2ban devrait parler à firewalld. redémarrer fail2ban tout en faisant tailf /var/log/fail2ban.log pourrait vous montrer les règles en cours de nettoyage. Je sais que la liste ipset nécessite l'installation du dernier noyau. Ceux avant les récentes mises à jour de Linus

0 votes

Dans mon installation, fail2ban fonctionne avec iptables. C'est probablement la raison. Je vous remercie pour votre suivi. J'ai appris à utiliser sudo iptables -L pour voir les interdictions qui se trouvent dans une chaîne séparée.

5voto

Hidayats Points 185

Je viens de mettre à jour ma configuration pour faire face à une attaque sur ssh.

C'est ainsi que je vois les adresses IP interdites avec leur date d'expiration, et que je vérifie que les interdictions sont bien en place. J'utilise Fail2Ban v0.11.2 sur Debian 11.2.

> fail2ban-client get sshd banip --with-time
45.9.20.73  2022-02-21 23:56:35 + 3456000 = 2022-04-02 23:56:35

> iptables -L f2b-sshd
Chain f2b-sshd (1 references)
target     prot opt source               destination         
REJECT     all  --  45.9.20.73           anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

4voto

IG-88 Points 49

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

sudo iptables -L fail2ban-ssh -v -n

2 votes

iptables: No chain/target/match by that name.

4voto

arbabnazar Points 459

Regroupement par adresse IP :

awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log | sort | uniq -c | sort -n

Note : la variable NF est égale au nombre de champs dans chaque ligne du fichier journal. Donc $NF est la valeur du dernier champ.

Exemple de sortie :

...
  4 XXX.124.81.130
  5 XXX.248.175.246
  8 XXX.29.45.142

Visitez ce site Lien pour plus de détails

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X