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.

tor

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