Bloquear IP con utw de Ubuntu

El firewall utw es un firewall que viene incluido y activado con Ubuntu. Es bastante útil y sencillo de usar para bloquear IPs indeseadas, sobre todo cuando se reciben ataques continuos de peticiones a nuestro servidor, lo cual puede llegar a saturar y ralentizar el resto de peticiones.

La orden es tan sencilla como esto:

sudo ufw deny from XXX.XXX.XXX.XXX

Esto directamente bloquea todas las llamadas a nuestro servidor desde la IP que escribamos.

Sin embargo hay que tener en cuenta que el firewall es tanto una lista negra como una lista blanca, en la que existen también registros para permitir llamadas desde ciertas IPs. Para ver estos registros se introduce la siguiente sentencia en la línea de comandos:

sudo ufw status numbered

El firewall funciona de manera permisiva, es decir, que si en nuestra lista tenemos en la primera línea que permitimos todo a todas las IPs, dará igual que bloqueemos IPs en los siguientes registros, ya que hará caso a la primera línea. Debemos bloquear en los primeros registros. Para ello haremos lo siguiente:

Conociendo el orden de los registros gracias a la anterior sentencia, ejecutamos lo siguiente con el registro que queremos reordenar, cambiando número_a_eliminar por el número en cuestión:

sudo ufw delete número_a_eliminar
sudo ufw insert 1 deny from XXX.XXX.XXX.XXX to any

Así con todas las que queremos mover a los primeros registros. Podemos ejecutar siempre con el nº 1, el propio listado mueve los registros hacia abajo.

Con esto estamos seguros que se bloquea la IP aunque tengamos otras permitidas en los siguientes registros del firewall utw.