Configurar Firewall de Ubuntu mediante UFW

En esta entrada vamos a ver como configurar el Firewall de Ubuntu mediante UFW. Os indicaré los distintos comandos a utilizar para que podáis administrar vuestro Firewall fácilmente.

Habilitar y Deshabilitar el Firewall

Por defecto en Ubuntu el Firewall viene deshabilitado pero antes de habilitarlo es importante (sobre todo si os conectáis mediante SSH) que creéis una regla para permitir el acceso al puerto 22/tcp (o el que utilicéis si lo habéis cambiado siguiendo las buenas prácticas de seguridad) ya que sino os quedareis sin acceso al servidor.

Habilitar Firewall

Primero creamos una regla que permita el tráfico en el puerto 22/tcp:

[email protected]:~$ sudo ufw allow 22/tcp
Rules updated
Rules updated (v6)

Una vez permitido el puerto que utilizamos para conectar por SSH al servidor vamos a activar el Firewall.

[email protected]:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Con el siguiente comando podemos comprobar que efectivamente el Firewall se encuentra activo y permite conexiones al puerto 22/tcp.

[email protected]:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

Deshabilitar Firewall

Si en cambio por algún motivo necesitamos deshabilitar el Firewall lo haremos de la siguiente forma:

[email protected]:~$ sudo ufw disable
Firewall stopped and disabled on system startup

Apertura de puertos

Para abrir puertos en nuestro Firewall y permitir el tráfico tenemos 2 formas de hacerlo:

O poniendo el nombre del servicio que queremos permitir, por ejemplo, vamos a permitir todo el tráfico http.

[email protected]:~$ sudo ufw allow http
Rules updated
Rules updated (v6)

O indicando el puerto y el protocolo:

[email protected]:~$ sudo ufw allow 80/tcp
Rules updated
Rules updated (v6)

Permitir o bloquear todo el tráfico proveniente de una IP o Subred

Permitir tráfico

Para permitir todo el tráfico proveniente de una IP concreta:

[email protected]:~$ sudo ufw allow from 192.168.7.100
Rules updated

Para permitir el tráfico de la Subred 192.168.7.0/24

[email protected]:~$ sudo ufw allow from 192.168.7.0/24
Rules updated

Si en vez de permitir todo el tráfico a una IP o Subred queremos permitir el tráfico pero a un puerto específico el comando sería:

Ejemplo que permite el tráfico por el puerto 8080 proveniente de la IP 192.168.7.100
[email protected]:~$ sudo ufw allow from 192.168.7.100 to any proto tcp port 8080
Rules updated

Ejemplo que permite el tráfico por el puerto 8080 proveniente de la Subred 192.168.7.0/24
[email protected]:~$ sudo ufw allow from 192.168.7.0/24 to any proto tcp port 8080
Rules updated

Bloquear tráfico

Para bloquear todo el tráfico proveniente de una IP concreta:

[email protected]:~$ sudo ufw deny from 192.168.7.100 to any
Rules updated

Para bloquear todo el tráfico de la Subred 192.168.7.0/24

[email protected]:~$ sudo ufw deny from 192.168.7.0/24
Rules updated

Al igual que vimos antes si en vez de denegar todo el tráfico a una IP o Subred queremos sólo denegar el tráfico de un puerto específico el comando sería:

Ejemplo que deniega el tráfico por el puerto 8080 proveniente de la IP 192.168.7.100
[email protected]:~$ sudo ufw deny from 192.168.7.100 to any proto tcp port 8080
Rules updated

Ejemplo que deniega el tráfico por el puerto 8080 proveniente de la Subred 192.168.7.0/24
[email protected]:~$ sudo ufw deny from 192.168.7.0/24 to any proto tcp port 8080
Rules updated

Eliminar reglas de Firewall

Si necesitamos eliminar alguna regla de Firewall bien porque nos hayamos equivocado o porque simplemente ya no nos haga falta lo primero que haremos será ver las reglas que tenemos aplicadas actualmente:

[email protected]:~$ sudo ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow from 192.168.7.100
ufw allow from 192.168.7.0/24
ufw allow from 192.168.7.100 to any port 8080 proto tcp
ufw allow from 192.168.7.0/24 to any port 8080 proto tcp

Una vez sabemos las reglas que tenemos si por ejemplo queremos eliminar la regla que permite el tráfico desde la IP 192.168.7.100 al puerto 8080/tcp lo haríamos de la siguiente forma:

[email protected]:~$ sudo ufw delete allow from 192.168.7.100 to any port 8080 proto tcp
Rules updated

Y con el mismo comando que utilizamos antes podremos comprobar que efectivamente la regla se ha eliminado.

[email protected]:~$ sudo ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow from 192.168.7.100
ufw allow from 192.168.7.0/24
ufw allow from 192.168.7.0/24 to any port 8080 proto tcp

Resetear Firewall

Si por algún motivo queréis eliminar todas las reglas creadas y empezar de cero podéis resetear el Firewall mediante el siguiente comando:

Nota: Nos os preocupéis por la regla que creamos al principio para permitir el puerto SSH ya que al resetearlo el Firewall vuelve a su estado original que si recordáis era deshabilitado.

[email protected]:~$ sudo ufw reset
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20201008_145410'
Backing up 'before.rules' to '/etc/ufw/before.rules.20201008_145410'
Backing up 'after.rules' to '/etc/ufw/after.rules.20201008_145410'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20201008_145410'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20201008_145410'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20201008_145410'

Y listo con estos comandos ya podréis administrar de forma fácil el Firewall de vuestro servidor Ubuntu.

Espero os haya sido de utilidad.

Entradas relacionadas

Deja un comentario