Actualizado el sábado, 11 enero, 2020
Instalar y configurar UFW Firewall en CenTOs, Debian y Ubuntu
Uncomplicated Firewall, más conocido como UFW es una interfaz de uso y manejo de iptables, que fue desarrollado por el equipo de Ubuntu. Su uso es a través de consola, pero con tan solo unos pocos comandos ya podrás manejarlo sin ningún problema. Cabe destacar que esta escrito en python.
Vemos como instalarlo y configurarlo en centos y derivados, debian, ubuntu y todos sus derivados.
Instalar UFW en Centos
UFW, no se encuentra en los repositorios oficiales, lo instalaremos desde epel.
yum install epel-release -y
yum install --enablerepo="epel" ufw -y
Lo activamos.
ufw enable
Comprobamos su funcionamiento.
ufw status # La salida debe ser... Status: active
Si lo quieres desactivar:
ufw disable
Instalar UFW en Debian, Ubuntu y derivados.
apt-get install ufw -y
Lo activas de la misma forma que en Centos:
ufw enable
Ya lo tenemos instalado, vamos a por la configuración.
Reglas predeterminadas
Por defecto la configuración de UFW bloquea todo el tráfico entrante y permite todo el tráfico saliente. Puedes configurar tus propias políticas con el comando:
ufw default allow outgoing
ufw default deny incoming
Configurar tus propias reglas de UFW
En la configuración de las reglas puedes optar por dos opciones:
- Configurar por puerto
- Configurar por servicio
Ejemplos de configuraciones:
Permitir las conexiones entrantes y salientes del servicio HTTP:
ufw allow http
O también…
ufw allow 80
Filtrar paquetes basados en TCP o UDP:
ufw allow 80/tcp ufw allow 21/udp
Podemos comprobar el estado de las reglas que vamos añadiendo, con:
ufw status verbose
El ejemplo de salida, sería similar a…
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 21/udp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 21/udp (v6) ALLOW IN Anywhere (v6)
Denegar todo el trafico de entrada y salida.
ufw deny 80 ufw deny 21
Borrar las reglas que añadimos anteriormente, que permitían el servicio HTTP:
ufw delete allow http ufw delete deny 21
Configuración de reglas avanzadas en UFW
Permitir a la ip «192.168.100.100» acceso a todo el servidor.
ufw allow from 192.168.100.100
Denegar acceso total al servidor.
ufw deny from 192.168.100.100
Permitir rangos de ip.
ufw allow from 192.168.100.0/24
Permitir que una ip tenga acceso al puerto 80 mediante TCP.
ufw allow from 192.168.100.100 to any port 80 proto tcp
Permitir acceso al rango de puertos tcp y udp, por ejemplo del 2500 al 3500.
ufw allow 2500:3500/tcp ufw allow 2500:3500/udp
Bloquear acceso al puerto 22, desde la IP «192.168.100.104» a la «192.168.100.110«. El resto de ip, si tendrán acceso al puerto 22.
ufw deny from 192.168.100.104 to any port 22 ufw deny from 192.168.100.110 to any port 22 ufw allow from 192.168.100.0/24 to any port 22
Permitir tráfico HTTP en la interfaz eth0.
ufw allow in on eth0 to any port 80
UFW permite de forma predeterminada las peticiones ping, si quieres anular este servicio debes editar el before.rules.
nano /etc/ufw/before.rules
Borra manualmente las siguientes lineas:
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
Resetear UFW (ojo se eliminan todas las reglas).
ufw reset
Redireccionar trafico
Si quieres redireccionar o redirigir el tráfico de una IP pública, por ejemplo150.129.148.155
del puerto 80 y 443, a otro servidor interno con dirección IP 192.168.1.120. Lo podemos hacer editando el archivo/etc/default/before.rules.
nano /etc/default/before.rules
Modificas el archivo como en el ejemplo:
:PREROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.120:80 -A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.120:443 -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
Reiniciamos.
ufw disable ufw enable
Concedemos permisos a los puertos 80 y 443.
ufw allow proto tcp from any to 150.129.148.155 port 80 ufw allow proto tcp from any to 150.129.148.155 port 443
Como ves… el uso de UFW es bastante simple.
En un próximo articulo, veremos como configurar una NAT con UFW.