Miklix

Cómo configurar un firewall en un servidor Ubuntu

Publicado: 15 de febrero de 2025, 21:33:33 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 sea válida o no para otras versiones. (Actualización: puedo confirmar que la información de esta publicación sigue siendo básicamente válida y funcional a partir de Ubuntu Server 24.04, sin embargo, en los 10 años intermedios, ufw se ha vuelto un poco más "inteligente" al tener perfiles para aplicaciones de servidor comunes (por ejemplo, puede habilitar "Nginx completo" en lugar de los puertos 80 y 443 por separado) y ya no es necesario deshabilitar/habilitar todo el firewall para que se apliquen nuevas reglas)

Cuando empecé a trabajar con servidores GNU/Linux (Ubuntu), configurar un cortafuegos implicaba crear y mantener manualmente un archivo de configuración potencialmente complejo para iptables. Sin embargo, hace poco descubrí ufw , que es la abreviatura de 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

En realidad, UFW es solo una herramienta que simplifica la configuración de iptables. Detrás de escena, son iptables y el firewall del kernel de Linux los que realizan el filtrado, por lo que ufw no es ni más ni menos seguro que estos. Sin embargo, debido a que ufw facilita mucho la configuración correcta de un firewall, puede reducir el riesgo de error humano y, por lo tanto, es posible que sea más seguro para los administradores sin experiencia.

Si su servidor está configurado con IPv6 y también con IPv4, asegúrese de que esto también esté habilitado para UFW. Edite el archivo /etc/default/ufw y busque una línea que diga IPV6=yes . En mi instalación ya estaba allí, pero si no está allí o si dice que no, debe editarlo

Luego, simplemente usa el símbolo del sistema para habilitar los puertos que deseas abrir. Si estás conectado a tu servidor a través de ssh, asegúrate de habilitarlo también o podría interrumpir tu conexión y posiblemente bloquearte del servidor cuando lo actives. 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 anteriormente.

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

¡Y ya está! El firewall está en funcionamiento y se iniciará automáticamente cuando reinicie el servidor :-)

Si realiza cambios en la configuración de ufw, es posible que deba deshabilitarla y habilitarla 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, esto simplemente mostrará un mensaje “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 Bang Christensen

Sobre el autor

Mikkel Bang 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.