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.
Qué es UFW
UFW nos brinda un marco de acción mucho más simple de uso para administrar netfilter y cuenta con una interfaz de línea de comandos para trabajar con el firewall de Linux, de allí su nombre (Uncomplicated Firewall).
Una vez instalado UFW, podemos ejecutar la siguiente línea para validar el estado actual del firewall.
2. 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.
En caso de desear deshabilitar UFW vamos a ejecutar el siguiente comando el cual le impide sea iniciado desde el arranque:
3. 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:
Si deseamos obtener más información sobre un perfil especifico y las reglas definidas para este, vamos a usar el siguiente comando:
- sudo ufw app info ‘Apache’
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
Allí debemos asegurarnos que la fila IPV6 este con el valor yes así:
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:
En caso de usar un puerto SSH personalizado, este se debe abrir en el firewall UFW con el siguiente comando:
Si deseamos bloquear una conexión SSH podemos ejecutar lo siguiente:
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:
Ahora podremos eliminar la regla usando la siguiente sintaxis:
Paso 2
La segunda opción es eliminar una regla mediante el uso de la regla real, por ejemplo:
- sudo ufw delete allow 22/tcp
Reglas UFW de Dry Run
Será posible ejecutar cualquier comando UFW sin realizar ningún cambio en el servidor de seguridad del sistema usando el indicador — dry-run, con esto se despliegan los cambios que deberían ocurrir:
- sudo ufw — dry-run enable
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
Las reglas de estos archivos se calculan antes de las reglas que son añadidas a través del comando UFW
Las reglas en estos archivos se calculan después de las reglas agregadas usando el comando UFW
Hace referencia a las variables optimizables de red del kernel
Permite definir si UFW está habilitado en el inicio y configura el LOGLEVEL
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.
Fuente: https://medium.com/@klvst3r/c%C3%B3mo-configurar-ufw-en-ubuntu-18-o-debian-67dab8c72170