Si eres administrador de sistemas, seguro que ha habido momentos en tu carrera en los que habrías querido contar con un sistema de seguridad potente, fácil de configurar y de gestionar, sin tener que lidiar con complejas reglas de iptables. UFW, o Firewall Simplificado es una herramienta de seguridad de red que cubre esa necesidad con una interfaz clara y directa. UFW te permite controlar la configuración del firewall de tu servidor mediante comandos sencillos.
En este tutorial de UFW, te explicamos todo lo que necesitas saber: desde la instalación hasta la configuración avanzada. Veremos cómo activar y desactivar UFW, entender su sintaxis y aplicar ejemplos prácticos a situaciones habituales. Al terminar, tendrás los conocimientos necesarios para usar UFW y proteger tu servidor de forma eficaz.
Instalación de UFW
Aunque no tengas experiencia en la gestión de firewalls, instalar UFW es sencillo. Sigue estos pasos para tenerlo en marcha en tu servidor.
Paso 1: Actualizar la lista de paquetes
Antes de instalar cualquier software nuevo, conviene actualizar la lista de paquetes.
sudo apt update
Paso 2: Instalar UFW
Puedes instalar UFW con un simple comando:
sudo apt install ufw
Paso 3: Verificar la instalación
Una vez completada la instalación, puedes comprobar si ha sido correcta. Para ver la versión de UFW instalada, ejecuta:
ufw version
Paso 4: Configuración inicial
Antes de activar UFW, es importante realizar una configuración inicial. Así puedes asegurarte de que se comporta como esperas al habilitarlo. Uno de los pasos más importantes es definir las políticas predeterminadas. Por defecto, UFW está configurado para denegar todas las conexiones entrantes y permitir todas las salientes. Puedes usar el siguiente comando para verificar o establecer estos valores:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Paso 5: Habilitar UFW
Habilitar UFW activa el cortafuegos con las reglas y políticas predeterminadas que hayas definido. Para habilitarlo, ejecuta el siguiente comando:
sudo ufw enable
Paso 6: Comprobar el estado de UFW
Puedes ver el estado de UFW y las reglas que están activas en ese momento con el siguiente comando:
sudo ufw status
Siguiendo este tutorial de UFW, podrás instalar y habilitar UFW en tu servidor sin problemas. Esta configuración inicial facilita los ajustes posteriores. UFW es muy flexible y te permite añadir reglas específicas para permitir o bloquear el tráfico según tus necesidades.
Comandos y sintaxis básicos de UFW
UFW está diseñado para ser fácil de usar: sus comandos son directos y su sintaxis clara simplifica la gestión del cortafuegos. Conocer estos comandos básicos y cómo se usan te ayudará mucho a configurar y mantener el cortafuegos de tu servidor. En la sección anterior de este tutorial cubrimos cómo habilitar UFW. Empecemos esta sección con el comando que te permite deshabilitarlo.
Deshabilitar UFW
Por motivos de diagnóstico o mantenimiento, puede que necesites deshabilitar UFW. Este comando lo hace por ti:
sudo ufw disable
Comprobar el estado de UFW
Revisar el estado de UFW con regularidad te permite saber qué reglas están activas en cada momento y confirmar que el cortafuegos funciona como esperas. Puedes comprobarlo con el siguiente comando:
sudo ufw status
Puedes añadir la opción verbose después de este comando para obtener más detalles sobre el estado de UFW.
sudo ufw status verbose
Permitir tráfico
Una de las funciones principales de UFW es permitir o denegar tráfico según tus requisitos de seguridad. Para permitir tráfico a través de un puerto concreto, usa el comando allow seguido del número de puerto y el protocolo (tcp/udp). Por ejemplo:
sudo ufw allow 22/tcp
Este comando permite conexiones SSH entrantes en el puerto 22 usando el protocolo TCP.
Denegar tráfico
De forma similar, para bloquear tráfico debes usar el comando deny.
sudo ufw deny 23/tcp
Este comando bloquea las conexiones Telnet entrantes en el puerto 23 usando el protocolo TCP.
Permitir tráfico por dirección IP
UFW también permite autorizar o denegar tráfico desde direcciones IP concretas, lo que te da un control más preciso sobre las reglas de seguridad. Por ejemplo:
sudo ufw allow from 192.168.1.10
Denegar tráfico por dirección IP
Denegar tráfico por dirección IP es igual de sencillo que el comando anterior. Aquí tienes un ejemplo:
sudo ufw deny from 10.0.0.0/8
Gestionar reglas de UFW
Al trabajar con UFW, es probable que necesites añadir, modificar o eliminar reglas. Veamos qué comandos de UFW te permiten hacerlo. Para añadir una nueva regla, basta con usar los comandos allow o deny que hemos explicado antes. Eliminar una regla requiere algunos pasos más. Primero debes listar las reglas numeradas para identificar exactamente cuál quieres borrar. El siguiente comando muestra las reglas numeradas:
sudo ufw status numbered
A continuación, puedes eliminar la regla indicando su número:
sudo ufw delete 1
Recargar UFW
Cada vez que hagas cambios en las reglas de UFW, conviene recargar el firewall. El siguiente comando lo hace por ti:
sudo ufw reload
Este comando vuelve a aplicar todas las reglas sin necesidad de desactivar y volver a activar el firewall.
Restablecer UFW
Existe un comando de UFW que te permite empezar desde cero o eliminar todas las reglas existentes. Ten en cuenta que al restablecer UFW, este quedará desactivado y todas las reglas se borrarán. El siguiente comando restablece UFW:
sudo ufw reset
Conocer estos comandos básicos de UFW y entender su sintaxis es fundamental para gestionar el firewall de forma eficaz. En las siguientes secciones veremos configuraciones avanzadas y casos de uso que pueden reforzar aún más la seguridad de tu servidor.
Combinar UFW con otras herramientas de seguridad
UFW es una herramienta potente para gestionar tu firewall, pero puedes combinarlo con otras herramientas de seguridad para sacarle el máximo partido. Una de ellas es fail2ban, que ayuda a prevenir ataques de fuerza bruta supervisando los registros del sistema y bloqueando las direcciones IP que muestran comportamiento malicioso. Así es como puedes integrar UFW con fail2ban para reforzar tu configuración de seguridad.
fail2ban es una herramienta de seguridad capaz de analizar archivos de registro en busca de patrones de intentos de inicio de sesión fallidos u otras actividades sospechosas. Al detectar estos patrones, puede actualizar automáticamente las reglas del firewall para bloquear las direcciones IP responsables. La combinación de UFW y fail2ban resulta especialmente útil para defenderse de ataques de fuerza bruta reiterados.
Instalar fail2ban
Para instalar fail2ban, ejecuta el siguiente comando en tu servidor:
sudo apt-get install fail2ban
Configurar fail2ban con UFW
A continuación aprenderás a configurar fail2ban para que funcione con UFW.
Paso 1: Crear una configuración de jaula local
El archivo de configuración predeterminado de fail2ban se encuentra en /etc/fail2ban/jail.conf. Sin embargo, se recomienda crear una copia local de este archivo para evitar que tus ajustes se sobreescriban cuando se actualice fail2ban. Puedes copiar el archivo de configuración con el siguiente comando:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Paso 2: Editar la configuración del jail
Abre el archivo jail.local archivo en tu editor de texto preferido con el siguiente comando:
sudo nano /etc/fail2ban/jail.local
En este archivo, busca la sección [DEFAULT] y configura los duración del baneo, tiempo de búsqueda, y maxretry parámetros. A continuación se explica qué indica cada uno:
- Hora de baño: Controla cuánto tiempo permanece bloqueada una IP.
- Buscar hora: Define el intervalo de tiempo en el que se contabilizan los intentos fallidos.
- Maxintentos: Indica el número de fallos permitidos antes de aplicar el bloqueo.
Por ejemplo, puedes configurar estos parámetros de la siguiente manera:
[DEFAULT] bantime = 600 findtime = 600 maxretry = 5
Paso 3: Habilitar UFW en la configuración del jail
Busca la sección [sshd] (o la de cualquier otro servicio que quieras proteger) en el archivo jail.local . Asegúrate de que «enabled» esté establecido en «true» y especifica que UFW debe usarse para los bloqueos:
[sshd] enabled = true banaction = ufw port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5
Esta configuración es necesaria para que fail2ban supervise el servicio SSH y actualice las reglas de UFW para bloquear las direcciones IP maliciosas.
Iniciar y habilitar fail2ban
Una vez configurado fail2ban, inicia el servicio y habilítalo para que se ejecute al arrancar el sistema:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Ahora comprueba el estado de fail2ban para verificar que funciona correctamente:
sudo systemctl status fail2ban
Ventajas de combinar UFW y fail2ban
Integrar fail2ban con UFW te permite tener una enfoque de seguridad por capas. UFW ofrece una forma sencilla de gestionar reglas de firewall, y fail2ban añade protección dinámica bloqueando las direcciones IP que muestran comportamiento malicioso. Esta combinación reduce el riesgo de ataques de fuerza bruta y mantiene el servidor seguro.
Conclusión
En este tutorial sobre UFW vimos cómo puede ser una herramienta eficaz para mejorar la seguridad del sistema y simplificar la gestión del firewall. Explicamos el proceso de instalación y configuración paso a paso, y también cómo combinar UFW con otras herramientas de seguridad como fail2ban para obtener una protección aún mayor.
Preguntas frecuentes
¿Cómo puedo eliminar una regla de UFW que he añadido?
Para eliminar una regla específica de UFW, usa el comando ufw delete seguido de la regla que quieres borrar. Por ejemplo, si quieres eliminar una regla que permite el tráfico por el puerto 80 (HTTP), ejecuta el siguiente comando:
sudo ufw delete allow 80/tcp
¿Es UFW mejor que iptables?
UFW simplifica la gestión del firewall con una sintaxis más clara y comandos fáciles de usar, lo que lo convierte en la opción ideal para quienes están empezando. iptables, en cambio, ofrece un control más detallado y mayores opciones de personalización, por lo que es más adecuado para usuarios avanzados que necesitan reglas de firewall muy específicas.
¿Qué es mejor, Firewalld o UFW?
UFW es más accesible para principiantes gracias a sus comandos directos. Es ideal para configuraciones sencillas. Firewalld ofrece funciones más avanzadas y mayor flexibilidad, lo que lo convierte en una mejor opción para entornos complejos y reglas de firewall dinámicas. La elección depende de tus necesidades concretas y de tu familiaridad con cada herramienta.
¿Cuál es el mejor firewall para Ubuntu?
El mejor firewall para Ubuntu depende de tus necesidades. UFW es la opción predeterminada y recomendada para la mayoría de los usuarios por su sencillez. Para configuraciones más avanzadas, iptables ofrece un control detallado sobre las reglas de firewall. Firewalld es otra opción con gestión dinámica de reglas. Puedes usar UFW para tareas simples, e iptables o Firewalld para requisitos más complejos.