ufw: firewall para linux

ufw: uncomplicated firewall


Cuando utilizas una máquina Linux, especialmente cuando la usas como VPS o servidor, es importantísimo tener un firewall o cortafuegos que se encargue de bloquear accesos perjudiciales o maliciosos a tu servidor.

Probablemente hayas escuchado hablar de cosas como iptables o nftables, shorewall o incluso ipchains si llevas mucho tiempo. En este artículo vamos a utilizar ufw, un software que funciona encima de iptables, simplificando el uso del firewall sin necesitar ir a tan bajo nivel como en los anteriores.

¿Qué es ufw?

El comando ufw (uncomplicated firewall) es un sistema que simplifica el uso de un firewall para Linux, de modo que sea muy fácil de usar. Comandos como iptables o el nuevo nftables son muy complejos y requieren mucha práctica y experiencia para usarlos correctamente. En su lugar, ufw tiene comandos muy simples y sencillos para usarlo sin demasiadas complicaciones.

Instalación de ufw

Lo primero será instalar ufw en nuestro sistema. Para ello, haremos uso de apt y una vez instalado, comprobaremos la versión para asegurarnos que se ha instalado correctamente. Recuerda utilizar sudo, ya que este comando sólo se puede utilizar con permisos de administración:

$ sudo apt install ufw

$ sudo ufw --version
ufw 0.36.2

$ sudo ufw status
Status: inactive

Como ves, por defecto está desactivado. Para activarlo, simplemente debemos escribir sudo ufw enable. Si queremos volverlo a desactivar, un simple sudo ufw disable lo volverá a dejar desactivado.

Consultar reglas con ufw

Una vez instalado y activado ufw, es muy probable que no tengamos ninguna regla. La mayoría de los firewalls funcionan a través de reglas. Tienen un comportamiento por defecto (permitir todo o denegar todo), y las reglas modifican ese comportamiento estableciendo excepciones.

Para consultar las reglas, escribimos lo siguiente:

$ sudo ufw status
Status: active

Si no nos aparece nada más, es que no tenemos reglas en ufw. Vamos a añadir una para que se muestren en la tabla. Escribiendo sudo ufw allow 80 le diremos que queremos permitir los accesos vía puerto 80, es decir HTTP.

A esto nos responderá con un Rule added (y un Rule added (v6) si tenemos un sistema que soporte IPv6). Ahora, ya deberíamos tener reglas en nuestro firewall. Vamos a comprobarlo:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80                         ALLOW       Anywhere
80                         ALLOW       Anywhere (v6)

Observa que con el verbose nos muestra información más detallada, aunque normalmente no la necesitaremos. En Default se nos indica que por defecto se deniega el tráfico entrante (incoming) y se permite el tráfico saliente.

Algo muy útil es usar numbered en lugar de verbose. Esto nos mostrará las reglas numeradas, ideal cuando tengamos muchas reglas y queramos hacer referencia a una concreta.

Añadir o eliminar reglas

El uso más habitual de ufw es añadir o eliminar reglas del firewall, para bloquear o permitir conexiones. Es IMPORTANTE saber que el orden de las reglas en ufw es un aspecto crítico, ya que si una regla afecta a una conexión, las reglas que se encuentran más abajo serán ignoradas.

En la siguiente tabla puedes ver un resumen de los comandos más frecuentes:

ComandoDescripción
sudo ufw allow 22Permite acceso desde el puerto 22 (SSH).
sudo ufw deny 80Bloquea acceso vía puerto 80 (HTTP).
sudo ufw deny httpIdem al anterior, http sirve como sinónimo de 80.
sudo ufw allow from 192.168.0.2Permite acceso a cualquier puerto a la IP 192.168.0.2.
sudo ufw allow from 192.168.0.2 comment HelloIdem a la anterior, pero además añade un comentario.
sudo ufw insert 1 allow 443Inserta una regla en la posición indicada.
sudo ufw deny from 80.80.80.42Bloquea acceso a cualquier puerto a la IP 80.80.80.42.
sudo ufw delete allow 22Elimina la regla que permite acceso vía puerto 22.
sudo ufw delete 4Elimina la regla número 4.
sudo ufw resetElimina todas las reglas del firewall.

Aunque ufw tiene muchos comandos más, con esta simple guía ya tendrás conocimientos para utilizar ufw de forma sencilla y práctica. Recuerda siempre tener mucho cuidado a la hora de bloquear conexiones y añadir un allow a tu IP para no bloquearte por accidente.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev