Bloquear rango de direcciones IP

49

Me bombardean con intentos de pirateo desde China, todos con IP similares.

¿Cómo bloquearía el rango de IP con algo como 116.10.191. * Etc.

Estoy ejecutando Ubuntu Server 13.10.

La línea actual que estoy usando es:

sudo /sbin/iptables -A INPUT -s 116.10.191.207 -j DROP

Esto solo me permite bloquear cada uno a la vez, pero los piratas informáticos están cambiando las IP en cada intento.

Stephen Cioffi
fuente
44
deberías echar un vistazo a fail2ban, es realmente bueno para prohibir dinámicamente las direcciones IP molestas.
user9517 es compatible con GoFundMonica el
También me gusta agregar knockd para eliminar virtualmente el 100% de los intentos de acceso fallidos de mis registros. help.ubuntu.com/community/PortKnocking
Bruno Bronosky
pam_shield podría ser de ayuda aquí. github.com/jtniehof/pam_shield
Daniel

Respuestas:

87

Para bloquear las direcciones 116.10.191. *:

$ sudo iptables -A INPUT -s 116.10.191.0/24 -j DROP

Para bloquear las direcciones 116.10. *. *:

$ sudo iptables -A INPUT -s 116.10.0.0/16 -j DROP

Para bloquear 116. *. *. * Direcciones:

$ sudo iptables -A INPUT -s 116.0.0.0/8 -j DROP

Pero tenga cuidado con lo que bloquea usando este método. No desea evitar que el tráfico legítimo llegue al host.

editar : como se señaló, iptables evalúa las reglas en orden secuencial. Las reglas superiores en el conjunto de reglas se aplican antes que las inferiores en el conjunto de reglas. Entonces, si hay una regla más alta en su conjunto de reglas que permite dicho tráfico, entonces agregar ( iptables -A) la regla DROP no producirá el resultado de bloqueo deseado. En este caso, inserte ( iptables -I) la regla:

  • como la primera regla

sudo iptables -I ...

  • o antes de la regla de permiso

sudo iptables --line-numbers -vnL

digamos que muestra que la regla número 3 permite el tráfico ssh y desea bloquear ssh para un rango de ip. -Itoma un argumento de un número entero que es la ubicación en su conjunto de reglas donde desea que se inserte la nueva regla

iptables -I 2 ...

Arroyo
fuente
Visite arin.net y bloquee toda la gama de rangos de ip propiedad de Amsterdam . Ese lugar es RIPE con arañas de sondeo, dudo que haya tráfico legítimo saliendo de allí.
WEBjuju
tenga en cuenta que esto puede no funcionar dependiendo del orden de las reglas de iptable , vea la respuesta serverfault.com/a/507502/1
Jeff Atwood
2
o snap @JeffAtwood Me siento honrado por tu comentario. respuesta actualizada;)
Creek
¿Y cómo desbloqueas cierto rango?
bzero
11

sudo /sbin/iptables -A INPUT -s 116.10.191.0/24 -j DROP

Esto bloquea el rango. Puede expandir la subred según sea necesario con el mismo formato general.

Nathan C
fuente
¿Funcionará esto en toda la gama del cuarto set? Me gusta es el 0/24 solo 0-24. Intenté por ejemplo 500 pero no funcionó. Cubrirá 0/24 todos esos otros números en los 100 y 200
Stephen Cioffi
3
@Stephen Es un rango CIDR. Si necesita calcularlo para un rango diferente, use esto: subnet-calculator.com/cidr.php
Nathan C
4

Como un enfoque alternativo, podría usar algo tan simple como fail2ban. Establece un tiempo de espera para intentos de inicio de sesión fallidos sucesivos y hace que la fuerza bruta sea inviable, ya que solo tienen unas pocas oportunidades por tiempo de espera. Establecí mi tiempo de espera en 30 minutos. Cuando llegan una o dos horas, se dan cuenta de que no podrán avanzar y darse por vencidos.

temet
fuente
Además, el bloqueo de países enteros puede inhibir el uso autorizado.
Esa Jokinen
Me doy cuenta de que este hilo tiene más de un año, pero quería que la gente supiera algo. Tengo fail2ban instalado y ejecutándose, pero también reviso regularmente los registros de mi servidor. Existe este rango de IP 89.248.x.xque sigue probando diferentes inicios de sesión de correo electrónico aproximadamente una hora después del último intento, durante todo el día. Aparentemente, mantener el findtimefail2ban en 30 minutos ya no es suficiente para mantener a todos los niños desagradables del script.
Tanzeel Kazi