Un firewall es una herramienta para monitorear y filtrar el tráfico de red entrante y saliente. Funciona definiendo un conjunto de reglas de seguridad que determinan si se permite o bloquea un tráfico específico.
Ubuntu se envía con una herramienta de configuración de cortafuegos llamada UFW (cortafuegos sin complicaciones). Es un front-end fácil de usar para administrar las reglas de firewall de iptables. Su objetivo principal es hacer que la administración del firewall sea más fácil o, como su nombre lo dice, sin complicaciones.
Este artículo describe cómo usar la herramienta UFW para configurar y administrar un firewall en Ubuntu 20.04. Un firewall correctamente configurado es uno de los aspectos más importantes de la seguridad general del sistema.
requisitos previos
Solo los usuarios root o con privilegios sudo pueden administrar el firewall del sistema. La mejor práctica es ejecutar tareas administrativas como usuario sudo.
Instalar UFW
UFW es parte de la instalación estándar de Ubuntu 20.04 y debería estar presente en su sistema. Si por alguna razón no está instalado, puede instalar el paquete escribiendo:
sudo apt update
sudo apt install ufw
Verifique el estado de UFW
UFW está deshabilitado de forma predeterminada. Puede verificar el estado del servicio UFW con el siguiente comando:
sudo ufw status verbose
El resultado mostrará que el estado del firewall está inactivo:
Status: inactive
Políticas predeterminadas de UFW
El comportamiento predeterminado de UFW Firewall es bloquear todo el tráfico entrante y reenviado y permitir todo el tráfico saliente. Esto significa que cualquier persona que intente acceder a su servidor no podrá conectarse a menos que abra específicamente el puerto. Las aplicaciones y los servicios que se ejecutan en su servidor podrán acceder al mundo exterior.
Las políticas predeterminadas se definen en el /etc/default/ufw
archivo y se pueden cambiar modificando manualmente el archivo o con el sudo ufw default <policy> <chain>
comando.
Las políticas de firewall son la base para crear reglas más complejas y definidas por el usuario. En general, las políticas predeterminadas iniciales de UFW son un buen punto de partida.
Perfiles de aplicación
Un perfil de aplicación es un archivo de texto en formato INI que describe el servicio y contiene reglas de firewall para el servicio. Los perfiles de aplicación se crean en el /etc/ufw/applications.d
directorio durante la instalación del paquete.
Puede enumerar todos los perfiles de aplicación disponibles en su servidor escribiendo:
sudo ufw app list
Dependiendo de los paquetes instalados en su sistema, el resultado será similar al siguiente:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Para encontrar más información sobre un perfil específico y las reglas incluidas, use el siguiente comando:
sudo ufw app info 'Nginx Full'
El resultado muestra que el perfil 'Nginx Full' abre puertos 80
y 443
.
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
También puede crear perfiles personalizados para sus aplicaciones.
Habilitación de UFW
Si se está conectando a su Ubuntu desde una ubicación remota, antes de habilitar el firewall UFW, debe permitir explícitamente las conexiones SSH entrantes. De lo contrario, ya no podrá conectarse a la máquina.
Para configurar su firewall UFW para permitir conexiones SSH entrantes, escriba el siguiente comando:
sudo ufw allow ssh
Rules updated
Rules updated (v6)
Si SSH se ejecuta en un puerto no estándar , debe abrir ese puerto.
Por ejemplo, si su demonio ssh escucha en el puerto 7722
, ingrese el siguiente comando para permitir conexiones en ese puerto:
sudo ufw allow 7722/tcp
Ahora que el firewall está configurado para permitir conexiones SSH entrantes, puede habilitarlo escribiendo:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Se le advertirá que habilitar el firewall puede interrumpir las conexiones ssh existentes, simplemente escriba y
y presione Enter
.
Apertura de puertos
Dependiendo de las aplicaciones que se ejecuten en el sistema, es posible que también deba abrir otros puertos. La sintaxis general para abrir un puerto es la siguiente:
ufw allow port_number/protocol
A continuación se muestran algunas formas de permitir conexiones HTTP.
La primera opción es usar el nombre del servicio. UFW verifica el /etc/services
archivo para el puerto y el protocolo del servicio especificado:
sudo ufw allow http
También puede especificar el número de puerto y el protocolo:
sudo ufw allow 80/tcp
Cuando no se proporciona ningún protocolo, UFW crea reglas para ambos tcp
y udp
.
Otra opción es usar el perfil de la aplicación; en este caso, 'Nginx HTTP':
sudo ufw allow 'Nginx HTTP'
UFW también admite otra sintaxis para especificar el protocolo mediante la proto
palabra clave:
sudo ufw allow proto tcp to any port 80
Rangos de puertos
UFW también le permite abrir rangos de puertos. Los puertos de inicio y final están separados por dos puntos ( :
), y debe especificar el protocolo, ya sea tcp
o udp
.
Por ejemplo, si desea permitir puertos de 7100
a 7200
en ambos tcp
y udp
, debe ejecutar el siguiente comando:
sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp
Dirección IP y puerto específicos
Para permitir conexiones en todos los puertos desde una IP de origen determinada, utilice la from
palabra clave seguida de la dirección de origen.
Aquí hay un ejemplo de lista blanca de una dirección IP:
sudo ufw allow from 64.63.62.61
Si desea permitir que la dirección IP dada acceda solo a un puerto específico, use la to any port
palabra clave seguida del número de puerto.
Por ejemplo, para permitir el acceso al puerto 22
desde una máquina con dirección IP de 64.63.62.61
, ingrese:
sudo ufw allow from 64.63.62.61 to any port 22
Subredes
La sintaxis para permitir conexiones a una subred de direcciones IP es la misma que cuando se usa una sola dirección IP. La única diferencia es que debe especificar la máscara de red.
A continuación se muestra un ejemplo que muestra cómo permitir el acceso a direcciones IP que van desde 192.168.1.1
a 192.168.1.254
puerto 3360
( MySQL ):
sudo ufw allow from 192.168.1.0/24 to any port 3306
Interfaz de red específica
Para permitir conexiones en una interfaz de red en particular, use la in on
palabra clave seguida del nombre de la interfaz de red:
sudo ufw allow in on eth2 to any port 3306
Negando conexiones
La política predeterminada para todas las conexiones entrantes está establecida en deny
, y si no la ha cambiado, UFW bloqueará todas las conexiones entrantes a menos que abra específicamente la conexión.
Escribir reglas de denegación es lo mismo que escribir reglas de permiso; solo necesita usar la deny
palabra clave en lugar de allow
.
Digamos que abrió puertos 80
y 443
, y su servidor está siendo atacado desde la 23.24.25.0/24
red. Para denegar todas las conexiones 23.24.25.0/24
, ejecute el siguiente comando:
sudo ufw deny from 23.24.25.0/24
Aquí hay un ejemplo de denegar el acceso solo a los puertos y 80
puede usar el siguiente comando:443
23.24.25.0/24
sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443
Eliminación de reglas UFW
Hay dos formas diferentes de eliminar reglas UFW por número de regla y especificando la regla real.
Eliminar reglas por número de regla es más fácil, especialmente cuando es nuevo en UFW. Para eliminar una regla por un número de regla primero, debe encontrar el número de la regla que desea eliminar. Para obtener una lista de reglas numeradas, use el ufw status numbered
comando:
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 8080/tcp ALLOW IN Anywhere
Para eliminar la regla número 3
, la que permite las conexiones al puerto 8080
, ingresaría:
sudo ufw delete 3
El segundo método consiste en eliminar una regla especificando la regla real. Por ejemplo, si agregó una regla para abrir el puerto 8069
, puede eliminarla con:
sudo ufw delete allow 8069
Deshabilitar UFW
Si por alguna razón desea detener UFW y desactivar todas las reglas, puede usar:
sudo ufw disable
Más tarde, si desea volver a habilitar UTF y activar todas las reglas, simplemente escriba:
sudo ufw enable
Restablecimiento de UFW
Restablecer UFW desactivará UFW y eliminará todas las reglas activas. Esto es útil si desea revertir todos sus cambios y comenzar de nuevo.
Para restablecer UFW, escriba el siguiente comando:
sudo ufw reset
Enmascaramiento de IP
IP Masquerading es una variante de NAT (traducción de direcciones de red) en el kernel de Linux que traduce el tráfico de red reescribiendo las direcciones IP y los puertos de origen y destino. Con IP Masquerading, puede permitir que una o más máquinas en una red privada se comuniquen con Internet utilizando una máquina Linux que actúa como puerta de enlace.
La configuración del enmascaramiento de IP con UFW implica varios pasos.
Primero, debe habilitar el reenvío de IP. Para hacer eso, abra el /etc/ufw/sysctl.conf
archivo:
sudo nano /etc/ufw/sysctl.conf
Busque y elimine el comentario de la línea que dice net.ipv4.ip_forward = 1
:
net/ipv4/ip_forward=1
A continuación, debe configurar UFW para permitir paquetes reenviados. Abra el archivo de configuración de UFW:
sudo nano /etc/default/ufw
Localice la DEFAULT_FORWARD_POLICY
clave y cambie el valor de DROP
a ACCEPT
:
DEFAULT_FORWARD_POLICY="ACCEPT"
Ahora debe establecer la política predeterminada para la POSTROUTING
cadena en la nat
tabla y la regla de enmascaramiento. Para hacerlo, abra el /etc/ufw/before.rules
archivo y agregue las líneas resaltadas en amarillo, como se muestra a continuación:
sudo nano /etc/ufw/before.rules
Añada las siguientes líneas:
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
No olvide reemplazar eth0
en la -A POSTROUTING
línea para que coincida con el nombre de la interfaz de red pública:
Cuando haya terminado, guarde y cierre el archivo.
Finalmente, vuelva a cargar las reglas de UFW deshabilitando y volviendo a habilitar UFW:
sudo ufw disable
sudo ufw enable
Conclusión
Le mostramos cómo instalar y configurar un firewall UFW en su servidor Ubuntu 20.04. Asegúrese de permitir todas las conexiones entrantes que sean necesarias para el correcto funcionamiento de su sistema mientras limita todas las conexiones innecesarias.
Para obtener más información sobre este tema, visite la página del manual de UFW .
Si tiene preguntas, no dude en dejar un comentario a continuación.
0 Comentarios