Miklix

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.


Esta página ha sido traducida automáticamente del inglés para hacerla accesible al mayor número de personas posible. Lamentablemente, la traducción automática no es todavía una tecnología perfeccionada, por lo que pueden producirse errores. Si lo prefiere, puede consultar la versión original en inglés aquí:

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:

sudo apt-get install ufw

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 22/tcp
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:

sudo ufw allow from 192.168.0.1 to any port 22

Por supuesto, introduzca su propia dirección IP.

Cuando haya terminado, habilite ufw ingresando:

sudo ufw enable

¡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 disable
sudo ufw enable

Para ver la configuración actual, simplemente ingrese:

sudo ufw status

Si ufw no está habilitado, simplemente mostrará un mensaje de “inactivo”, de lo contrario, enumerará las reglas definidas actualmente.

Compartir en BlueskyCompartir en FacebookCompartir en LinkedInCompartir en TumblrCompartir en XCompartir en LinkedInPin en Pinterest

Mikkel Christensen

Sobre el autor

Mikkel Christensen
Mikkel es el creador y propietario de miklix.com. Tiene más de 20 años de experiencia como programador informático profesional y desarrollador de software, y actualmente trabaja a tiempo completo para una gran empresa europea de TI. Cuando no está escribiendo en su blog, dedica su tiempo libre a una gran variedad de intereses, aficiones y actividades, que en cierta medida pueden verse reflejados en la variedad de temas tratados en este sitio web.