Cómo configurar un firewall en un servidor Ubuntu
Publicado: 15 de febrero de 2025, 21:33:33 UTC
Última actualización: 12 de enero de 2026, 8:36:55 UTC
Este artículo explica y proporciona algunos ejemplos sobre cómo configurar un firewall en GNU/Linux usando ufw, que es la abreviatura de Uncomplicated FireWall (FireWall sin complicaciones), y el nombre es apropiado, realmente es una forma muy fácil de asegurarse de no tener más puertos abiertos de los necesarios.
How to Set Up a Firewall on Ubuntu Server
La información de esta publicación se basa en Ubuntu Server 14.04 x64. Puede que no sea válida para otras versiones. (Actualización: Confirmo que la información de esta publicación sigue siendo válida y funcional a partir de Ubuntu Server 24.04; sin embargo, en los últimos 10 años, ufw se ha vuelto más inteligente al incluir perfiles para aplicaciones de servidor comunes (por ejemplo, se puede habilitar "Nginx completo" en lugar de los puertos 80 y 443 por separado) y ya no es necesario deshabilitar o habilitar todo el firewall para que se apliquen nuevas reglas).
Cuando empecé con servidores GNU/Linux (Ubuntu), configurar un firewall implicaba crear y mantener manualmente un archivo de configuración para iptables, que podía ser complejo. Sin embargo, hace poco descubrí ufw, que significa "Uncomplicated Firewall" (cortafuegos sencillo), y realmente lo es.
Mi instalación de Ubuntu Server 14.04 ya tenía ufw instalado, pero si la tuya no lo tiene, simplemente instálalo desde los repositorios:
UFW es simplemente una herramienta que simplifica la configuración de iptables. En segundo plano, iptables y el firewall del kernel de Linux realizan el filtrado, por lo que UFW no es ni más ni menos seguro que estos. Sin embargo, dado que UFW facilita enormemente la configuración correcta de un firewall, puede reducir el riesgo de error humano y, por lo tanto, es posiblemente más seguro para administradores sin experiencia.
Si su servidor está configurado con IPv6 además de IPv4, asegúrese de que esté habilitado también para UFW. Edite el archivo /etc/default/ufw y busque la línea que indica IPV6=yes. En mi instalación ya estaba ahí, pero si no es así o indica que no, debería editarlo.
Luego, simplemente usa el símbolo del sistema para habilitar los puertos que quieras abrir. Si estás conectado a tu servidor por SSH, asegúrate de habilitarlo también; de lo contrario, podría interrumpir tu conexión y posiblemente bloquearte el acceso al servidor al activarlo. Dependiendo de si tienes acceso físico al servidor o no, esto puede ser un poco incómodo.
Por ejemplo, si usa ssh en el puerto estándar 22 y está configurando un servidor web que admite conexiones no cifradas (HTTP en el puerto 80) y cifradas (HTTPS en el puerto 443), deberá emitir los siguientes comandos para configurar ufw:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Si necesita más reglas, simplemente agréguelas como se indica arriba.
Si tiene una dirección IP estática y solo necesita poder conectarse a través de ssh desde una ubicación, también puede restringir las conexiones ssh a una única dirección de origen de esta manera:
Por supuesto, introduzca su propia dirección IP.
Cuando haya terminado, habilite ufw ingresando:
¡Listo! El firewall ya está activo y se iniciará automáticamente al reiniciar el servidor. :-)
Si realiza cambios en la configuración de ufw, es posible que deba deshabilitarlo y habilitarlo nuevamente para que surtan efecto, de la siguiente manera:
sudo ufw enable
Para ver la configuración actual, simplemente ingrese:
Si ufw no está habilitado, simplemente mostrará un mensaje de “inactivo”, de lo contrario, enumerará las reglas definidas actualmente.
