Debian es UFW (Uncomplicated Firewall)
Cómo configurar UFW en Ubuntu 18 o Debian.
La herramienta de configuración de firewall predeterminada para Ubuntu y Debian es UFW (Uncomplicated Firewall) la cual ha sido desarrollada con el fin de simplificar la gestión de la configuración del firewall de iptables, ya que UFW proporciona un método sencillo de uso para crear reglas de firewall basadas en host IPv4 o IPv6. Por defecto, UFW está desactivado. A través de este tutorial aprenderemos un poco más sobre UFW y como realizar su proceso de configuración en Ubuntu o Debian.
Cómo instalar UFW en Debian Y Ubuntu
Este firewall debe estar instalado por defecto en Ubuntu y Debian pero en caso de no ser así podemos instalarlo haciendo uso del administrador de paquetes APT así:
sudo apt install ufw
Una vez instalado UFW, podemos ejecutar la siguiente línea para validar el estado actual del firewall.
sudo ufw status verbose
Cómo habilitar UFW en Linux
Para llevar a cabo el proceso de activación de UFW, vamos a ejecutar el siguiente comando el cual carga el firewall y le permite iniciarse al arrancar el sistema.
sudo ufw enable
En caso de desear deshabilitar UFW vamos a ejecutar el siguiente comando el cual le impide sea iniciado desde el arranque:
sudo ufw disable
Políticas por defecto en UFW Linux
Cuando activamos UFW, se utiliza un conjunto predeterminado de reglas, o perfiles, que son adecuadas para un usuario doméstico mas no para temas de mayor importancia.
Por defecto, el firewall UFW tiene reglas para negar todas las conexiones entrantes y solo permite todas las conexiones salientes al servidor, de este modo, nadie puede acceder al servidor y todos los servicios o aplicaciones en ejecución en Ubuntu o Debian pueden acceder a la red externa sin problema.
Estas reglas por defecto de UFW las encontramos en la ruta /etc/default/ufw y las podremos editar con el siguiente comando:
sudo ufw default deny incoming sudo ufw default allow outgoing
4. Cómo ver perfiles para aplicaciones en UFW Linux
Al instalar cualquier paquete de software a través del administrador de paquetes APT, se incluye un perfil de aplicación en el directorio /etc/ufw/applications.d el cual define el servicio y mantiene la configuración de UFW activa.
Sera posible enumerar todos los perfiles de aplicaciones disponibles en Ubuntu o Debian utilizando el siguiente comando:
sudo ufw app list
Sale por pantall los sguientes datos.
Available applications: Apache Apache Full Apache Secure OpenSSH Samba
Este resultado depende de las instalaciones de paquetes de software en el sistema.
Si deseamos obtener más información sobre un perfil especifico y las reglas definidas para este, vamos a usar el siguiente comando:
Sale por pantalla los sguientes datos.
sudo ufw app info "Apache"
Profile: Apache Title: Web Server Description: Apache v2 is the next generation of the omnipresent Apache web server.
Port: 80/tcp
Allí encontramos toda la información sobre esa aplicación en especial. 5. Cómo habilitar IPv6 en UFW Linux
Si Ubuntu o Debian está configurado con IPv6, será necesario validar que UFW esté configurado con soporte IPv6 e IPv4. Para verificar esto, vamos a abrir el archivo de configuración de UFW con algún editor así.
sudo nano /etc/default/ufw
# /etc/default/ufw
- Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
- accepted). You will need to 'disable' and then 'enable' the firewall for
- the changes to take affect.
IPV6=yes
- Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if
- you change this you will most likely want to adjust your rules.
DEFAULT_INPUT_POLICY="DROP"
- Set the default output policy to ACCEPT, DROP, or REJECT. Please note that if
- you change this you will most likely want to adjust your rules.
DEFAULT_OUTPUT_POLICY="ACCEPT"
- Set the default forward policy to ACCEPT, DROP or REJECT. Please note that
- if you change this you will most likely want to adjust your rules
DEFAULT_FORWARD_POLICY="ACCEPT"
- Set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please
- note that setting this to ACCEPT may be a security risk. See 'man ufw' for
- details
DEFAULT_APPLICATION_POLICY="SKIP"
- By default, ufw only touches its own chains. Set this to 'yes' to have ufw
- manage the built-in chains too. Warning: setting this to 'yes' will break
- non-ufw managed firewall rules
MANAGE_BUILTINS=no
- IPT backend
- only enable if using iptables backend
IPT_SYSCTL=/etc/ufw/sysctl.conf
- Extra connection tracking modules to load. Complete list can be found in
- net/netfilter/Kconfig of your kernel source. Some common modules:
- nf_conntrack_irc, nf_nat_irc: DCC (Direct Client to Client) support
- nf_conntrack_netbios_ns: NetBIOS (samba) client support
- nf_conntrack_pptp, nf_nat_pptp: PPTP over stateful firewall/NAT
- nf_conntrack_ftp, nf_nat_ftp: active FTP support
- nf_conntrack_tftp, nf_nat_tftp: TFTP support (server side)
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"
Allí debemos asegurarnos que la fila IPV6 este con el valor yes así:
IPV6=yes
En caso de realizar algún cambio, guardamos estos usando las teclas Ctrl + O y salimos del editor usando Ctrl + X. Ahora, vamos a reiniciar el firewall ejecutando:
sudo ufw disable sudo ufw enable
6. Cómo permitir conexiones SSH en UFW Linux
Recordemos que al activar el firewall UFW, se bloquearán todas las conexiones entrantes y, en caso de estar conectados al servidor a través de SSH desde una ubicación remota, no será posible establecer la conexión.
Para ello será necesario habilitar las conexiones SSH para evitar errores y esto lo logramos ejecutando el siguiente comando:
sudo ufw allow ssh
Sale por pantalla los sguientes datos
Rule added Rule added (v6)
En caso de usar un puerto SSH personalizado, este se debe abrir en el firewall UFW con el siguiente comando:
sudo ufw allow 2220/tcp
Si deseamos bloquear una conexión SSH podemos ejecutar lo siguiente:
sudo ufw deny ssh/tcp
7. Cómo habilitar puertos específicos en UFW Linux
Con UFW también será posible abrir un puerto específico con el objetivo de permitir las conexiones a un determinado servicio a través de él, por ejemplo, si se necesita configurar un servidor web para escuchar en los puertos 80 (HTTP) y 443 (HTTPS) de forma predeterminada, ejecutaremos lo siguiente según sea el caso:
Permitir puerto 80
sudo ufw allow http(Por nombre de servicio) sudo ufw allow 80/tcp(Por número de puerto) sudo ufw allow ‘Apache’(Por perfil de aplicación)
Permitir puerto 443
sudo ufw allow http sudo ufw allow 443/tcp sudo ufw allow ‘Apache Secure’
Permitir un rango de puertos en UFW
En algunas ocasiones podemos contar con aplicaciones que harán uso de un tango especifico de puertos que deben ser autorizados en UFW, para activar un rango de puertos vamos a ejecutar lo siguiente:
sudo ufw allow 6000:6003/tcp sudo ufw allow 6000:6003/udp
Permitir una dirección IP
UFW nos da la opción de permitir el acceso de una sola dirección IP al sistema, para ello debemos ejecutar lo siguiente:
sudo ufw allow from 192.168.0.19
Ahora, si deseamos habilitar el uso de una dirección IP en un puerto especifico vamos a ejecutar lo siguiente:
sudo ufw allow from 192.168.0.19 to any port 22
Permitir el acceso a subredes en un puerto específico
UFW nos da la opción de permitir conexiones para direcciones IP particulares que van desde un rango como 192.168.0.1 a 192.168.0.254 al puerto 22 (SSH), para ello ejecutamos el siguiente comando:
sudo ufw allow from 192.168.0.0/24 to any port 22
Especificar una interfaz de red
Al igual que los métodos anteriores, UFW nos permite activar el uso de una interfaz de red específica, para ello ejecutamos lo siguiente:
sudo ufw allow in on eth3 to any port 22
Denegar conexiones en UFW
Por defecto, todas las conexiones entrantes en UFW están bloqueadas, a no ser que se haya abierto específicamente la conexión en UFW, en este caso hemos abierto los puertos 80 y 443. Ahora, si nuestro servidor esta siendo afectado por una dirección IP 11.12.13.0/24, podemos ejecutar lo siguiente para impedir que esa red tenga acceso a Ubuntu o Debian:
sudo ufw deny from 11.12.13.0/24 to any port 80 sudo ufw deny from 11.12.13.0/24 to any port 443
8. Cómo borrar reglas en UFW Linux
Contamos con 2 opciones para eliminar las reglas UFW, por número de regla y por regla real.
Paso 1
Para eliminar las reglas de UFW haciendo uso del número de regla, primero debemos enumerar las reglas por números con el siguiente comando:
sudo ufw status numbered
Ahora podremos eliminar la regla usando la siguiente sintaxis:
sudo ufw delete
9. Funciones avanzadas de UFW
Algunas de las rutas donde UFW aloja su configuración con:
Allí se encuentra la configuración principal para las políticas predeterminadas, la compatibilidad con IPv6 y los módulos kernel
/etc/default/ufw
Las reglas de estos archivos se calculan antes de las reglas que son añadidas a través del comando UFW
/etc/ufw/before[6].rules
Las reglas en estos archivos se calculan después de las reglas agregadas usando el comando UFW
/etc/ufw/after[6].rules
Hace referencia a las variables optimizables de red del kernel
/etc/ufw/sysctl.conf
Permite definir si UFW está habilitado en el inicio y configura el LOGLEVEL
/etc/ufw/ufw.conf
UFW es una herramienta practica y completa para gestionar cientos de valores de seguridad en Ubuntu y Debian de forma práctica y totalmente simple.