Configurar un firewall básico con UFW

última modificación:

ufw (Uncomplicated Firewall) es la herramienta de Ubuntu para gestionar iptables sin tener que escribir reglas complejas a mano. Con unos pocos comandos se puede tener un servidor protegido: solo entra el tráfico que se permite explícitamente, el resto se descarta.

Para ver el estado actual del firewall:

sudo ufw status

Por defecto viene desactivado. Antes de activarlo, conviene añadir al menos la regla para SSH para no perder el acceso al servidor:

sudo ufw allow ssh

Esto equivale a permitir el puerto 22/tcp. Si el servidor usa un puerto SSH distinto:

sudo ufw allow 2222/tcp

Para un servidor web también se necesita HTTP y HTTPS:

sudo ufw allow http
sudo ufw allow https

Con las reglas necesarias en su sitio, se activa el firewall:

sudo ufw enable

ufw pide confirmación interactiva (y|n) antes de activarse. Para evitarlo (útil en scripts) se puede usar --force:

sudo ufw --force enable

Para ver las reglas activas con numeración (útil para eliminar alguna):

sudo ufw status numbered

Y para eliminar una regla por número (también pide confirmación; --force va antes del subcomando para omitirla):

sudo ufw delete 3
sudo ufw --force delete 3

Para denegar un puerto concreto de forma explícita:

sudo ufw deny 23/tcp

Si en algún momento hay que desactivar el firewall sin eliminar las reglas:

sudo ufw disable

ufw guarda las reglas y las restaura en cada arranque. Con este conjunto básico de comandos se cubre la mayoría de situaciones en un servidor de producción.