UFW (Uncomplicated Firewall) es el cortafuegos (firewall) por defecto en Ubuntu. Se trata de una capa de abstracción a iptables, que pretende simplificar la gestión de reglas de filtrado y creación de un firewall básico. En los sistemas con entorno gráfico se dispone de una interfaz gráfica (Gufw) para usuarios menos expertos. Este artículo explica cómo listar y eliminar reglas de UFW forma sencilla en Ubuntu.

En anteriores artículos he explicado cómo borrar una regla de iptables, cómo crear un firewall simple con iptables, e incluso he publicado un tutorial básico de iptables con el objetivo de comprender su funcionamiento y reglas en pocos minutos.

Nunca voy a entender por qué tantos desarrolladores se empecinan en reinventar la rueda creando capas de abstracción que podan funcionalidades a herramientas existentes. Especialmente cuando se trata de iptables, pues sus reglas son simples e intuitivas. Sin embargo, a veces se debe trabajar sobre sistemas de clientes donde no es posible o factible optar por las mejores tecnologías, y uno debe trabajar con lo que tiene a su disposición. Por ello, en este artículo voy a demostrar cómo listar y eliminar reglas del firewall con UFW.

Para listar las reglas del firewall con UFW es posible utilizar el comando ufw status, opcionalmente agregando las directivas "verbose" o "numbered" para obtener mayor detalle:

root@ubuntu:/home/webadmin# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 3306/tcp                   ALLOW IN    Anywhere
[ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 3306/tcp (v6)              ALLOW IN    Anywhere (v6)

La opción "numbered" agrega el número de cada regla entre corchetes (similar a lo que ocurre cuando se utiliza iptables con la opción --line-numbers). Esto permite eliminar una regla por su número, en vez de tener que indicarla completamente.

En este ejemplo se desean borrar las reglas que permiten el acceso remoto al servidor MySQL (puerto 3306).

Para borrar una regla, utilizar el subcomando delete con la regla, o el número de regla, como parámetro:

root@ubuntu:/home/webadmin# ufw delete 3
Deleting:
 allow 3306/tcp
Proceed with operation (y|n)? y
Rule deleted

La regla que habilitaba el acceso al puerto 3306 a través de IPv4 ha desaparecido:

root@ubuntu:/home/webadmin# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 5] 3306/tcp (v6)              ALLOW IN    Anywhere (v6)

Se repite para el caso de IPv6:

root@ubuntu:/home/webadmin# ufw delete 5
Deleting:
 allow 3306/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)

Sólo es posible eliminar de a una regla por vez, dado que los número de regla cambian en cada borrado:

root@ubuntu:/home/webadmin# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 80/tcp (v6)                ALLOW IN    Anywhere (v6)

Esto se debe los números de regla no son más que el número de línea en la salida (idéntico a lo que ocurre al utilizar directamente iptables).

Referencias


Tal vez pueda interesarte


Compartí este artículo