Un firewall correctamente configurado es uno de los aspectos más importantes de la seguridad general del sistema.
UFW (Uncomplicated Firewall) es un front-end fácil de usar para administrar las reglas de firewall de iptables. Su principal objetivo es hacer que la gestión de iptables sea más fácil o, como su nombre lo dice, sin complicaciones.
Este artículo describe cómo configurar un firewall con UFW en Debian 10.
requisitos previos
Solo el root o el usuario con privilegios sudo pueden administrar el firewall del sistema.
Instalación de UFW
Ingrese el siguiente comando para instalar el ufwpaquete:
sudo apt updatesudo apt install ufw
Comprobación del estado de UFW
La instalación no activará el cortafuegos automáticamente para evitar un bloqueo del servidor. Puede verificar el estado de UFW escribiendo:
sudo ufw status verboseLa salida se verá así:
Status: inactive
Políticas predeterminadas de UFW
De forma predeterminada, UFW bloquea todas las conexiones entrantes y permite todas las conexiones salientes. 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 servicios que se ejecutan en el servidor podrán acceder al mundo exterior.
Las políticas predeterminadas se definen en el /etc/default/ufwarchivo y se pueden cambiar con el sudo ufw default <policy> <chain>comando.
Las políticas de firewall son la base para crear reglas más detalladas y definidas por el usuario. En general, las políticas predeterminadas iniciales de UFW son un buen punto de partida.
Perfiles de aplicación
La mayoría de las aplicaciones se envían con un perfil de aplicación que describe el servicio y contiene la configuración de UFW. El perfil se crea automáticamente en el /etc/ufw/applications.ddirectorio durante la instalación del paquete.
Para enumerar todos los perfiles de aplicación disponibles en su tipo de sistema:
sudo ufw utf --helpDependiendo de los paquetes instalados en su sistema, el resultado será similar al siguiente:
Available applications:
DNS
IMAP
IMAPS
OpenSSH
POP3
POP3S
Postfix
Postfix SMTPS
Postfix Submission
...
Para encontrar más información sobre un perfil específico y las reglas incluidas, use el app infocomando, seguido del nombre del perfil. Por ejemplo, para obtener información sobre el perfil de OpenSSH que usaría:
sudo ufw app info OpenSSHProfile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
La salida incluye el nombre del perfil, el título, la descripción y las reglas de firewall.
Permitir conexiones SSH
Antes de habilitar primero el firewall UFW, debe permitir las conexiones SSH entrantes.
Si se está conectando a su servidor desde una ubicación remota y habilita el firewall UFW antes de permitir explícitamente las conexiones SSH entrantes, ya no podrá conectarse a su servidor Debian.
Para configurar su firewall UFW para aceptar conexiones SSH, ejecute el siguiente comando:
sudo ufw allow OpenSSHRules updated
Rules updated (v6)
Si el servidor SSH está escuchando en un puerto que no sea el puerto predeterminado 22, deberá abrir ese puerto.
Por ejemplo, su servidor ssh escucha en el puerto 7722, ejecutaría:
sudo ufw allow 7722/tcpHabilitar UFW
Ahora que el firewall UFW está configurado para permitir conexiones SSH entrantes, habilítelo ejecutando:
sudo ufw enableCommand 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. Escriba "y" y presione "Enter".
Apertura de puertos
Dependiendo de las aplicaciones que se ejecuten en su servidor, deberá abrir los puertos en los que se ejecutan los servicios.
A continuación se muestran varios ejemplos de cómo permitir conexiones entrantes a algunos de los servicios más comunes:
Abrir puerto 80 - HTTP
Permitir conexiones HTTP:
sudo ufw allow httpEn lugar del httpperfil, puede utilizar el número de puerto 80:
sudo ufw allow 80/tcpAbrir puerto 443 - HTTPS
Permitir conexiones HTTPS:
sudo ufw allow httpsTambién puede utilizar el número de puerto 443:
sudo ufw allow 443/tcpAbrir puerto 8080
Si ejecuta Tomcat o cualquier otra aplicación que escuche en el puerto, 8080abra el puerto con:
sudo ufw allow 8080/tcpApertura de rangos de puertos
Con UFW, también puede permitir el acceso a rangos de puertos. Al abrir un rango, debe especificar el protocolo del puerto.
Por ejemplo, para permitir puertos de 7100a 7200en ambos tcpy udp, ejecute el siguiente comando:
sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp
Permitir direcciones IP específicas
Para permitir el acceso a todos los puertos desde una dirección IP específica, utilice el ufw allow fromcomando seguido de la dirección IP:
sudo ufw allow from 64.63.62.61Permitir direcciones IP específicas en un puerto específico
Para permitir el acceso a un puerto específico, digamos un puerto 22desde su máquina de trabajo con la dirección IP 64.63.62.61, use el siguiente comando:
sudo ufw allow from 64.63.62.61 to any port 22Permitir subredes
El comando para permitir la conexión desde 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 al puerto 3360 ( MySQL ), puede usar este comando:
sudo ufw allow from 192.168.1.0/24 to any port 3306Permitir conexiones a una interfaz de red específica
Para permitir el acceso a un puerto específico, digamos el puerto 3360 solo a una interfaz de red específica eth2, use allow in ony el nombre de la interfaz de red:
sudo ufw allow in on eth2 to any port 3306Denegar conexiones
La política predeterminada para todas las conexiones entrantes se establece en deny, lo que significa que UFW bloqueará todas las conexiones entrantes a menos que abra específicamente la conexión.
Digamos que abrió los puertos 80y 443, y su servidor está siendo atacado desde la 23.24.25.0/24red. Para denegar todas las conexiones desde 23.24.25.0/24, use el siguiente comando:
sudo ufw deny from 23.24.25.0/24Si solo desea denegar el acceso a los puertos y 80el uso:44323.24.25.0/24
sudo ufw deny from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443
Escribir reglas de denegación es lo mismo que escribir reglas de permiso. Solo necesita reemplazar allowcon deny.
Eliminar reglas de UFW
Hay dos formas diferentes de eliminar reglas UFW. Por número de regla y especificando la regla real.
Eliminar reglas de UFW por número de regla es más fácil, especialmente si es nuevo en UFW.
Para eliminar una regla por su número primero, debe encontrar el número de la regla que desea eliminar. Para hacer eso, ejecute el siguiente comando:
sudo ufw status numberedStatus: 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, puedes usar el siguiente comando:
sudo ufw delete 3El 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 8069Deshabilitar UFW
Si por alguna razón desea detener UFW y desactivar todas las reglas, ejecute:
sudo ufw disableMás tarde, si desea volver a habilitar UTF y activar todas las reglas, simplemente escriba:
sudo ufw enableRestablecer 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 simplemente escriba el siguiente comando:
sudo ufw resetConclusión
Ha aprendido a instalar y configurar el firewall UFW en su máquina Debian 10. Asegúrese de permitir todas las conexiones entrantes que sean necesarias para el correcto funcionamiento de su sistema mientras limita todas las conexiones innecesarias.
Si tiene preguntas, no dude en dejar un comentario a continuación.

0 Comentarios