Instalar y configurar UFW Firewall en CenTOs, Debian y Ubuntu

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.155del 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.

 

Agregar comentario