Configuración de Black List de IPs en el firewall de Linux
En los servidores expuestos a internet además de limitar el acceso a los puertos deberíamos limitar que IPs externas pueden acceder a nuestro servidor, sobretodo sin pertenecen a listas de IPs sospechosas o Black List.
Existen numerosas Black List que podemos agregar a nuestro firewall, estas listas se actualizan constantemente por lo que deberemos disponer de un mecanismo para actualizar automáticamente las reglas en nuestro firewall. Dependiendo de nuestro firewall utilizaremos un script o las opciones en el propio firewall. Al final de este post hay una lista con algunas Black List que es aconsejable bloquear.
BlackList en iptables
Utilizaremos un script simple que lee un fichero con las IPs y las agrega a iptables, en el siguiente ejemplo bloquea las IPs de la red TOR, que no es exactamente un Black List pero si se recomienda agregarla a nuestro servidor para evitar ataques.
Primero instalaremos ipset que es un framework de iptables y nos servirá para crear fácilmente la lista.
Para Debian:
# apt install ipset
Para Centos:
# yum install ipset
Una vez instalado ipset crearemos la lista “filtro-tor”
# ipset create filtro-tor hash:ip
Crearemos el script “filtro-tor.sh”:
#!/usr/bin/env bash
# Limpia la lista
ipset flush filtro-tor
# Lista los nodos de salida de Tor y los añade al grupo filtro-tor
curl -sSL "https://check.torproject.org/torbulkexitlist" | sed '/^#/d' | while read IP; do
ipset -q -A filtro-tor $IP
done
# Aplica el grupo filtro-tor a iptables
iptables -A INPUT -m set --match-set filtro-tor src -j DROP
Finalmente agregaremos en el cron las siguientes líneas para que la lista se actualice automáticamente:
00 5 * * * /opt/killtor/filtrar-ip-tor.sh > /dev/null 2>&1
@reboot /opt/killtor/filtrar-ip-tor.sh > /dev/null 2>&1
Blacklist en el firewall CSF
Para este firewall no hace falta crear un script ya implementa una fincionalidad que impide el acceso a una serie de listas preconfiguradas, para configurarlas simplemente tendremos que descomentar las líneas en el fichero /etc/csf/csf.blocklists, recuerda antes de comprobar que la URL de la lista es correcta ya que ha podido cambiar.
Posteriormente tendremos que reiniciar el firewall:
# csf –r
# service lfd restart
Listado de BlackList
Para utilizar alguna de estas listas se deberá realizar pequeñas modificaciones en el script ya que junto con la IP incluyen mas información.
- Red Tor: https://check.torproject.org/torbulkexitlist
- DShield: http://www.dshield.org/block.txt
- BOGON: http://www.cymru.com/Documents/bogon-bn-agg.txt
- C.I. Army: http://www.ciarmy.com/list/ci-badguys.txt
- BruteForceBlocker: http://danger.rulez.sk/projects/bruteforceblocker/blist.php
- BlockList: https://api.blocklist.de/getlast.php?time=3600
- GreenSnow: https://blocklist.greensnow.co/greensnow.txt
- SpamHaus: http://www.spamhaus.org/drop/drop.txt