Los sistemas Linux vienen equipados desde el núcleo con un poderoso cortafuegos de red (firewall) llamado Iptables. Un cortafuegos es una aplicación que limita o bloquea el acceso a los servicios de red disponibles en el equipo. Para manejar más cómodamente este cortafuegos es habitual encontrar y usar en servidores Ubuntu una utilidad llamada UFW, acronimo de Uncomplicated Firewall.
En esta entrada solo vamos a mostrar la forma de bloquear una IP con UFW. ¿Por qué querríamos hacer esto? Es posible que haya algún moscón buscando alguna vulnerabilidad en alguno de nuestros servidores y las herramientas instaladas para frenarlo no lo hayan logrado. Aunque debemos buscar el porqué las herramientas no funcionaron, una rápida respuesta será bloquear manualmente al moscón. Por ejemplo, recientemente, un moscón de estos se tiró un rato incordiando el wp-login.php de uno de los sitios que administro y el bueno de Fail2ban no se dio por enterado. Así que mientras pulo y doy cera a las reglas de Fail2ban un bloqueo a la IP del moscón atajará el problema.
UFW funciona añadiendo reglas para cada situación. Estas reglas tienen un preferencia. El nivel más bajo 1 tiene la máxima preferencia y el último la menor. Así, si tenemos una regla que permite el acceso a todo (por ejemplo la 30) y posteriormente una que lo limita parcialmente, esta segunda (por ejemplo la regla 50) no será tenida en cuenta. Esta es la primera posible razón por la que si añadimos reglas mediante UFW no nos funcionen.
Veamos:
|
ufw insert 1 deny from 216.17.104.32 |
La orden anterior logra bloquear una IP con UFW permanentemente siendo 216.17.104.32 la de mi atacante y que obviamente cambiarás por la del tuyo. Así cuando apunte a nuestro servidor recibirá silencio por respuesta. Pero si no hubiéramos añadido insert 1 al principio, la regla se habría añadido al final de la cola de reglas y no se habría ejecutado nunca ya que previamente, como es un servidor web, permitimos mediante otra regla el acceso a todo el mundo en el puerto 80. Al añadir el insert 1 nuestra nueva regla se añade al principio y todas las demás se retrasan un nivel. Ten en cuenta que deberás ser root y que un sudo previamente puede ser necesario.
Si quieres saber más sobre el uso de UFW podemos visitar la ayuda que ofrece Ubuntu. Una orden relacionada que debes tener a mano y que nos permite ver la lista ordenada de las reglas en UFW.
Si cambiamos de opinión y queremos volver a dar acceso a nuestro servidor al moscón, sabiendo el orden de las reglas puedes borrar una por su indice y tendrá nuevamente acceso:
El apunte aquí descrito funciona en servidores Ubuntu Server 12.04 LTS y Ubuntu Server 14.04 LTS. Aunque probado en estas versiones sin duda no estará limitado a ellas y con seguridad funcionará en cualquier otro entrono semejante, Ubuntu, Debian o Linux donde este instalado UFW.