Banear una IP con iptables en Linux
Anuncio:
Recientemente, uno de los servidores que uso, comenzó a dejar de funcionar, aparentemente todo estaba bien, pero algo pasaba con Apache y MySQL ya que cada cierto tiempo dejaban de funcionar.
Lo primero que debemos hacer es usar top (o htop) para ver la carga del sistema y poder ver el uso del mismo, y lo siguiente que debemos hacer, es mirar los logs de apache.
En este caso, el monitor del sistema (htop) no mostraba nada fuera de lo normal, pero cuando vi los logs, estaba repleto de mensajes de error de conexión a mysql por «too many connections». Esto ya, te lleva a pensar que algo raro pasa.
Una vez que se identifica este problema, tenemos que observar la IP desde la que se está realizando la conexión, y tras comprobar que se repite una y otra vez casi sin dejarte leer bien el log… pues hay que bloquear.
Linux tiene una herramienta muy poderosa para esto, iptables. IPTABLES es el cortafuegos de Linux. Lo que vamos a ver ahora, es simplemente un uso entre los muchos que tiene, concretamente, vamos a bloquear una IP. Lo hacemos de la siguiente manera:
sudo iptables -I INPUT -s IP_ATAQUE -j DROP
Con esto, le indicamos al cortafuegos, que todo el tráfico de entrada a nuestro servidor desde la IP especificada, que lo elimine, por lo que no llegarán más peticiones desde esta IP a nuestro Apache.
Con esto, al menos desde esta IP, no nos van a saturar más nuestro servidor. Ojo, esto es efectivo si es nuestro servidor el que cae, si es el ancho de banda el que se satura, no sirve esta solución.
Puedes aprender más de IPTABLES en la Wiki de Debian.
Esperamos que os sea de ayuda.