Activar el firewall ufw en un VPS

  Sysadmin

Si has solicitado un VPS con una distro de Linux instalada por defecto, es posible que no tenga un firwall activado. Esto significa que todos los puertos del servidor son accesibles desde el exterior.

No te asustes, al principio esto no es un problema porque seguramente no hay ningún servicio escuchando en esos puertos, salvo en el de ssh, que necesitas para entrar a configurar tu nuevo servidor.

Pero a medida que vas instalando paquetes de software en el VPS, el riesgo de que haya intentos de acceso no deseados aumenta. Por eso, una de las primeras tareas que recomiendo es activar un firewall.

Me gusta ufw porque es fácil y cómodo de instalar y configurar por línea de comandos, reduciendo el riesgo de cometer errores al manipular complicadas reglas de firewall.

Precauciones antes de activar un firewall

Un firewall sirve para denegar conexiones. Esto es importante tenerlo claro, porque lo único que nos está permitiendo controlar el servidor… ¿Qué es? ¡Correcto! Una conexión ssh.

Por eso hay que tener cuidado. Antes de activar el firewall debes poner una regla que permita la conexión ssh. Por defecto, ssh utiliza el puerto 22/tcp. Si has cambiado el número de puerto, tenlo en cuenta para adaptar tu configuración llegado el momento.

Si, como consecuencia de estos cambios, pierdes acceso al VPS, tendrás que solicitar que te lo reinstalen. En ese caso, tendrías que rehacer todo el trabajo de configuración anterior, a no ser que hayas hecho copias de seguridad.

Instalar ufw en Debian

En este caso estoy utilizando Debian. Lo primero que debes hacer es actualizar la lista de paquetes disponibles y todo lo que tengas instalado anteriormente.

sudo apt-get update
sudo apt-get upgrade

Bien, esto inicia el proceso de actualización. Responde a las preguntas que aparezcan en la consola si se te pide confirmación o información adicional. Ahora partimos de una base sólida y estable. Todo va bien.

La siguiente orden inicia la instalación de ufw desde los repositorios de Debian.

sudo apt-get install ufw

Configurar ufw

Cuando se instala, ufw está desactivado aún. Lo primerísimo que debes hacer es crear la regla que permitirá la conexión ssh cuando el firewall esté activo. Utiliza el siguiente comando.

sudo ufw allow ssh

Fíjate en la respuesta, que debería ser como la siguiente.

Rules updated
Rules updated (v6)

ATENCIÓN: si no estás utilizando el puerto por defecto de ssh (22/tcp), porque lo habías cambiado anteriormente, esta regla no te vale. Debes abrir el puerto que aplique en tu caso. Por ejemplo, si tu ssh admite conexiones en el puerto 8222/tcp, la regla necesaria se añadiría de la siguiente forma.

sudo ufw allow 8222/tcp

Activar ufw

Una vez hayas añadido la regla para permitir la conexión ssh (muy importante esto, repito), puedes activar ufw mediante el siguiente comando.

sudo ufw enable

Se te avisará del riesgo de que se cierren las conexiones activas. Pero, si has hecho los deberes, no pasará nada malo. Adelante.

Consultar el estado de ufw

Ahora puedes consultar el estado del firewall y sus reglas mediante el siguiente comando.

sudo ufw status verbose

En este ejemplo, el estado que se muestra es el siguiente.

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)

Es decir, todas las conexiones entrantes están denegadas, excepto las que hemos excluido mediante reglas. Cuando instales nuevos servicios, como por ejemplo un servidor web, añadirás más reglas para permitir acceder a ellos.