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 deverbose
. 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:
Comando | Descripción |
---|---|
sudo ufw allow 22 | Permite acceso desde el puerto 22 (SSH). |
sudo ufw deny 80 | Bloquea acceso vía puerto 80 (HTTP). |
sudo ufw deny http | Idem al anterior, http sirve como sinónimo de 80 . |
sudo ufw allow from 192.168.0.2 | Permite acceso a cualquier puerto a la IP 192.168.0.2 . |
sudo ufw allow from 192.168.0.2 comment Hello | Idem a la anterior, pero además añade un comentario. |
sudo ufw insert 1 allow 443 | Inserta una regla en la posición indicada. |
sudo ufw deny from 80.80.80.42 | Bloquea acceso a cualquier puerto a la IP 80.80.80.42 . |
sudo ufw delete allow 22 | Elimina la regla que permite acceso vía puerto 22 . |
sudo ufw delete 4 | Elimina la regla número 4 . |
sudo ufw reset | Elimina 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.