GNU/Linux >> Tutoriales Linux >  >> Debian

Debian:¿cómo prohibir automáticamente y de forma permanente las direcciones IP?

Actualmente he estado usando iptables en un nuevo servidor Debian que ejecuta Asterisk.

Todos los días he estado revisando auth.log en busca de direcciones IP y haciendo manualmente iptables -A INPUT -s IPA.DRE.SS.0/24 -j DROP

Inicialmente estaba haciendo solo direcciones IP, pero muchos resultados provenían de direcciones IP similares, por lo que /24 ha funcionado mejor, he usado /16 un par de veces.

¡Ya tengo cientos de entradas de iptables y esto se está saliendo de control! Sé que debe haber una manera más fácil de hacer esto.

Me recomendaron fail2ban, pero parece que bloquea las direcciones IP solo temporalmente después de cierto número de intentos.

Los dos principales intentos de intrusión que veo están utilizando nombres de usuario falsos y puertos aleatorios.

¿Es posible, si se intenta iniciar sesión con un nombre de usuario que no estoy usando actualmente, bloquear automáticamente la dirección IP de forma permanente? ¿Lo mismo con los puertos que no están en uso?

También veo mucho como esto:

Did not receive identification string from (malicious IP) port 48334

También me gustaría prohibir esas direcciones IP.

No bloquearé automáticamente los intentos de inicio de sesión incorrectos como si tocara con el dedo gordo la contraseña que podría bloquearme. Pero tal vez sea suficiente una prohibición permanente de una IP después de 3 intentos.

¿Puedo hacer esto con iptables? No he encontrado nada sobre "prohibiciones permanentes" que funcionen así, parece que funciona mejor en este momento.

Me gustaría más o menos lograr lo que he estado haciendo manualmente; bloqueando permanentemente los rangos de IP después de un único inicio de sesión de nombre de usuario incorrecto, una única conexión de puerto incorrecta o 3 intentos de inicio de sesión incorrectos (con el nombre de usuario correcto). Espero que esto evite que auth.log reciba spam.

Respuesta aceptada:

fail2ban se puede configurar para prohibiciones permanentes configurando bantine a -1

En jail.conf

bantime = -1 

Estos se perderán en un reinicio, pero eso no es necesariamente algo malo porque muchos intentos serán transitorios desde máquinas domésticas pwned en una red de bots...

Si desea persistencia, entonces https://arno0x0x.wordpress.com/2015/12/30/fail2ban-permanent-persistent-bans/ puede brindarle alguna orientación.

Esencialmente modificando el fail2ban config para crear un archivo de configuración persistente de todas las direcciones IP prohibidas y hacer que iptables cargue esta lista al reiniciar...

Entonces, si verifica su jail.conf predeterminado puede encontrar que la acción predeterminada es iptables-multiport . Esto corresponde al archivo de configuración /etc/fail2ban/ction.d/iptables-multiport.conf

Podemos agregar las siguientes entradas:

[Definition]
# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-<name>
              iptables -A fail2ban-<name> -j RETURN
              iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
          cat /etc/fail2ban/persistent.bans | awk '/^fail2ban-<name>/ {print $2}' \
          | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
             iptables -F fail2ban-<name>
             iptables -X fail2ban-<name>

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]'

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype>
        echo "fail2ban-<name> <ip>" >> /etc/fail2ban/persistent.bans

Ahora, cuando fail2ban marca una entrada, agregará una línea a /etc/fail2ban/persistent.bans (a través de actionban configuración). Cuando fail2ban se inicia llama actionstart que lee este archivo y construye las iptables reglas necesarias.

Relacionado:Mac:¿asignar direcciones IP a determinadas direcciones mac en dd-wrt?

Por supuesto, fail2ban necesita reiniciarse después de cambiar cualquiera de los archivos de configuración.

Todo el crédito para "arno0x0x" y su sitio de wordpress por esta receta.


Debian
  1. Cómo instalar Debian 10 (Buster)

  2. Cómo cambiar el nombre de host en Debian 10

  3. Cómo ejecutar OpenVPN automáticamente en Debian con una dirección IP estática

  4. Cómo dejar de instalar actualizaciones automáticamente en Ubuntu o Debian (actualizaciones desatendidas)

  5. ¿Cómo enumero las direcciones IP bloqueadas por iptables?

Cómo instalar Debian 11

Cómo reiniciar Debian 10

Cómo habilitar/deshabilitar ping usando iptables en Debian 10

Cómo asignar varias direcciones IP a una sola tarjeta LAN en Debian 10

Cómo instalar Go en Debian 10

Cómo instalar Go en Debian