UFW «Uncomplicated firewall», es la forma “humana” para el manejo de IPTables, se puede bloquear, filtrar, manipular o redirigir tráfico.
«Es un cortafuegos diseñado para ser de fácil uso desarrollado por Ubuntu. Utiliza la línea de comandos para configurar las iptables usando un pequeño número de comandos simples. Ufw está escrito en python y es un programa para GNU/Linux.»
https://es.wikipedia.org/wiki/Uncomplicated_Firewall
Este artículo asume que posees los conocimientos mínimos de Linux, sabes cómo usar la terminal, y lo más importante, conoces tu servidor. La configuración es simple y se asume que estás ejecutando la terminal con la cuenta de root, si no es así, deberás adicionar ‘sudo’ a los comandos para obtener los privilegios de root.
Instalación
Para entornos basados en debian el comando es el siguiente:
apt install ufw
Primeros pasos con UFW
Habilitar el firewall:
ufw enable
Deshabilitar:
ufw disable
Habilitar el log del Firewall:
ufw logging on
Deshabilitar el log:
ufw logging off
Todos los logs se encuentran en /var/log
Crear la politica por defecto:
ufw default allow
Para remover la politica por defecto:
ufw default deny
Para servidores denegar acceso a todos los puertos/servicios e ir abriendo los necesarios.
Revisar el status:
ufw status
# o
ufw status verbose
Administrar Reglas del Firewall con UFW
Permitir el acceso a un puerto en especifico:
ufw allow port_number
Para denegar:
ufw deny port_number
Reemplazar ‘port_number’ por un puerto en especifico.
Ejemplos basados en puertos con UFW
Permitir acceso al puerto 53
ufw allow 53
Borrar el acceso al puerto 53
ufw delete allow 53
Permitir acceso al puerto 80 tcp
ufw allow 80/tcp
Borrar el Acceso al puerto 80 tcp
ufw delete allow 80/tcp
Administrando Servicios con UFW
Se pueden administrar los servicios de manera sencilla:
Para permitir el acceso algún servicio en especifico:
ufw allow service_name
Similar para denegar:
ufw deny service_name
Reemplazar «service_name» con un servicio en especifico, los servicios del sistema se pueden encontrar con:
less /etc/services
Ejemplos basados en servicios con UFW
Permitir acceso al servicio de smtp:
ufw allow smtp
Denegar el servicio smtp:
ufw deny smtp
Borrar el «Allow» de smtp
ufw delete allow smtp
Borrar el «Deny» de smtp:
ufw delete deny smtp
Permitir acceso al servicio ssh
ufw allow ssh
Denegar acceso al servicio ssh
ufw deny ssh
Borrar «Allow»
ufw delete allow ssh
Borrar «Deny»
ufw delete deny ssh
Permitir acceso a Apache
ufw allow 'Apache Full'
Reglas avanzadas con UFW
Permitir a una IP especifica:
ufw allow from XXX.XXX.XXX.XXX
Permitir a una sub red especifica:
ufw allow from XXX.XXX.XXX.XXX/XX
Permitir un puerto e IP especificos:
ufw allow from XXX.XXX.XXX.XXX to AAA port YY
Se puede utilizar el commando ‘deny’ para bloquear accesos:
ufw deny from XXX.XXX.XXX.XXX
ufw deny from XXX.XXX.XXX.XXX/XX
ufw deny from XXX.XXX.XXX.XXX to AAA port YY
Donde XXX.XXX.XXX.XXX es la IP especifica, AAA es el protocolo & YY es el puerto especifico.
Ejemplo de reglas avanzadas con UFW
Permitir que la IP 192.168.1.14 acceda al puerto 53 para TODOS los protocolos:
ufw allow from 192.168.1.14 to any port 53
Permitir la IP 192.168.1.32 acceder al puerto 22 para todos los protocolos:
ufw allow from 192.168.1.32 to any port 22
El protocolo es TCP, UDP o ambos (any)
ufw allow proto tcp from any to any port 80,443,8080:8090
El ejemplo final, permite trafico de los puertos tcp 80, 443 y 8080-8090 incluido. De cualquier host a cualquier host, los puertos no tienen espacios y soporta hasta 15 puertos por regla, los rangos cuentan como 2 puertos.
Referencias
Man page UFW.