GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ejemplo de uso del cortafuegos UFW en Debian/Ubuntu

Introducción:
Acabo de empezar a usar el cortafuegos UFW, que es un cortafuegos basado en comandos de terminal. La herramienta parecía un poco difícil de entender al principio, pero con un poco de intentos y errores finalmente conseguí que algo funcionara. Así que esto es lo que hice.

Instalo el cortafuegos UFW:
apt-get install ufw

Suposición:
Quiero las siguientes condiciones:
Lista de puertos para permitir desde LAN interna (192.168.100.0/24):TODOS
Lista de puertos para permitir desde localhost (127.0.0.0/16):TODOS
Lista de puertos para permitir acceso a Internet:TODOS
Lista de puertos para permitir acceso desde Internet:
ssh:22
FTP:21, 20, 20000-20099 (usado por ftp puro)
HTTP:80
HTTPS:443
Gerrit:2222

Resultado:a excepción de los puertos anteriores, todos los demás puertos deben estar bloqueados de Internet.

Comandos UFW para configurar el cortafuegos anterior:

ufw allow from 192.168.100.0/24
ufw allow from 127.0.0.0/16
ufw allow from any to any port 22
ufw allow from any to any port 21
ufw allow 20000:20099/tcp
ufw allow from any to any port 80
ufw allow from any to any port 443
ufw allow from any to any port 2222

Nota: Arriba no hay reglas para dejar todos los paquetes de aplicaciones a Internet. La razón es que el comportamiento predeterminado de este cortafuegos es que permite que todas las aplicaciones envíen cualquier cosa a Internet.
Se puede verificar después de habilitar el cortafuegos UFW emitiendo el siguiente comando:
iptables -L -n -v | grep 'Chain OUTPUT'
Resultado:
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
Configuración de las políticas predeterminadas
Esto se explica por sí mismo.
ufw default deny incoming
ufw default allow outgoing

¡El cortafuegos aún no está activo!
ADVERTENCIA: En caso de que esté configurando este firewall a través de una conexión SSH, asegúrese de que el siguiente comando se haya incluido en los anteriores. Si este no es el caso, tan pronto como active el firewall, se le bloqueará el acceso al servidor y no tendrá ningún acceso SSH. Malas noticias 🙁
ufw allow from any to any port 22
Para comprobar los añadidos reglas antes habilitamos el firewall:
ufw show added
Ahora activamos el firewall con el comando:
ufw enable
Vemos la configuración de UFW emitiendo el comando:
ufw status numbered
Debería obtener el siguiente resultado:
Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20000:20099/tcp ALLOW IN Anywhere
[ 6] 80 ALLOW IN Anywhere
[ 7] 443 ALLOW IN Anywhere
[ 8] 2222 ALLOW IN Anywhere
[ 9] 22 ALLOW IN Anywhere (v6)
[10] 21 ALLOW IN Anywhere (v6)
[11] 20000:20099/tcp ALLOW IN Anywhere (v6)
[12] 80 ALLOW IN Anywhere (v6)
[13] 443 ALLOW IN Anywhere (v6)
[14] 2222 ALLOW IN Anywhere (v6)

Si necesita reiniciar de nuevo, ejecute lo siguiente:
ufw disable
ufw reset

Si necesita eliminar algunas reglas, por ejemplo, las reglas sobre el puerto 2222:(regla 8 y 14), eliminamos las reglas usando su número de regla, comenzando por la última a eliminar en la lista. La lógica es que si comienza con la primera, los números de la regla cambiarán después de la primera eliminación y la última en eliminar no será la regla 14 sino la regla 13, etc.
Ejemplo:
ufw delete 14
ufw delete 8

Si necesita insertar una regla encima de una existente, utilice el número de regla que debe aparecer después de la nueva. Por ejemplo si queremos agregar la regla de denegar el puerto 20005 desde Internet.
Nota. Aquí no tiene sentido (no es práctico) sino solo como un ejemplo. Insertaría la nueva regla "denegar" antes de la regla 11. Aquí está el comando:
ufw insert 11 deny 20005
Veamos el resultado:
ufw status numbered
Resultado:
Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20005 DENY IN Anywhere
[ 6] 20000:20099/tcp ALLOW IN Anywhere
[ 7] 80 ALLOW IN Anywhere
[ 8] 443 ALLOW IN Anywhere
[ 9] 2222 ALLOW IN Anywhere
[10] 22 ALLOW IN Anywhere (v6)
[11] 21 ALLOW IN Anywhere (v6)
[12] 20005 DENY IN Anywhere (v6)
[13] 20000:20099/tcp ALLOW IN Anywhere (v6)
[14] 80 ALLOW IN Anywhere (v6)
[15] 443 ALLOW IN Anywhere (v6)
[16] 2222 ALLOW IN Anywhere (v6)

Como puede ver, UFW fue lo suficientemente inteligente como para insertar la regla para IPv4 e IPv6 en las posiciones adecuadas.

Nota para reiniciar:
Cada vez que el firewall UFW está 'habilitado' y se reinicia, todas las reglas que ya están guardadas en:/lib/ufw/user.rules
/lib/ufw/user6.rules

O en:
/etc/ufw/user.rules
/etc/ufw/user6.rules

se reactivará al reiniciar.
ADVERTENCIA:No intente cambiar estos archivos anteriores porque algún organismo de control se asegura de que no se modifique y volverá automáticamente a la versión preeditada.;-(. Utilice el comando UFW para realizar cambios en el cortafuegos.

Uso de UFW en Xen DOM0:
Tuve algunos problemas con el uso de UFW en XEN DOM0 porque, como comportamiento predeterminado, UFW bloquea el reenvío de paquetes a las DOMU.
Para remediarlo, edite el archivo /etc/default/ufw y cambie el siguientes ajustes para ACEPTAR:
DEFAULT_FORWARD_POLICY="ACCEPT"
Esto protegería DOM0 únicamente y reenviaría el resto del tráfico a las DOMU, dejando que cada DOMU se protegiera a sí misma.
Luego reinicie UFW de la siguiente manera:
ufw disable
ufw enable

Para más información sobre el tema recomiendo el siguiente enlace:
https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu- y-debian-cloud-server

Registro

El registro de UFW se realiza de forma estándar en /var/log/syslog . Para deshabilitar este registro, haga lo siguiente:
– Edite el archivo:/etc/rsyslog.d/20-ufw.conf (vea el contenido a continuación), elimine el '#' que comienza en la última línea y ejecute los siguientes comandos para actualizar los cambios en el firewall:
ufw disable
ufw enable

Contenido de /etc/rsyslog.d/20-ufw.conf :
# Log kernel generated UFW log messages to file
:msg,contains,"[UFW " /var/log/ufw.log
#
# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
#& ~


Ubuntu
  1. Configuración de Firewall usando Iptables en Ubuntu 14.04

  2. Cómo configurar el cortafuegos UFW en Ubuntu 18.04

  3. Cómo abrir puertos en Ubuntu/Debian

  4. Configurar UFW Firewall en Ubuntu 18.04 - ¿El mejor método?

  5. Cómo configurar un firewall con UFW en Ubuntu 18.04

Cómo instalar el cortafuegos UFW en Ubuntu 16.04 LTS

Cómo configurar el cortafuegos UFW en Ubuntu 18.04 LTS

Cómo configurar el cortafuegos UFW en Ubuntu 20.04 LTS

Cómo configurar el cortafuegos con UFW en Ubuntu Linux

Ubuntu Firewall UFW:una guía completa

Cómo configurar el cortafuegos UFW en Ubuntu 20.04