InstalacionesTutoriales

Cómo instalar y usar UFW Firewall en GNU/Linux

Introducción

UFW también conocido como Uncomplicated Firewall es una interfaz para iptables. UFW proporciona una interfaz fácil de usar para usuarios principiantes que no están familiarizados con los conceptos de cortafuegos. Es la herramienta de firewall más popular que se origina en Ubuntu. Soporta IPv4 e IPv6.

En este tutorial, aprenderemos cómo instalar y usar el cortafuegos UFW en GNU/Linux.

Instalación de UFW

Debian/Ubuntu

# apt-get install ufw -y

centOS

De forma predeterminada, UFW no está disponible en el repositorio CentOS. Por lo tanto, necesitarás instalar el repositorio EPEL en tu sistema. Puedes hacerlo ejecutando el siguiente comando:

# yum install epel-release -y

Una vez instalado el repositorio EPEL, puedes instalar UFW simplemente ejecutando el siguiente comando:

# yum install --enablerepo="epel" ufw -y

Después de instalar UFW, inicia el servicio UFW y permite que se inicie al arrancar ejecutando el siguiente comando:

# ufw enable

A continuación, comprueba el estado de UFW con el siguiente comando. Deberías ver la siguiente salida:

# ufw status 
Status: active

También puedes desactivar el cortafuegos UFW ejecutando el siguiente comando:

# ufw disable

Establecer la directiva predeterminada de UFW

De forma predeterminada, la configuración  de UFW bloquea todo el tráfico entrante y permite todo el tráfico saliente. Puede configurar su propia política predeterminada con el siguiente comando.

# ufw default allow outgoing 
# ufw default deny incoming

Agregar y eliminar reglas de cortafuegos

Puedes agregar reglas para permitir el tráfico entrante y saliente de dos maneras, utilizando el número de puerto o utilizando el nombre del servicio. Por ejemplo, si deseas permitir las conexiones entrantes y salientes del servicio HTTP ejecuta el siguiente comando utilizando el nombre del servicio:

# ufw allow http

O ejecuta el siguiente comando utilizando el número de puerto:

# ufw allow 80

Si deseas filtrar paquetes basados en TCP o UDP, ejecuta el siguiente comando:

# ufw allow 80/tcp 
# ufw allow 21/udp

Puedes comprobar el estado de las reglas añadidas con el siguiente comando:

# ufw status verbose

Deberías ver la siguiente salida:

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)

También puedes denegar cualquier tráfico entrante y saliente en cualquier momento con los siguientes comandos:

# ufw deny 80 
# ufw deny 21

Si deseas eliminar las reglas permitidas para HTTP, simplemente prefija la regla original con “delete” como se muestra a continuación:

# ufw delete allow http 
# ufw delete deny 21

Reglas avanzadas para UFW

También puede agregar una dirección IP específica para permitir y denegar el acceso a todos los servicios. Ejecute el siguiente comando para permitir que la IP 192.168.0.200 acceda a todos los servicios del servidor:

# ufw allow from 192.168.0.200

Para denegar a la IP 192.168.0.200 todos los servicios en el servidor:

# ufw deny from 192.168.0.200

Puedes permitir un rango de dirección IP en UFW. Ejecuta el siguiente comando para permitir todas las conexiones desde la IP 192.168.1.1 hasta 192.168.1.254:

# ufw allow from 192.168.1.0/24

Para permitir que la dirección IP 192.168.1.200 accese al puerto 80 mediante TCP, ejecuta el siguiente comando:

# ufw allow from 192.168.1.200 to any port 80 proto tcp

Para permitir el acceso al rango de puertos tcp y udp de 2000 a 3000, ejecuta el siguiente comando:

# ufw allow 2000:3000/tcp 
# ufw allow 2000:3000/udp

Si deseas bloquear el acceso al puerto 22 desde la IP 192.168.0.4 y 192.168.0.10 pero permitir que todas las demás IP accedan al puerto 22, ejecuta el siguiente comando:

# ufw deny from 192.168.0.4 to any port 22 
# ufw deny from 192.168.0.10 to any port 22 
# ufw allow from 192.168.0.0/24 to any port 22

Para permitir el tráfico HTTP en la interfaz de red eth0, ejecuta el siguiente comando:

# ufw allow in on eth0 to any port 80

Por defecto UFW permite peticiones de ping. Si deseas denegar la solicitud de ping, tendrás que editar el archivo /etc/ufw/before.rules:

# nano /etc/ufw/before.rules

Quita las líneas siguientes:

-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

Guarda el archivo, cuando hayas terminado.

Si alguna vez necesitas restablecer UFW, eliminando todas sus reglas, puedes hacerlo a través del siguiente comando:

# ufw reset

Configurar NAT con UFW

Si deseas NAT para las conexiones de la interfaz externa a la interna mediante UFW. A continuación, puedes hacerlo editando /etc/default/ufw y /etc/ufw/before.rules. Primero, abre /etc/default/ufw

# nano /etc/default/ufw

Cambia la línea siguiente:

DEFAULT_FORWARD_POLICY="ACCEPT"

A continuación, también tendrás que permitir el reenvío de ipv4. Puede hacerlo editando el archivo /etc/ufw/sysctl.conf:

# nano /etc/ufw/sysctl.conf

Cambia la línea siguiente:

net/ipv4/ip_forward=1

A continuación, deberás agregar NAT al archivo de configuración de ufw. Puedes hacerlo editando el archivo /etc/ufw/before.rules:

# nano /etc/ufw/before.rules

Agrega las siguientes líneas justo antes de las reglas de filtro:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT
Save the file when you are finished. Then restart UFW with the following command:
ufw disable
ufw enable

Configurar el reenvío de puertos con UFW

Si deseas reenviar tráfico de una IP pública, por ejemplo. 150.129.148.155 puerto 80 y 443 a otro servidor interno con dirección IP 192.168.1.120. A continuación, puedes hacer esto editando /etc/default/before.rules:

# nano /etc/default/before.rules

Cambie el archivo como se muestra a continuación:

: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 

A continuación, reinicia UFW con el siguiente comando:

# ufw disable
# ufw enable

A continuación, también tendrás que permitir los puertos 80 y 443. Puedes hacerlo ejecutando el siguiente comando:

# 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
Etiquetas

Related Articles

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close