22/6/09

Filtrar IPs

Vamos a ver como filtrar con iptables las IPs de spammers y hackers que pretendan atacar a nuestro servidor.

Una vez hayamos detectado la IP atacante, por ejemplo con logcheck, crearemos una regla para filtrar dicha IP.

Por ejemplo para filtrar la ip 99.99.99.99:

iptables -A INPUT -s 99.99.99.99 -j DROP

Podemos eliminar una línea cambiando el parámetro -A por -D.

Para listar todas las reglas creadas usamos:

iptables -L

Estas reglas se pierden al reiniciar el sistema, por lo que vamos a salvarlas a un fichero y hacer que se carguen en el arranque:

Si es necesario creamos el directorio /var/lib/iptables

Comprobamos que están activas las reglas deseadas con iptables -L

Las volcamos a un fichero con:

iptables-save > /var/lib/iptables/iptablesReglas

Ahora crearemos un script en el directorio:

/etc/network/if-up.d

Lo llamaremos por ejemplo inicioIptables y el contenido será el siguiente:

#!/bin/sh
/sbin/iptables-restore < /var/lib/iptables/iptablesReglas

Hay que darle permisos de ejecución al fichero: chmod a+x inicioIptables

Con esto en cada inicio del sistema, se cargaran las reglas para iptables.

Seguidamente vamos a configurar el sistema para que guarde en un log registro de los accesos denegados:

Editamos: /etc/syslog.conf

Y añadimos la línea:

kern.warning /var/log/iptables.log

Debemos añadir este log a los logs monitorizados por logcheck.

Ahora lo que hay que hacer es para cada ip bloqueada, crear dos reglas iptables: una para guardar el registro y la otra para rechazar la conexión.

Por ejemplo:

iptables -A INPUT -s 99.99.99.99 -j LOG --log-prefix 'IP BLOQUEADA ' --log-level 4
iptables -A INPUT -s 99.99.99.99 -j DROP

Para reiniciar el servicio de monitorización: /etc/init.d/sysklogd restart
(Si tras reiniciar el servicio, no registra los accesos denegados en el log, probar reiniciando todo el sistema).

No hay comentarios: