Debian es UFW (Uncomplicated Firewall)

De Base de conocimiento
Revisión del 22:20 24 abr 2019 de Oscar (discusión | contribs.) (Página creada con «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 sid...»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

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
  1. Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
  2. accepted). You will need to 'disable' and then 'enable' the firewall for
  3. the changes to take affect.

IPV6=yes

  1. Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if
  2. you change this you will most likely want to adjust your rules.

DEFAULT_INPUT_POLICY="DROP"

  1. Set the default output policy to ACCEPT, DROP, or REJECT. Please note that if
  2. you change this you will most likely want to adjust your rules.

DEFAULT_OUTPUT_POLICY="ACCEPT"

  1. Set the default forward policy to ACCEPT, DROP or REJECT. Please note that
  2. if you change this you will most likely want to adjust your rules

DEFAULT_FORWARD_POLICY="ACCEPT"

  1. Set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please
  2. note that setting this to ACCEPT may be a security risk. See 'man ufw' for
  3. details

DEFAULT_APPLICATION_POLICY="SKIP"

  1. By default, ufw only touches its own chains. Set this to 'yes' to have ufw
  2. manage the built-in chains too. Warning: setting this to 'yes' will break
  3. non-ufw managed firewall rules

MANAGE_BUILTINS=no

  1. IPT backend
  2. only enable if using iptables backend

IPT_SYSCTL=/etc/ufw/sysctl.conf

  1. Extra connection tracking modules to load. Complete list can be found in
  2. net/netfilter/Kconfig of your kernel source. Some common modules:
  3. nf_conntrack_irc, nf_nat_irc: DCC (Direct Client to Client) support
  4. nf_conntrack_netbios_ns: NetBIOS (samba) client support
  5. nf_conntrack_pptp, nf_nat_pptp: PPTP over stateful firewall/NAT
  6. nf_conntrack_ftp, nf_nat_ftp: active FTP support
  7. 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.