Gestión del cortafuegos en Ubuntu con UFW

En el artículo de hoy vamos a hablar de UFW en Ubuntu 18.04. Se trata de una herramienta para configurar y trabajar con el cortafuegos de este popular sistema operativo GNU/Linux Tiene como fin facilitar el trabajo con las reglas iptables típicas de los sistemas UNIX y like-UNIX

Un poco más de información sobre UFW

El nombre de esta herramienta es un acrónimo de las siglas en inglés “Uncomplicated Firewall” , que como bien indica su nombre está pensado para ser fácil de usar o por lo menos esa es su intención. Como hemos dichos en el párrafo anterior utiliza las tablas iptables. Esta escrito Python.

Si nos interesa trabajar con la herramienta vía interfaz gráfica, podemos utilizar Gufw.

Trabajar con UFW en Ubuntu

Esta herramienta viene instalada por defecto en Ubuntu, pero deshabilitada, para comprobar si efectivamente la tenemos en ese estado, escribiremos:

1
2
davidochobits@hpenvyi7:~$ sudo ufw status
Estado: inactivo

Para activarlo solo debemos escribir lo siguiente:

1
2
3
4
davidochobits@hpenvyi7:~$ sudo ufw enable
El cortafuegos está activo y habilitado en el arranque del sistema
davidochobits@hpenvyi7:~$ sudo ufw status
Estado: activo

Cuando habilitamos ufw se utilizan un conjunto de reglas definidas en un perfil predeterminado, pensado para un usuario doméstico estándar. Estas reglas indican que se deniege todo el tráfico entrante exceptuando algunos servicios.

Confirmemos que esto es así, utilizando el modo “verbose” que nos dará más detalles:

1
2
3
4
5
davidochobits@hpenvyi7:~$ sudo ufw status verbose
Estado: activo
Acceso: on (low)
Predeterminado: deny (entrantes), allow (salientes), disabled (enrutados)
Perfiles nuevos: skip

Como hemos dicho se bloquea toda conexión entrante, excepto algunas. Para ver cuales son estas excepciones.

Utilizamos la herramienta más estos parámetros:

1
davidochobits@hpenvyi7:~$ sudo ufw show raw | less

También podemos consultar los ficheros ubicados en el directorio : “/etc/ufw”

Aceptar y denegar en UFW

Para aceptar conexiones entrantes, el formato sería:

1
sudo ufw allow /

Veamos algunos ejemplos:

1
2
3
davidochobits@hpenvyi7:/etc/ufw$ sudo ufw allow 161
Regla añadida
Regla añadida (v6)

De esta manera hemos abierto el puerto 161, tanto para tcp como para udp. Si queremos especificar el protocolo, sería como sigue:

1
2
3
davidochobits@hpenvyi7:/etc/ufw$ sudo ufw allow 161/udp
Regla añadida
Regla añadida (v6)

Recordar que este puerto es utilizado por el servicio SNMP, por ejemplo, para la herramienta gráfica Cacti, de la que ya hemos hablado.

En cambio para denegar conexiones entrantes, pero esta vez utilizando el parámetro “deny”, de esta manera:

1
2
3
davidochobits@hpenvyi7:/etc/ufw$ sudo ufw deny 161/udp
Regla actualizada
Regla actualizada (v6)

Para eliminar una regla establecida, utilizaremos el parámetro “delete”, más los parámetros que habíamos utilizado para dar de alta una regla, siguiendo con los ejemplos anteriores, sería así:

1
2
3
davidochobits@hpenvyi7:/etc/ufw$ sudo ufw delete deny 161/udp
Regla eliminada
Regla eliminada (v6)

Trabajar con servicios utilizando UFW

Una opción muy interesante es trabajar directamente con el nombre de un servicio que queramos aceptar o denegar en el cortafuegos. Para ello ufw trabaja con los servicios indicados en “/etc/services”

1
davidochobits@hpenvyi7:~$ less /etc/services

Imaginemos que habilitar el servicio SNMP, que hemos hablado antes.

Primero de todo el comando y parámetros se deben de utilizar como sigue:

1
sudo ufw allow

En el caso del servicio mencionado:

1
2
3
davidochobits@hpenvyi7:~$ sudo ufw allow snmp
Regla añadida
Regla añadida (v6)

Si en cambio queremos denegar el acceso:

1
sudo ufw deny snmp

Saber el estado de UFW

Si queremos saber el estado del cortafuegos gestionado con ufw, escribiremos:

1
2
3
4
5
6
7
davidochobits@hpenvyi7:~$ sudo ufw status
Estado: activo
 
Hasta                      Acción      Desde
-----                      ------      -----
161                        ALLOW       Anywhere                  
161 (v6)                   ALLOW       Anywhere (v6)

Opciones avanzadas con ufw

Hasta ahora hemos hablado de las opciones más utilizadas, a partir de aquí hablaremos de las opciones más avanzadas.

Si queremos habilitar el acceso a nuestro host desde una IP remota en concreto:

1
2
3
sudo ufw allow from 
#Por ejemplo
sudo ufw allow from 192.168.0.75

También podemos, aunque desde mi punto de vista no recomendable, habilitar el acceso a nuestro host desde toda una subnet:

1
sudo ufw allow from 192.168.0.0/24

O bien queremos habilitar el acceso a un puerto específico de nuestro host a toda una subnet.

La sintaxis sería:

1
sudo ufw allow from  to  port

En el ejemplo habilitamos el puerto 22 para toda nuestra red:

1
sudo ufw allow from 192.168.0.0/24 to any port 22

Para denegar el acceso solo tenemos que sustituir “allow” por “deny”

Conclusiones y opinión personal

Y esto es todo por hoy. ¿Hábeis trabajado alguna vez con esta herramienta? ¿Qué os parece?

Yo personalmente me parece más fácil de trabajar incluso más lógico, el sistema para systemd, que utilizo generalmente en sistemas Red Hat o Centos, llamado “firewalld” Pero para gustos colores, faltaría más.

Aunque está claro que este tipo de herramientas facilita y mucho la gestión de un cortafuegos, en vez de añadir las reglas de iptables “a pelo”

Nos vamos leyendo

Fuentes consultadas:

UFW – Community Help

Wikipedia – Uncomplicated Firewall

3 Respuestas

  1. David dice:

    Una preguntilla de profano en estos menesteres: para un entorno doméstico, piensas que sería suficiente con el firewall que proporciona el router que hace de gateway de la LAN o es recomendable tener activado un firewall dedicado en cada host?

    • Hola David,

      De hecho en las empresas que tienen un firewall en condiciones todos los hosts tienen el firewall deshabilitado. A nivel doméstico, depende del firewall que tengamos vale la pena o no tenerlo habilitado en los hosts.

      Saludos!!

      • David dice:

        Gracias por la respuesta tocayo! Yo tengo un router de los que suelen dar las compañias cuando te pones la fibra con ellos. He ido modificando algunas reglas en él en algunos experimentos que he hecho, y diría que funciona correctamente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: