Microordenadores - Desarrollos modernos para sistemas retro

Como bloquear paises enteros y rangos de IPs
15 de Noviembre de 2016

Los ataques están a la orden del día en internet; en la mayoría de los casos se trata de ataques automatizados buscando vulnerabilidades en el servidor o aplicación. Podemos mitigar este problema bloqueando rangos de IPs.

Los ataques están a la orden del día en internet; en la mayoría de los casos se trata de ataques automatizados buscando vulnerabilidades en el servidor o aplicación (especialmente si usamos Wordpress). Si no se bloquean adecuadamente el servidor funcionará mucho más lento durante lo ataques como podemos ver en el gráfico inferior donde estos saturan la CPU del servidor.

Cómo bloquear países

Alto consumo de CPU por ataques de bots

Informes de seguridad afirman que el 41% de ataques a sitios web vienen de China. Bloquear países va contra la neutralidad de la red, pero no quiero tener que pagar servidor extra para que robots parásitos como Baidu se fumen los recursos haciendo conexiones agresivas. Este robot tiene la costumbre de ignorar el archivo robots.txt. Dependiendo de los recursos disponibles en el servidor, la diferencia de rendimiento al bloquearlo puede ser notable, y otro problema añadido es que te llenan de basura los logs de error del servidor web, dificultando su análisis y desperdiciando espacio en disco.

En muchos casos se puede considerar un ataque denegación de servicio, ya que se hacen conexiones abusivas a nuestros servidores para scrapear contenido e intentar convertir nuestro servidor en un zombie para enviar spam y como lanzadera de otros ataques. Y no debemos olvidar que desde el momento que administramos un servidor somos responsables de lo que se haga desde él.

Para arreglarlo hacemos lo típico: búsqueda en inglés (fundamental, allí es donde está la información más fresca y de mayor calidad). Encontré el artículo how to block IP ranges en Undeadly con un script para crear la lista de IPs a partir de las listas de IPdeny.com.

Una vez hecha la lista añadimos estas líneas a /etc/pf.conf y reiniciamos el firewall:

table <blocked_zones> persist file "/etc/pf-files/blocked_zones"
block drop quick from <blocked_zones>

Aunque bloquear a estos paises no te libra al 100% de malware que intente abusar de tu servidor tanto accediendo abusivamente a scripts inexistentes como haciendo fuerza bruta contra /wp-login.php si usas WordPress. Tampoco las listas son 100% precisas. Por esta razón es importante revisar los logs periódicamente.

Yo lo que hago es añadir otra tabla al firewall donde voy añadiendo a mano en un archivo las IPs abusivas, ya que el tiempo de proceso que se coman estos parásitos es tiempo que harás perder a tus visitantes, a los que debes respetar si quieres que tus sitios tengan éxito.

Bloqueo de proveedores

Al igual que los ataques desde China son la norma, con el proveedor francés OVH me ha pasado igual. Continuamente llegan ataques a mis servidores desde este proveedor y, aunque no quise bloquearlo porque también son ISP, mientras sigo viendo ataques en mis logs he decidido definitivamente bloquearlos desde el firewall a partir del Bloque de IPs de OVH.

Bloqueo de listas de spam

Usando el script spamhaus drop list puedes bloquear también IPs en base a listas de hosts abusivos.


Contenido relacionado: