web-dev-qa-db-fra.com

Comment voyez-vous toutes les adresses IP interdites pour Ubuntu 12.04 via la ligne de commande?

Je n'arrive pas à trouver une commande rapide pour afficher uniquement toutes les adresses IP interdites sur le serveur. Ou y a-t-il un fichier que je peux simplement éditer?

J'imagine que fail2ban est celui qui entre toutes les adresses IP à interdire. Où puis-je ajuster les paramètres pour cela?

Il semble que je ne puisse me connecter à mon serveur à distance que si je désactive ufw. Je n'arrive pas à trouver comment me défouler. Je ne sais même pas pourquoi j'ai été banni en premier lieu. Existe-t-il un journal pour visualiser toutes les tentatives?

35
Patoshi パトシ

Sudo iptables -L INPUT -v -n | less

Ceci indique à iptables d’énumérer toutes les règles de la chaîne INPUT, en fournissant une sortie numérique détaillée. Nous en parcourons moins pour obtenir une page à la fois.

24
Elder Geek

version courte :

liste tous les ips actuellement bloqués:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

annuler une adresse IP:

fail2ban-client set postfix-mail unbanip 111.222.333.444

version longue :

si vous recherchez le moyen "officiel" de le faire, il existe un client en ligne de commande pour fail2ban https://www.fail2ban.org/wiki/index.php/Commands :

~ # fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:           roundcube, sshd, sogo, postfix-sasl, postfix-mail, dovecot, ssh, sshd-ddos

alors vous pouvez courir

~ # fail2ban-client status roundcube

Status for the jail: roundcube
|- filter
|  |- File list:        /var/log/mail.log
|  |- Currently failed: 0
|  `- Total failed:     12
`- action
   |- Currently banned: 1
   |  `- IP list:       111.222.333.444
   `- Total banned:     1

ou vous pouvez utiliser ma commande, qui itère sur toutes les prisons existantes:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

qui produit:

Status for the jail: roundcube
   |  `- IP list:
Status for the jail: sshd
   |  `- IP list:
Status for the jail: sogo
   |  `- IP list:
Status for the jail: postfix-sasl
   |  `- IP list:
Status for the jail: postfix-mail
   |  `- IP list:
Status for the jail: dovecot
   |  `- IP list:
Status for the jail: ssh
   |  `- IP list:
Status for the jail: sshd-ddos
   |  `- IP list:
45
c33s

Vous pouvez voir toutes les adresses IP précédemment interdites à travers /var/log/fail2ban.log

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

Certaines interdictions étant toutefois temporaires, je ne sais pas comment les annuler au mieux (mes journaux fail2ban sont vides, ce qui rend la tâche plus difficile à tester!). Vous pouvez entrer dans un grand système de comptabilité avec la commande awk, mais cela devient plutôt ennuyeux.

Quoi qu'il en soit, c'est la façon dont vous voulez le faire si vous cherchez une raison pour laquelle vous avez été banni.

L'autre façon consiste à examiner les tables IP et à voir ce qui est abandonné. Là encore, cela pose quelques problèmes car il montre les routes par défaut qui sont remplacées mais je bloque les règles avec une source de 0.0.0.0/0 et cela semble le garder suffisamment propre pour une utilisation pratique:

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

Cela n'expliquera pas pourquoi une interdiction s'est produite.

21
Oli