Icono del sitio Blog personal de Guido Cutipa

Cómo configurar un firewall con UFW

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.

Salir de la versión móvil