viernes, 17 de febrero de 2012

proteger nuestro servidor: iptables bloquear y desbloquear una IP

Proteger nuestro servidor de ataques es primordial. También es muy cómodo usar paquetes que te hacen todo el trabajo como fail2ban.

 Una opción para proteger el servidor en este caso de ataques DDOS es usar los script de InetBase estos nos dan la posiblidad de protequerlo en sencillos pasos. Se trata de un script que analiza el trafico comprobando posibles ataques. Instalarlo en nuestro servidor web es sencillo

wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh 
./install.sh 


Igualmente tienes el widget para desinstalar si ya no lo deseas:
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos 
chmod 0700 uninstall.ddos 
./uninstall.ddos 


Una vez instalado DoS-Deflate, podemos editar la configuración que se ubica en /usr/local/ddos/ddos.conf:
* FREQ=1.- Cada cuantos minutos correr el script. Viene programado para correr cada minuto, lo que parece razonable, teniendo en cuenta que de un minuto a otro podrían saturarte mucho el servidor web.  
* NO_OF_CONNECTIONS=150.- Indica el límite de conexiones, 150 en este caso. Si una conexión IP hace más conexiones que este límite, se le bloqueará por el tiempo que se especifica en BAN_PERIOD.  
* APF_BAN=1 . Si es igual a uno (1) se usará APF, sino lo tienes instalado, cámbialo por cero (0) para usar iptables.  
* BAN_PERIOD=600. Cantidad de segundos en que la IP estará bloqueada. Son 10 en la configuración predeterminada, puedes cambiarlo por una hora (3600 segundos).

Teniendo funcionando el script, se nos enviará un mail con el detalle de la ip bloqueada.

Si deseas que alguna IP conocida realice muchas conexiones hacia tu servidor web, y la tienes bien identificada puedes indicarlo en /usr/local/ddos/ignore.ip.list para que no sea bloqueada.

Por mucho paquete que incluyamos en nuestro servidor par hacerlo más seguro. Es muy fácil que una máquina atacante se salte estas restricción, ya que puede que cada 1 minuto intente validarse con un usuario y contraseña. Si es una opción muy poco común, pero creerme que existe.

En estos casos la solución es muy rápida y fácil con iptables.
//Bloquear dirección IP
sudo iptables -A INPUT -s dirección_ip -j DROP
//En caso de  querer desbloquear usar
sudo iptables -D INPUT -s dirección_ip -j DROP