Primeros pasos con UFW (cortafuegos sin complicaciones) en Ubuntu 20.04

UFW o cortafuegos sin complicaciones es una aplicación para administrar un firewall basado en iptables en Ubuntu. UFW es la herramienta de configuración de firewall predeterminada para Ubuntu Linux y proporciona una forma fácil de configurar el firewall, el comando UFW es como el idioma inglés, por lo que los comandos son fáciles de recordar. El cortafuegos UFW es compatible con IPv4 e IPv6.
UFW proporciona también una aplicación GUI, si usa un escritorio GNOME puede instalar carambao si usa un escritorio KDE puede instalar kcm-ufw.
requisitos previos
- Versión de Ubuntu entre 15.04 y 21.04. Las versiones más nuevas de Ubuntu también deberían funcionar.
- privilegios de root
¿Qué se cubre en este tutorial?
- Instalación de UFW.
- La sintaxis básica del comando UFW.
- El comando Permitir y Denegar UFW.
- Comandos UFW avanzados.
- Eliminación de una regla en UFW.
- Deshabilitar y restablecer UFW.
Instalación de UFW
De forma predeterminada, UFW ya debería estar instalado en ubuntu 20.04. Puedes probar esto con el comando:
which ufw
Si no devuelve la ruta al comando, instale UFW con el siguiente comando apt:
sudo apt-get install ufw
Para los siguientes comandos, use sudo o privilegios de root. Puede convertirse en usuario root con el comando:
sudo -s
Luego ejecute el siguiente comando para habilitar UFW:
ufw enable
Resultado:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
The Basic UFW Command
The «ufw enable» command will turn on UFW with the default the rules. You can verify that UFW is running by issuing this command:
ufw status verbose
Resultado:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Si desea deshabilitar o apagar UFW, puede usar:
ufw disable
Resultado:
Firewall stopped and disabled on system startup
El comando Permitir y Denegar UFW
1. Comando Permitir UFW
UFW negará todas las conexiones entrantes después de que lo encienda. Entonces, lo primero que debe hacer es permitir el acceso SSH para el servidor si desea administrar el sistema de forma remota. El comando «ufw allow sshport» permite el acceso por SSH, reemplace SSHPORT con el puerto del servicio SSH, el puerto SSH predeterminado es 22.
ufw allow 22
Resultado:
Rules updated Rules updated (v6) #For IPv6
Si desea permitir conexiones entrantes en el puerto 22 solo para TCP, agregue al final del comando «/tcp» como se muestra en el siguiente ejemplo.
ufw allow 22/tcp
Cuando el servicio al que desea permitir el acceso está escuchando en su puerto predeterminado, puede usar el nombre del servicio en lugar del número de puerto. Esto hace que sea más fácil abrir el puerto, ya que es posible que no lo conozca. UFW buscará el número de puerto correcto en /etc/services por usted.
Este comando abrirá el puerto SSH predeterminado:
ufw allow ssh
Ahora verifique la regla con: Publicidad
ufw status
2. Comando de denegación de UFW
El comando «denegar» funciona de manera similar al comando «permitir» y se usa para cerrar un puerto en el firewall:
Denegar con opción de puerto:
ufw deny 80
Resultado:
Rule added Rule added (v6)
Ejemplo de «denegar» con nombre de servicio. En este ejemplo, bloquearé el puerto http/80:
ufw deny http
Nota:
Puede ver todos los puertos y sus nombres de servicio en el archivo «/etc/servicios».
Comandos UFW avanzados
Ahora profundizaremos en la sintaxis del comando UFW, aprenderemos cómo permitir rangos parciales (por ejemplo, para los puertos pasivos de FTP y cómo permitir el acceso desde una sola IP o subred).
1. Permitir un rango de puertos
Puede permitir una variedad de puertos en UFW. Algunos servicios como FTP o IRC utilizan una variedad de puertos para comunicarse con sus clientes.
Para este ejemplo, permitiremos el rango de puertos que usa ircd en mi servidor, el rango es el puerto 6660 a 6670:
sudo ufw allow 6660:6670/tcp sudo ufw allow 6660:6670/udp
El comando permitirá conexiones a los puertos 6660-6670 a través del protocolo TCP y UDP.
2. Permitir una dirección IP específicaAnuncio publicitario
Y puede agregar una IP específica para permitir el acceso a todos los servicios agregando la opción «desde». Esto es útil, por ejemplo, si tiene una IP estática en casa o en la oficina y desea permitir el acceso a todos los servicios en su servidor desde allí. El siguiente comando permitirá que la IP 192.168.1.106 acceda a todos los puertos del servidor:
ufw allow from 192.168.1.106
Resultado:
Rule added
3. Permitir subred
Si desea permitir todas las direcciones IP en su subred, puede agregar la subred IP (rango de direcciones IP) al comando UFW de esta manera:
ufw allow from 192.168.1.1/24
Resultado:
WARN: Rule changed after normalization Rule added
4. Permitir el acceso desde una dirección IP específica a un puerto
Si desea permitir el acceso a un puerto solo desde una IP específica, puede combinar los comandos UFW que aprendimos anteriormente.
Por ejemplo, solo la IP 192.168.1.106 puede acceder al puerto ssh 22 tcp y otras IP serán rechazadas desde ese puerto, puede usar el siguiente comando:
ufw allow from 192.168.1.106 proto tcp to any port 22
Resultado:
Rule added
5. Permitir todo el tráfico entrante a un puerto específico
Si desea permitir todo el tráfico en el puerto 80, puede usar este comando:
ufw allow to any port 80
Eliminación de una regla de firewall de UFW
En esta sección aprenderá a Eliminar una regla que está guardada en UFW. Puede usar el comando «eliminar» para eliminar la regla ufw. Escriba el comando «ufw delete» seguido de la opción que desea eliminar, permitir o denegar.
Aquí hay unos ejemplos:
Eliminando la regla de permitir SSH con el nombre del servicio:
ufw delete allow ssh
Resultado:
Rule deleted Rule deleted (v6)
Ese comando eliminará la regla «permitir ssh». tenga cuidado, no se quede fuera del servidor.
Elimine la regla «denegar» en el puerto 80:
ufw delete deny 80
Resultado:
Rule deleted Rule deleted (v6)
Si tiene una regla compleja, hay una forma sencilla de identificar y eliminar la regla por su ID de regla. Ejecute el siguiente comando para obtener una lista de todas las reglas con sus ID:
ufw status numbered
Resultado:
Status: active
To Action From
— —— —-
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
Ahora elimine la regla SSH para IPv6 solo usando el número de la regla:
ufw delete 2
Desactivar y restablecer UFW
Si desea desactivar UFW sin eliminar sus reglas, puede usar el comando «deshabilitar»:
ufw disable
Resultado:
Firewall stopped and disabled on system startup
Si desea desactivar UFW por completo y eliminar todas las reglas, puede usar el comando «restablecer»:
ufw reset
Resultado:
Resetting all rules to installed defaults. This may disrupt existing ssh connections. Proceed with operation (y|n)? y Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351' Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351' Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351' Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351' Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351' Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'
Conclusión
UFW (Cortafuegos sin complicaciones) es la herramienta de configuración de cortafuegos predeterminada en Ubuntu. Los comandos UFW son similares al idioma inglés, esto los hace fáciles de usar y recordar. Este tutorial de UFW es una guía para comenzar con esta buena herramienta de firewall. Si desea obtener más información sobre UFW, puede ir a la wiki de ubuntu o ufw-manpage.