Saltar al contenido

7.4 Cortafuegos (UFW)

¡Prepárate!

  • Comprenderás la monstruosa complejidad del cortafuegos base de Linux (iptables/nftables). - Aprenderás por qué Ubuntu/Debian inventaron el Uncomplicated FireWall (ufw) como capa salvavidas. - Sabrás habilitar el cortafuegos con una política predeterminada Dictatorial (deny). - Aprenderás a abrir fronteras específicas con allow y a cazar bots de SSH estirando cuerdas con limit.

Como vimos en la lección anterior (ss -tulpn), muchos demonios tienden por inercia o defecto a escuchar conexiones dirigidas hacia internet con el peligroso “0.0.0.0”.
Para evitar que un hacker conecte a esos puertos si el servidor está en producción, Linux posee uno de los subsistemas de Kernel de cortafuegos de red más sofisticados y militarizados de la tierra: Netfilter / Iptables.

El problema radical corporativo: su sintaxis es imposible de leer y mantener para un humano con prisa. (Tratar de cerrar el puerto web implica comandos infernales estilo iptables -A INPUT -p tcp --dport 80 -j DROP).

Si te equivocas en una letra de iptables, derribas la conexión de 1000 usuarios de tu empresa en dos segundos. Para simplificar esta monstruosidad universal, Canonical (los dueños de Ubuntu) crearon un sencillo “traductor” de inglés amigable llamado ufw, el cual se ha instalado como la norma de oro LFCS general.


2. El Ritual de Activación UFW (¡Peligro de muerte!)

Sección titulada “2. El Ritual de Activación UFW (¡Peligro de muerte!)"

UFW viene apagado de forma nativa. Su primera y principal configuración teórica es la de todo guardabarreras: “Denegar TODO el tráfico entrante al PC, y Permitir TODO el tráfico saliente desde el PC hacia internet”.

ventana terminal
# Instalamos si no existe en servidor mínimo
sudo apt install ufw
# Hacemos el súper túnel blindado para no cortarnos el dedo
sudo ufw allow ssh
ventana terminal
# Encendemos la muralla (se acordará tras cada reinicio también)
sudo ufw enable
# Vemos nuestro estado actual para confirmar qué túneles existen
sudo ufw status verbose

Ahora que nuestra muralla UFW rebotará toda la basura externa de internet, nos toca permitir perforaciones puntuales o agujeros (allow) para que la gente de negocios pueda trabajar en los puertos de los Demonios internos.

Permitir acceso web general (allow) Podemos hablarle mediante nombres de servicios conocidos o mediante número de puerto y el protocolo:

ventana terminal
sudo ufw allow 80/tcp
# Equivalente a:
sudo ufw allow http

Restringir orígenes elitistas a IPs secretas Supón que instalas una Base de Datos (3306). Nunca jamás bajo ninguna circunstancia se la abres al público universal con un allow 3306 normal. Para esto, creas un agujero láser que solo se abra si la llamada en la puerta procede de la dirección IP de tu servidor web en la IP 10.0.0.5:

ventana terminal
# Solo admitimos a nuestro amigo al puerto 3306
sudo ufw allow from 10.0.0.5 to any port 3306

Bloqueos Explícitos Selectivos (deny o reject) Hay un troll atacador en la calle en la máquina concreta 198.51.100.1 que te bombardea la web y quieres echarlo independientemente de la regla permitida:

ventana terminal
sudo ufw deny from 198.51.100.1

ufw trae incorporado un módulo de defensa automática brutal para demonios ultra-sensibles (como SSH en el 22). Si usamos la regla especial de limit en vez de allow o deny, UFW construirá matemáticamente por detrás en Kernel una bolsa contenedora. Si alguien (tú o un botano Chino) intenta loguearse por SSH 6 o más veces fallidas en una diminuta ventana de 30 segundos, UFW lo catalogará silenciosamente como bot de diccionario y le quemará la IP negándole futuras conexiones en los próximos días.

ventana terminal
# El comando defensivo supremo de la administración profesional remota
sudo ufw limit ssh

  1. Examen directo: Como administrador novato entras ilusionado la primera mañana al servidor recién desplegado en la nube de Amazon (ssh id@cloud-debian), instalas tu Firewall Uncomplicated e inmediatamente tecleas la orden magna sudo ufw enable sintiéndote seguro, seguido de un “Enter”. Un segundo después, los caracteres de Putty se congelan extrañamente. Tu teclado no funciona; el servidor nube ya no “responde a pings” ni te dejará volver entrar nunca más ni a la de tres. ¿Qué dictado milenario desobedeciste?

  2. Hemos desplegado un ecosistema de monitorización interna exquisito (Nagios) que no tiene contraseñas pero tiene que estar vivo escuchando reportes de equipos internos. Sabemos que un allow / port común como se hace con la Web sería catastrófico publicándolo en un router porque cualquiera leería tu infraestructura. ¿Qué cláusula de control milimétrica de UFW exigirás usar al arquitecto de red si sabes que el Nagios debe estar escondido y que SOLO debe dejarse tocar desde la IP directiva corporativa origen 10.8.0.50?

  3. Existen bots especializados zombificados en botnets que rastrean e iluminan rangos de internet diarios. En cuanto detectan que tienes el puerto 22 abierto (allow ssh), disparan asombrosamente rápido scripts programados por su creador inyectando listas filtradas de la Deep Web probando típicamente tu puerta SSH hasta 50 palabras en una ventanilla de 10 míseros segundos. Acaban colapsándote CPU por culpa de la Criptografía asimétrica o en el peor de los casos adivinando el combo (user/1234). ¿Qué orden impone UFW para disuadir este modelo abismal de ataque matemático sin romper tu acceso vital lícito?