Cortafuegos UFW (Uncomplicated Firewall)

Cortafuegos UFW (Uncomplicated Firewall)

Ante la necesidad de instalar un cortaguegos en una instalación Linux, una buena opción es UFW (Uncomplicated Firewall) que es fácil de instalar, configurar y mantener.

Podemos describirlo como una herramienta de configuración de cortafuegos para Linux, diseñada para simplificar la configuración de iptables.

Esta es una guía rápida de sus comandos y la descripción de los mismos que cubren las funcionalidades básicas y avanzadas de UFW, permitiendo una gestión sencilla y efectiva del cortafuegos en sistemas Linux.

Instalación y Configuración Básica

Instalar UFW

Este comando instala UFW en un sistema basado en Debian/Ubuntu.

sudo apt install ufw

Habilitar UFW

Habilita UFW y comienza a aplicar las reglas de firewall.

sudo ufw enable

Deshabilitar UFW

Deshabilita UFW y detiene la aplicación de las reglas de firewall.

sudo ufw disable

Reiniciar UFW

Recarga las reglas de UFW sin deshabilitar el firewall.

sudo ufw reload

Reestablecer UFW

Restablece UFW a su configuración predeterminada, deshabilitando el firewall y eliminando todas las reglas.

sudo ufw reset

Gestión de reglas

Comprobar estado de UFW

Muestra el estado actual de UFW (habilitado o deshabilitado) y las reglas activas.

sudo ufw status

Muestra el estado con más detalle.

sudo ufw status verbose

Añadir o permitir un puerto en UFW

Permite el tráfico entrante en el puerto especificado.

sudo ufw allow 22   # permite SSH en el puerto 22

Denegar un puerto en UFW

Niega el tráfico entrante en el puerto especificado.

sudo ufw deny 22  # impide SSH en el puerto 22

Eliminar una regla (puerto) en UFW

Elimina la regla que permite el puerto especificado.

sudo ufw delete allow 22   # Elimina la regla que permitía ssh sobre el puerto 22

Elimina la regla que deniega el puerto especificado.

sudo ufw delete deny 22  # Elimina la regla que impedía tráfico ssh en el puerto 22

Tipos de Reglas y Servicios

Permitir un servicio en UFW

Permite el tráfico para un servicio conocido y previamente definido en /etc/services.

sudo ufw allow ssh  # equivalente a sudo ufw allow 22

Denegar un servicio en UFW

Niega el tráfico para un servicio conocido.

sudo ufw deny ftp   # equivalente a sudo ufw deny 21

Reglas avanzadas

Permitir un rango de puertos en UFW

Permite el tráfico en un rango de puertos especificado.

sudo ufw allow 1000:2000/tcp  # permite el tráfico TCP en los puertos del 1000 al 2000

Denegar un rango de puertos en UFW

Niega el tráfico en un rango de puertos especificado.

sudo ufw deny 1000:2000/udp  # niega el tráfico UDP en los puertos del 1000 al 2000

Permitir tráfico desde una IP específica en UFW

Permite el tráfico entrante desde una dirección IP específica.

sudo ufw allow from 192.168.0.1

Denegar tráfico desde una IP espcífica en UFW

Niega el tráfico entrante desde una dirección IP específica.

sudo ufw deny from 192.168.0.1

Logging y Monitorización

En UFW, el logging es una funcionalidad que nos permite registrar eventos relacionados con el tráfico de red y las reglas del cortafuegos. Los niveles de logging determinan la cantidad de información que se va a registrar.

Habilitar logging en UFW

Activa el registro de eventos del firewall.

sudo ufw logging on

Deshabilitar logging en UFW

Desactiva el registro de eventos del firewall.

sudo ufw logging off

Establecer el nivel de logging

Configura el nivel de registro (off, low, medium, high, full).

sudo ufw logging <nivel>

Niveles de Logging en UFW

off (apagado):

  • No se registra ninguna información relacionada con UFW.
  • Ejemplo de uso: sudo ufw logging off

low (bajo):

  • Registra eventos básicos, como conexiones permitidas o denegadas.
  • Esta es la configuración predeterminada cuando se habilita el logging.
  • Ejemplo de uso: sudo ufw logging low

medium (medio):

  • Registra eventos adicionales comparado con el nivel low.
  • Incluye detalles adicionales sobre los paquetes permitidos o denegados.
  • Ejemplo de uso: sudo ufw logging medium

high (alto):

  • Registra eventos detallados, incluyendo información más específica sobre cada paquete.
  • Puede registrar intentos de conexión y más detalles sobre los paquetes permitidos o denegados.
  • Ejemplo de uso: sudo ufw logging high

full (completo):

  • Registra todos los eventos posibles relacionados con UFW.
  • Este nivel incluye toda la información disponible sobre cada evento y paquete.
  • Es útil para depuración y análisis detallado, pero puede generar una gran cantidad de registros.
  • Ejemplo de uso: sudo ufw logging full

Ubicación de los Registros

Los registros generados por UFW se almacenan en los archivos de logs del sistema. Generalmente, los registros se pueden encontrar en:

  • /var/log/ufw.log
  • /var/log/syslog
  • /var/log/kern.log

Podemos usar herramientas como tail, grep o less para visualizar y analizar los registros como en estos ejemplos.

tail -f /var/log/ufw.log
grep "UFW" /var/log/syslog
less /var/log/kern.log

Cuando establecer un nivel u otro

Elegir el nivel adecuado de logging depende del contexto y las necesidades específicas:

  • Producción: En entornos de producción, generalmente se usa low o medium para evitar la generación excesiva de logs mientras se mantiene una monitorización suficiente.
  • Depuración: Para solucionar problemas de red o analizar eventos específicos, high o full pueden proporcionar la información detallada necesaria.
  • Auditoría: En casos donde es importante mantener un registro completo de todos los eventos de red, full puede ser necesario, aunque se debe gestionar adecuadamente el almacenamiento de logs debido al volumen generado.

Configurar el nivel de logging apropiado es crucial para equilibrar la necesidad de información con el rendimiento y la gestión de recursos del sistema.

Otras operaciones con UFW

Mostrar las aplicaciones disponibles

Muestra una lista de aplicaciones con perfiles de UFW predefinidos.

sudo ufw app list

Mostrar detalles de una aplicación

Muestra detalles sobre una aplicación específica.

sudo ufw app info OpenSSH

Especificación de protocolos

Las reglas pueden especificar protocolos (tcp o udp).

sudo ufw allow 80/tcp
sudo ufw deny 53/udp

Las reglas pueden especificar direcciones y puertos de destino.

sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw deny from 192.168.1.100 to any port 23
Scroll al inicio