Cómo configurar un firewall básico en Ubuntu con UFW

Redes & Segurança · Por · Publicado el · Actualizado el · 8 min de lectura

Acercamiento desenfocado de un fragmento de código coloreado en un monitor
Acercamiento de código en el monitor con apariencia técnica, adecuado para tutoriales y artículos Foto: Godfrey Atima / Pexels

Esta guía muestra cómo configurar un firewall básico en Ubuntu con UFW de forma segura y directa. Definirás políticas por defecto, abrirás solo los servicios necesarios, activarás el registro y comprobarás que todo funciona. Sirve tanto para servidores como para equipos de escritorio. Se requiere acceso sudo. Si accedes por SSH de forma remota, abre el puerto antes de activar el firewall para evitar perder el acceso.

Requisitos previos y qué es UFW

UFW (Uncomplicated Firewall) es una capa sencilla para gestionar reglas de red en Ubuntu. Controla el mecanismo de filtrado del kernel y facilita tareas habituales, como permitir o bloquear puertos e IPs.

Un firewall básico suele seguir dos principios: negar las conexiones entrantes por defecto y permitir las salientes. Así expones solo lo que realmente necesitas y reduces la superficie de ataque.

Para seguir esta guía necesitas: acceso sudo, un terminal y conocer qué puertos/servicios debe exponer tu sistema (SSH, HTTP, bases de datos, etc.).

  • Acceso sudo en Ubuntu
  • Lista de servicios que deben estar accesibles
  • Direcciones IP o redes que tendrán permiso (si hay restricciones)

1. Instalación y comprobación inicial

En muchas instalaciones de Ubuntu UFW ya está disponible. Aun así, confirma la instalación y revisa el estado actual. El comando de estado no modifica reglas; solo muestra la configuración vigente.

Si aparece “inactive”, significa que el firewall aún no está aplicado. Configuraremos todo antes de activarlo para evitar bloquear el acceso remoto por error.

sudo apt update
sudo apt install -y ufw

# Verifique versão e status atual
sudo ufw --version
sudo ufw status verbose

2. Defina políticas por defecto seguras

El primer paso es asegurar políticas por defecto seguras: denegar todo lo entrante y permitir lo saliente. Esto bloquea servicios expuestos por accidente y mantiene el acceso saliente para actualizaciones, repositorios e integraciones.

Si necesitas políticas diferentes en el futuro, ajústalas después de haber abierto explícitamente los servicios necesarios.

sudo ufw default deny incoming
sudo ufw default allow outgoing

3. Asegura el acceso remoto (SSH) antes de activar

Si administras el sistema por SSH, abre el acceso SSH antes de activar UFW. Ignorar este paso puede terminar tu sesión y evitar que vuelvas a conectarte.

Usa el nombre de la aplicación cuando esté disponible (OpenSSH) o especifica el puerto. Si usas un puerto no estándar, ajústalo en el comando.

# Se o serviço OpenSSH está instalado:
sudo ufw allow OpenSSH

# OU, especificando a porta diretamente (padrão 22):
# sudo ufw allow 22/tcp

# Porta SSH não padrão (exemplo):
# sudo ufw allow 2222/tcp

4. Abre servicios esenciales con el menor alcance posible

Ahora, abre solo los servicios que tu sistema necesite exponer. Para la mayoría de servidores web esto implica HTTP y HTTPS. Las bases de datos internas normalmente deben restringirse a la IP de la aplicación o a una red concreta.

Considera restringir por IP/red siempre que sea posible. Eso reduce el riesgo de explotación por hosts desconocidos.

  • HTTP: 80/tcp
  • HTTPS: 443/tcp
  • DNS (cuando tu host ofrece DNS a otros): 53/udp
  • NTP (servidor de tiempo): 123/udp
  • Bases de datos/aplicaciones internas: abrir solo para IPs o redes de confianza
# Web (HTTP/HTTPS)
sudo ufw allow 80,443/tcp

# DNS (apenas se este host atende requisições DNS)
sudo ufw allow 53/udp

# Exemplo: liberar PostgreSQL apenas para o IP da aplicação
sudo ufw allow from 203.0.113.10 to any port 5432 proto tcp

# Restringir SSH à sua rede corporativa (exemplo)
sudo ufw allow from 192.0.2.0/24 to any port 22 proto tcp

# Bloquear explicitamente um serviço que não deve receber conexões (ex.: SMTP)
sudo ufw deny 25/tcp

5. Activa el firewall y revisa las reglas

Con las políticas por defecto definidas y las reglas esenciales abiertas, activa UFW. A partir de ese momento las conexiones se filtrarán según tus reglas.

Usa la listada numerada para revisar y, si es necesario, eliminar reglas por número en el futuro. Tras los ajustes, recarga UFW para aplicar cambios sin desactivarlo.

sudo ufw enable

# Revise as regras ativas (numeradas)
sudo ufw status numbered

# Após ajustes de regras, recarregue
sudo ufw reload

6. Habilita registros y ajusta el nivel de detalle

Activa el registro de eventos para facilitar auditorías y resolución de problemas. El archivo de log suele estar disponible en /var/log/ufw.log a través del sistema de logs de Ubuntu.

Niveles como low, medium y high controlan cuánto detalle se registra. Ajústalo según tu necesidad y vigila el crecimiento de los archivos de log.

  • low: eventos esenciales
  • medium: buen equilibrio entre visibilidad y ruido
  • high: más verboso; usar con moderación en producción
# Ativar logs e definir nível sugerido
sudo ufw logging on
sudo ufw logging medium

Verificación y resolución de problemas comunes

Valida desde otro host que los puertos esperados estén realmente abiertos y los demás cerrados. Simultáneamente, sigue el log mientras haces pruebas para confirmar el bloqueo/permiso según tus reglas.

Problemas comunes y cómo abordarlos:

- Conexión remota caída al activar: verifica que el puerto/servicio de acceso esté abierto correctamente y que no exista una restricción por IP que excluya tu dirección actual.

- Servicio no responde aunque esté abierto: confirma que el proceso escucha en el puerto/interfaz correctos y en el protocolo adecuado (tcp/udp).

- Docker y mapeo de puertos: los contenedores pueden crear reglas propias. Publica solo lo necesario y prueba la exposición real desde otro host.

- IPv6: si tu host usa IPv6, asegúrate de que esté habilitado también en UFW y de que las reglas cubran ambos protocolos.

Para monitoreo continuo del entorno, consulta la guía de logs estructurados y correlación de peticiones. Para operación diaria, considera también un servicio de monitorización 24h de servidores Linux. Si necesitas revisar la exposición de servicios y puntos débiles, valora una auditoría de vulnerabilidades de aplicaciones web.

# Testes a partir de outro host da rede/Internet
nmap -Pn -p 22,80,443 SEU_IP
nc -vz SEU_IP 22

# No servidor, acompanhe logs e confira regras
sudo tail -n 50 /var/log/ufw.log
sudo ufw status numbered

# Se necessário, remova uma regra pelo número
# sudo ufw delete NUMERO

# Último recurso para voltar ao padrão (cautela)
# sudo ufw reset

Preguntas frecuentes

¿UFW sustituye a iptables o nftables?

UFW es una capa de conveniencia que gestiona reglas sobre el mecanismo de filtrado del kernel. Simplifica la administración diaria sin exigir comandos de bajo nivel. Mantienes la protección del kernel, pero con una interfaz más directa para permitir, denegar y revisar reglas.

¿Las reglas de UFW persisten tras reiniciar el sistema?

Sí. Una vez activado, UFW carga sus reglas automáticamente en los siguientes arranques. Si cambias configuraciones críticas del sistema de logs o de red, revisa el estado y las reglas después del reinicio para garantizar que todo permanezca como esperas.

¿Cómo convivir con Docker y UFW en el mismo host?

Los contenedores pueden crear reglas propias al publicar puertos, lo que puede alterar el comportamiento esperado. Planifica cuidadosamente la exposición de puertos de Docker y prueba desde otro host. Restringe servicios a interfaces específicas y publica solo lo necesario para evitar exposición no deseada.

¿Es posible permitir un rango de puertos con UFW?

Sí. Puedes autorizar un intervalo especificando la franja y el protocolo. Esto es útil para aplicaciones que requieren múltiples puertos contiguos. Sin embargo, prefiere liberar el mínimo necesario y, cuando sea posible, restringir por IP o red para reducir riesgos.

¿Cómo habilitar IPv6 en UFW?

Si tu entorno usa IPv6, edita la configuración de UFW y ajusta la opción que controla el soporte de IPv6. Luego recarga el firewall para aplicar los cambios. También crea reglas que cubran tanto IPv4 como IPv6 según los servicios expuestos.

¿Puedo aplicar reglas por interfaz de red (por ejemplo, solo en eth0)?

Sí. Las reglas pueden aplicarse a interfaces específicas para mayor granularidad. Este control es útil cuando el host tiene varias tarjetas o redes (pública y privada). Planifica con cuidado para no bloquear el acceso administrativo ni exponer servicios en la interfaz equivocada.

¿Quieres una segunda opinión sobre tus reglas UFW?

Si necesitas revisar la exposición de puertos, ajustar políticas y mejorar la calidad de los registros, cuéntanos tus servicios. Podemos preparar un checklist de hardening adaptado a tu caso.

Hablar sobre firewall en Ubuntu

Ver también