UFW (uncomplicated firewall)
Última actualización
Última actualización
UFW es una herramienta de configuración de cortafuegos (firewall) sencilla y amigable para el usuario, diseñada para facilitar la administración de en sistemas Linux. Permite definir reglas para permitir o bloquear el tráfico de red de forma sencilla.
UFW es una herramienta poderosa y sencilla para administrar un cortafuegos en Ubuntu. Esta guía es un punto de partida; según tu infraestructura, podrás ir refinando las reglas y aplicando medidas adicionales de seguridad. ¡Buena configuración!
Reglas de entrada y salida: Por defecto, UFW bloquea o permite conexiones entrantes o salientes según la configuración inicial. Lo habitual es permitir todas las conexiones salientes y restringir las entrantes.
Reglas por puerto y protocolo: Se pueden definir reglas específicas para puertos (por ejemplo, TCP o UDP).
Reglas por dirección IP o rango: Puedes permitir o bloquear tráfico de direcciones o subredes específicas.
Orden de las reglas: UFW evalúa las reglas en orden, por lo que las reglas más específicas deben agregarse antes de las generales.
En la mayoría de las distribuciones Ubuntu, UFW viene preinstalado y activado pero si no fuera así, siempre puedes instalarlo con:
Para ver el estado de UFW:
Para resetearlo:
Para recargarlo:
Para activarlo:
Para desactivarlo (si fuese necesario):
Cambiar reglas a denegar por defecto: Denegar cualquier comunicación entrante o saliente
Agregar regla: Permitir el tráfico entrante por el puerto 80 (HTTP):
Ahora, se podria hacer lo mismo con https
Denegar regla: Bloquear el tráfico entrante por el puerto 22 (SSH):
Eliminar una regla: Primero, lista las reglas numeradas:
Luego elimina la regla deseada, por ejemplo, la regla número 3:
Permitir/denegar por IP: Permitir todo el tráfico desde una IP específica:
Bloquear una IP específica:
Permitir tráfico en una subred: Por ejemplo, para permitir a toda la subred 192.168.1.0/24:
A continuación se muestran ejemplos de reglas UFW teniendo en cuenta la presencia de diversos servicios:
Porbamos a permitir los puertos comunes:
HTTP (80/tcp)
HTTPS (443/tcp)
Permitir ambos puertos:
Recargarmos el firewall:
Si tratamos de acceder a una pagina web, veremos que seguirá fallando, esto es debido al DNS (53) que tampoco esta funcionando, activémoslo:
Deberíamos recuperar el acceso ahora si teníamos configurada una política de negación total.
Configura Docker para que no altere las reglas iptables automáticamente modificando el archivo /etc/docker/daemon.json
(agrega "iptables": false
) y administra las reglas manualmente.
Permite los puertos de los contenedores que deseas exponer. Por ejemplo, si tienes un contenedor en el puerto 8080:
MySQL utiliza por defecto el puerto 3306/tcp. Si deseas permitir conexiones externas (solo si es necesario y de fuentes confiables):
Esta regla permite que solo la subred 192.168.1.0/24 se conecte a MySQL, lo cual es más seguro que permitir acceso global.
Postfix (SMTP): Usa el puerto 25/tcp (además de 587 para envío seguro o 465 para SMTPS).
Dovecot (IMAP/POP3): Usa los puertos 143/tcp (IMAP), 993/tcp (IMAPS), 110/tcp (POP3) y 995/tcp (POP3S).
FTP tradicional utiliza el puerto 21/tcp, pero también puede requerir una configuración para los puertos pasivos:
Permitir el puerto FTP:
Configura el rango de puertos pasivos en el servidor FTP (por ejemplo, 30000-31000) y permite ese rango:
El servidor DHCP utiliza varios puertos y protocolos (normalmente UDP 67 y 68). En un servidor DHCP:
Bind9 utiliza el puerto 53 en TCP y UDP:
Ten en cuenta que normalmente estos servicios se utilizan en redes locales y no se exponen a Internet.
UFW permite gestionar reglas mediante perfiles predefinidos de aplicaciones, para ver los perfiles disponibles:
Si se muestra un perfil para un servicio, puedes permitirlo con:
Estos perfiles suelen incluir las reglas necesarias para los puertos requeridos por el servicio, por ejemplo, con OpenSSH negaremos el servicio por SSH.
Habilita el registro para monitorear la actividad:
Los registros se almacenan en /var/log/ufw.log
, lo que facilita identificar intentos de acceso no autorizados.
Si necesitas reglas más específicas, por ejemplo, permitir solo conexiones seguras desde una IP determinada:
Esto es especialmente útil para acceder a paneles de administración o servicios sensibles.
Docker, por defecto, crea sus propias reglas , lo que puede interferir con UFW, por eso es interesante, algunas recomendaciones: