Introducción
Debian incluye varios paquetes que proporcionan herramientas para administrar un firewall con iptables instaladas como parte del sistema base. Puede ser complicado para los principiantes aprender a usar la herramienta iptables para configurar y administrar correctamente un firewall, pero UFW lo hace fácil.
UFW (Uncomplicated Firewall) es un front-end intuitivo para administrar las reglas del firewall de iptables y su principal objetivo es simplificar la administración de iptables o como su nombre lo indica sin complicaciones.
En este tutorial, le mostraremos cómo configurar un firewall con UFW en Debian 10 Buster.
Prerrequisitos
Antes de continuar con este tutorial, asegúrese de que el usuario que haya iniciado sesión tenga privilegios de sudo.
Si desea instalar UFW Firewall en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar UFW
UFW no se instala de forma predeterminada en Debian 10. Puede instalar el ufw
escribiendo el siguiente comando:
sudo apt install ufw
Verificar el estado de UFW
Una vez que se completa el proceso de instalación, puede verificar el estado de UFW con el siguiente comando:
sudo ufw status
La salida se verá así:
Status: inactive
UFW está deshabilitado de forma predeterminada. La instalación no activará automáticamente el firewall para evitar el bloqueo desde el servidor.
Reglas predefinidas de UFW
De forma predeterminada, UFW bloqueará todas las conexiones entrantes y permitirá todas las conexiones salientes. Esto significa que cualquiera que intente acceder a su servidor no podrá conectarse a menos que usted abra específicamente el puerto, mientras que todas las aplicaciones y servicios que se ejecutan en el servidor podrán acceder al mundo exterior.
Las reglas predeterminadas se definen en el /etc/default/ufw
y se pueden cambiar usando el comando sudo ufw default <policy> <chain>
Las políticas de firewall son la base para crear reglas más detalladas y definidas por el usuario. En la mayoría de los casos, los criterios predeterminados iniciales de UFW son un buen lugar para comenzar.
Perfiles de aplicación
Al instalar un paquete con apt
this, se agregará un perfil de aplicación al /etc/ufw/applications.d
describe el servicio y contiene la configuración de UFW.
Para enumerar todos los perfiles de aplicación disponibles en el tipo de sistema:
sudo ufw app list
Dependiendo de los paquetes instalados en su sistema, la salida se verá así:
Available applications:
AIM
Bonjour
CIFS
DNS
Deluge
IMAP
IMAPS
IPP
KTorrent
Kerberos Admin
Kerberos Full
Kerberos KDC
Kerberos Password
LDAP
LDAPS
LPD
MSN
MSN SSL
Mail submission
NFS
OpenSSH
POP3...
Para encontrar más información sobre un perfil específico y las reglas incluidas, use el siguiente comando:
sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
A La salida anterior nos dice que el perfil OpenSSH usa el puerto 22
.
Permitir conexiones SSH
Antes de habilitar el firewall UFW, primero debemos permitir las conexiones SSH entrantes.
Si se está conectando a su servidor desde una ubicación remota, si habilita el cortafuegos UFW antes de permitir explícitamente las conexiones SSH entrantes, ya no podrá conectarse a su servidor Debian.
Para configurar el firewall UFW para permitir conexiones SSH entrantes, ejecute el siguiente comando:
sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
Si el servidor SSH está escuchando en un puerto que no sea el puerto predeterminado 22, será necesario abrir ese puerto.
Por ejemplo, el servidor ssh está escuchando en el puerto 8822
, puede usar el siguiente comando para permitir conexiones en ese puerto:
sudo ufw allow 8822/tcp
Habilitar UFW
Ahora que el firewall de UFW está configurado para permitir conexiones SSH entrantes, puede habilitarlo ejecutando:
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
.
Permitir conexiones en otros puertos
Dependiendo de las aplicaciones que se ejecuten en su servidor y sus necesidades específicas, también deberá permitir el acceso entrante a algunos otros puertos.
A continuación, se muestran algunos ejemplos de cómo permitir conexiones entrantes a algunos de los servicios más comunes:
Puerto abierto 80 - HTTP
Las conexiones HTTP se pueden permitir con el siguiente comando:
sudo ufw allow http
En lugar del http
, puede utilizar el número de puerto 80
:
sudo ufw allow 80/tcp
Puerto abierto 443 - HTTPS
Las conexiones HTTP se pueden permitir con el siguiente comando:
sudo ufw allow https
Para obtener el mismo resultado en lugar de https
, puede usar el número de puerto 443
:
sudo ufw allow 443/tcp
Puerta abierta 8080
Si está ejecutando Tomcat o cualquier otra aplicación que esté escuchando en el puerto 8080, puede permitir conexiones entrantes con:
sudo ufw allow 8080/tcp
Permitir rangos de puertos
Con UFW también puede permitir el acceso a rangos de puertos. Al permitir rangos de puertos con UFW, debe especificar el protocolo, ya sea tcp
o udp
.
Por ejemplo, para habilitar los puertos 7100
a 7200
tanto en tcp
como en udp
, ejecute el siguiente comando:
sudo ufw allow 7100:7200/tcp
Permitir direcciones IP específicas
Si desea permitir el acceso a todos los puertos desde una dirección IP específica, use el ufw allow from
seguido de la dirección IP:
sudo ufw allow from 64.63.62.61
Permitir direcciones IP específicas en un puerto específico
Para permitir el acceso a un puerto específico, supongamos que el puerto 22 de su máquina de trabajo con la dirección IP 64.64.64.64
usa el siguiente comando:
sudo ufw allow from 64.63.62.61 to any port 22
Permitir subredes
El comando para permitir la conexión a una subred de direcciones IP es el mismo que cuando se usa una sola dirección IP, la única diferencia es que debe especificar la máscara de red. Por ejemplo, si desea permitir el acceso a direcciones IP que van desde 192.168.1.1
a 192.168.1.254
en el puerto 3360
( MySQL ), puede usar este comando:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Permitir conexiones a una interfaz de red específica
Para permitir el acceso en un puerto específico, suponga que el puerto 3360 es solo para la interfaz de red eth2
allow in on
y el nombre de la interfaz de red:
sudo ufw allow in on eth2 to any port 3306
Denegar 3 conexiones
La política predeterminada para todas las conexiones entrantes está configurada para deny
que significa que UFW bloqueará todas las conexiones entrantes a menos que abra específicamente la conexión.
Digamos que ha abierto los puertos 80
y 443
y su servidor está siendo atacado por la red 23.24.25.0/24
. Para denegar todas las conexiones de 23.24.25.0/24
, use el siguiente comando:
sudo ufw deny from 23.24.25.0/24
Si solo desea denegar el acceso a los puertos 80
y 443
desde 23.24.25.0/24
use:
sudo ufw deny from 23.24.25.0/24 to any port 80
Escribir reglas de denegación es lo mismo que escribir reglas permisivas, solo necesita reemplazar allow
por deny
.
Eliminar reglas de UFW
Hay dos formas diferentes de eliminar las reglas de UFW, según el número de regla y especificando la regla real.
Eliminar reglas de UFW basadas en el número de regla es más fácil, especialmente si no conoce UFW.
Para eliminar una regla basada en un número de regla, primero debe encontrar el número de la regla que desea eliminar. Para hacer esto, ejecute el siguiente 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 regla que permite conexiones al puerto 8080, puede usar el siguiente comando:
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
Desactivar UFW
Si por alguna razón desea detener UFW y deshabilitar todas las reglas de ejecución:
sudo ufw disable
Más tarde, si desea volver a habilitar UTF y habilitar todas las reglas, escriba:
sudo ufw enable
Restaurar UFW
Restablecer UFW deshabilitará UFW y eliminará todas las reglas activas. Esto es útil si desea revertir todos los cambios y comenzar de nuevo.
Para restaurar UFW simplemente escriba el siguiente comando:
sudo ufw reset
Conclusión
Ha aprendido a instalar y configurar el cortafuegos UFW en su sistema Debian 10 Buster. Asegúrese de permitir todas las conexiones entrantes necesarias para que el sistema funcione correctamente, mientras limita todas las conexiones innecesarias.