¿Cómo ves todas las IP prohibidas para Ubuntu 12.04 a través de la línea de comando?

36

Parece que no puedo encontrar un comando rápido para ver todas las IP prohibidas en el servidor. ¿O hay un archivo que puedo editar?

Supongo que fail2ban es el que ingresa todas las IP para prohibir. ¿Dónde ajusto la configuración?

Parece que solo puedo iniciar sesión en mi servidor de forma remota solo si desactivo ufw. Parece que no puedo descubrir cómo deshacerme. Ni siquiera sé por qué me prohibieron en primer lugar. ¿Hay algún registro de algún tipo para ver todos los intentos realizados?

Patoshi パ ト シ
fuente
55
sudo iptables -L -n?
Seth
Hay mucha producción. ¿Qué se supone que debo buscar? i.imgur.com/zTTXJTE.png ... gracias ... hice un ufw allow <ip_address> y todavía no funcionó. No sé dónde dice que está prohibido.
Patoshi パ ト シ
También hice un estado ufw y luego deshabilité ufw, hice un iptables -F, luego ufw enable. Aún así no puedo acceder a mi servidor de forma remota. Mi ip se muestra claramente en el cuadro de estado como permitir: i.imgur.com/f7JD2Ny.png
Patoshi パ ト シ
¿Has abierto el puerto ssh antes de enviar el servidor ssh?
Qasim
¿Cómo verifico eso? Puedo ingresar SSH cuando el firewall está apagado. Entonces, ¿no funciona por defecto?
Patoshi パ ト シ

Respuestas:

24

sudo iptables -L INPUT -v -n | less

Esto le dice a iptables que enumere todas las reglas en la cadena INPUT, proporcionando una salida numérica detallada. Estamos pasando por menos para obtener una página a la vez.

Elder Geek
fuente
2
Tal vez algo cambió desde 2014, pero tal como están las cosas ahora, esta respuesta es incorrecta ya que fail2ban no pone las cosas en la INPUTcadena.
billynoah
@billynoah Por supuesto, algo cambió. Nada en la vida es estático. Por un lado, 12.04 ya no está bajo soporte. Si todavía lo usa, le recomiendo que actualice a 16.04 LTS, que es compatible hasta abril de 2021.
Élder Geek
No estoy seguro de si hace referencia a 12.04 porque dije 2014. Estaba hablando del año de tu respuesta.
billynoah
1
@billynoah Estoy haciendo referencia a 12.04 debido al hecho de que se hace referencia en la pregunta que se proporcionó esta respuesta. Le pido disculpas por cualquier confusión que pueda estar experimentando. :-)
Élder Geek
45

versión corta :

enumerar todos los ips actualmente bloqueados:

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"

deshacer una ip:

fail2ban-client set postfix-mail unbanip 111.222.333.444

versión larga :

Si está buscando la forma "oficial" de hacerlo, hay un cliente de línea de comandos para 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

entonces puedes correr

~ # 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

o puede usar mi comando, que itera sobre todas las cárceles existentes:

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"

que salidas:

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:
c33s
fuente
Debería ser la respuesta aceptada ahora.
Basj
sin awk:fail2ban-client status | grep "Jail list:" | sed "s/`- Jail list://" | sed "s/\s//g" | sed "s/,/\n/g" | xargs -L1 fail2ban-client status | less
Quamis
21

Puede ver todas las IP prohibidas anteriormente a través de /var/log/fail2ban.log

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

Sin embargo, algunas prohibiciones son temporales, por lo que no estoy seguro de cómo cancelarlas (mis registros de fail2ban están vacíos, lo que hace que sea más difícil de probar). Podría ingresar en un gran esquema de contabilidad con el awkcomando, pero se está volviendo bastante aburrido.

De todos modos, esa es la forma en que quieres hacerlo si estás buscando una razón por la que te prohibieron.

La otra forma es mirar las tablas de IP y ver qué se está descartando. Nuevamente, esto tiene algunos problemas porque muestra rutas predeterminadas que se anulan, pero estoy bloqueando las reglas con una fuente de 0.0.0.0/0 y eso parece mantenerlo lo suficientemente limpio para un uso práctico:

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

Sin embargo, esto no explicará por qué ocurrió una prohibición.

Oli
fuente
¿Es fail2ban la aplicación principal que hace la prohibición y no otra aplicación? mi servidor es solo un servidor básico de ubuntu, así que nunca instalé nada más en él.
Patoshi パ ト シ
En ese caso, si.
Oli
1
Tenga en cuenta que mi versión actual escribe NOTICE [snap-iptables] Ban 45.32.216.148: no ':'después de la palabra Ban, sino espacios antes y después.
Alexis Wilke