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:
sergioportillo@server1:~$ 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.
sergioportillo@server1:~$ 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.
sergioportillo@server1:~$ 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:
sergioportillo@server1:~$ 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.
sergioportillo@server1:~$ sudo ufw allow http Rules updated Rules updated (v6)
O indicando el puerto y el protocolo:
sergioportillo@server1:~$ 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:
sergioportillo@server1:~$ sudo ufw allow from 192.168.7.100 Rules updated
Para permitir el tráfico de la Subred 192.168.7.0/24
sergioportillo@server1:~$ 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 sergioportillo@server1:~$ 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 sergioportillo@server1:~$ 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:
sergioportillo@server1:~$ 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
sergioportillo@server1:~$ 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 sergioportillo@server1:~$ 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 sergioportillo@server1:~$ 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:
sergioportillo@server1:~$ 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:
sergioportillo@server1:~$ 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.
sergioportillo@server1:~$ 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.
sergioportillo@server1:~$ 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
- Como mostrar los directorios en forma de árbol en Linux
- Linux: Como copiar o mover carpetas y ficheros por consola
- Linux: Error EFI\BOOT\mmx64.efi not found en Ubuntu 18.04.3 LTS
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.