En el mundo de la administración de sistemas, la seguridad es una prioridad. Un cortafuegos bien configurado es la primera línea de defensa contra accesos no autorizados y posibles amenazas externas. En el caso de los servidores que utilizan distribuciones de Ubuntu, UFW (Uncomplicated Firewall) se ha convertido en una herramienta esencial para gestionar reglas de cortafuegos de manera sencilla y eficiente. Este artículo repasa los comandos y reglas más comunes de UFW, ofreciendo una guía práctica para administradores de sistemas.
¿Qué es UFW?
UFW es una interfaz simplificada para configurar iptables, el sistema de cortafuegos predeterminado en Linux. Diseñado para ser fácil de usar, UFW permite a los usuarios definir reglas de cortafuegos mediante comandos simples, sin necesidad de profundizar en la complejidad de iptables. Está incluido por defecto en las distribuciones de Ubuntu, lo que lo convierte en una opción accesible para la mayoría de los administradores.
Verificar el estado de UFW
Antes de realizar cualquier configuración, es crucial verificar si UFW está activo en el sistema. Para ello, se ejecuta el siguiente comando:
sudo ufw status
Si el resultado muestra Status: inactive, significa que el cortafuegos no está habilitado. En ese caso, es necesario activarlo con:
sudo ufw enable
Al activar UFW, se bloquea automáticamente todo el acceso externo a los puertos del servidor, excepto aquellos que se permitan explícitamente. Es importante tener en cuenta que, si se habilita UFW sin permitir previamente el acceso SSH, se podría perder la conexión remota al servidor.
Reglas básicas de UFW
Bloquear una dirección IP
Para bloquear todas las conexiones provenientes de una dirección IP específica, se utiliza el siguiente comando:
sudo ufw deny from 5.57.226.105
Esto añadirá una regla que deniega cualquier tráfico desde la IP 5.57.226.105.. Para verificar las reglas activas, se puede ejecutar:
sudo ufw status verbose
Permitir una dirección IP
Por el contrario, si se desea permitir el acceso desde una dirección IP específica, el comando sería:
sudo ufw allow from 5.57.226.105
Esto permitirá todas las conexiones desde la IP 5.57.226.105.
Bloquear una subred
En caso de necesitar bloquear una subred completa, se puede utilizar el siguiente comando:
sudo ufw deny from 5.57.226.0/24
Esto bloqueará todas las direcciones IP dentro del rango 203.0.113.0/24.
Gestión de perfiles de aplicaciones
UFW incluye perfiles predefinidos para aplicaciones comunes, como OpenSSH, Nginx y Apache. Estos perfiles simplifican la configuración del cortafuegos al abstraer los puertos específicos que utiliza cada servicio.
Para listar los perfiles disponibles, se ejecuta:
sudo ufw app list
Para habilitar un perfil, como el de OpenSSH, se utiliza:
sudo ufw allow OpenSSH
Esto permitirá las conexiones SSH en el puerto 22, esencial para la administración remota del servidor.
Configuración de servicios web
Si el servidor aloja un sitio web, es necesario permitir el tráfico HTTP (puerto 80) y HTTPS (puerto 443). Para Nginx, se pueden habilitar ambos servicios con:
sudo ufw allow 'Nginx Full'
En el caso de Apache, el comando sería:
sudo ufw allow 'Apache Full'
Eliminar reglas
Si se necesita eliminar una regla previamente configurada, se puede hacer de dos maneras. La primera es especificar la regla directamente:
sudo ufw delete allow from 5.57.226.105
La segunda es utilizar el ID de la regla, que se obtiene con:
sudo ufw status numbered
Luego, se elimina la regla con:
sudo ufw delete [ID]
Conclusión
UFW es una herramienta poderosa y accesible para proteger servidores Ubuntu. Con comandos sencillos, los administradores pueden gestionar reglas de cortafuegos que bloqueen accesos no deseados y permitan tráfico legítimo. Ya sea para bloquear direcciones IP, habilitar servicios esenciales como SSH o configurar el acceso a servidores web, UFW ofrece una solución eficiente y fácil de usar.
Para más detalles y opciones avanzadas, se puede consultar el manual de UFW con:
man ufw
La seguridad del servidor es una tarea continua, y UFW es un aliado imprescindible en ese proceso.