Cómo configurar el firewall UFW en Ubuntu y Debian
Un firewall que funcione correctamente es la parte más crucial de la seguridad completa del sistema Linux. De forma predeterminada, la distribución Debian y Ubuntu viene con una herramienta de configuración de firewall llamada UFW (Uncomplicated Firewall), es una herramienta de línea de comandos muy popular y fácil de usar para configurar y administrar un firewall en distribuciones Ubuntu y Debian.
En este artículo, explicaremos cómo instalar y configurar un firewall UFW en distribuciones Ubuntu y Debian.
Requisitos previos
Antes de comenzar con este artículo, asegúrese de haber iniciado sesión en su servidor Ubuntu o Debian con el usuario sudo o con la cuenta raíz. Si no tiene un usuario sudo, puede crear uno siguiendo las siguientes instrucciones como usuario root.
adduser username
usermod -aG sudo username
su - username
sudo whoami
Instale el cortafuegos UFW en Ubuntu y Debian
El UFW (Firewall sin complicaciones) debe instalarse de forma predeterminada en Ubuntu y Debian; de lo contrario, instálelo usando el administrador de paquetes APT usando el siguiente comando.
sudo apt install ufw
Verifique el cortafuegos UFW
Una vez completada la instalación, puede verificar el estado de UFW escribiendo.
sudo ufw status verbose
En la primera instalación, el firewall UFW está deshabilitado de forma predeterminada, el resultado será similar al siguiente.
Status: inactive
Habilitar el cortafuegos UFW
Puede activar o habilitar el firewall UFW usando el siguiente comando, que debería cargar el firewall y permitir que se inicie al arrancar.
sudo ufw enable
Para deshabilitar el firewall UFW, use el siguiente comando, que descarga el firewall y deshabilita su inicio en el arranque.
sudo ufw disable
Políticas predeterminadas de UFW
De forma predeterminada, el firewall UFW niega todas las conexiones entrantes y solo permite todas las conexiones salientes al servidor. Esto significa que nadie puede acceder a su servidor, a menos que abra específicamente el puerto, mientras que todos los servicios o aplicaciones en ejecución en su servidor pueden acceder a la red externa.
Las políticas de firewall UFW predeterminadas se colocan en el archivo /etc/default/ufw
y se pueden modificar usando el siguiente comando.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Perfiles de aplicación UFW
Al instalar un paquete de software utilizando el administrador de paquetes APT, incluirá un perfil de aplicación en el directorio /etc/ufw/applications.d
que define el servicio y contiene la configuración de UFW.
Puede enumerar todos los perfiles de aplicaciones disponibles en su servidor usando el siguiente comando.
sudo ufw app list
Dependiendo de las instalaciones del paquete de software en su sistema, el resultado será similar al siguiente:
Available applications:
APACHE
APACHE Full
APACHE SECURE
CUPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Si desea obtener más información sobre un perfil en particular y reglas definidas, puede usar el siguiente comando.
sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server
Description: Apache V2 is the next generation f the omnipresent Apache web server.
Ports:
80/tcp
Habilite IPv6 con UFW
Si su servidor está configurado con IPv6, asegúrese de que su UFW esté configurado con soporte para IPv6 e IPv4. Para verificarlo, abra el archivo de configuración de UFW usando su editor favorito.
sudo vi /etc/default/ufw
Luego asegúrese de que “IPV6” esté configurado en "yes"
en el archivo de configuración como se muestra.
IPV6=yes
Guardar y Salir. Luego reinicie su firewall con los siguientes comandos:
sudo ufw disable
sudo ufw enable
Permitir conexiones SSH en UFW
Si ya ha habilitado el firewall UFW, bloqueará todas las conexiones entrantes y si está conectado a su servidor a través de SSH desde una ubicación remota, ya no podrá volver a conectarse.
Habilitemos las conexiones SSH a nuestro servidor para evitar que eso suceda usando el siguiente comando:
sudo ufw allow ssh
Si está utilizando un puerto SSH personalizado (por ejemplo, el puerto 2222), debe abrir ese puerto en el firewall UFW usando el siguiente comando.
sudo ufw allow 2222/tcp
Para bloquear todas las conexiones SSH, escriba el siguiente comando.
sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp [If using custom SSH port]
Habilitar puertos específicos en UFW
También puede abrir un puerto específico en el firewall para permitir conexiones a través de él a un determinado servicio. Por ejemplo, si desea configurar un servidor web que escuche en el puerto 80 (HTTP) y 443 (HTTPS >) de forma predeterminada.
A continuación se muestran algunos ejemplos de cómo permitir conexiones entrantes a los servicios de Apache.
Abra el puerto 80 HTTP en UFW
sudo ufw allow http [By service name]
sudo ufw allow 80/tcp [By port number]
sudo ufw allow 'Apache' [By application profile]
Abra el puerto 443 HTTPS en UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'
Permitir rangos de puertos en UFW
Suponiendo que tiene algunas aplicaciones que desea ejecutar en una variedad de puertos (5000-5003), puede agregar todos estos puertos usando los siguientes comandos.
sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp
Permitir direcciones IP específicas
Si desea permitir conexiones en todos los puertos desde una dirección IP específica 192.168.56.1, debe especificar desde antes de la dirección IP.
sudo ufw allow from 192.168.56.1
Permitir direcciones IP específicas en un puerto específico
Para permitir la conexión en un puerto específico (por ejemplo, el puerto 22) desde el equipo de su hogar con la dirección IP 192.168.56.1, debe agregar cualquier puerto< y el número de puerto después de la dirección IP como se muestra.
sudo ufw allow from 192.168.56.1 to any port 22
Permitir subredes de red a un puerto específico
Para permitir conexiones para direcciones IP particulares que van desde 192.168.1.1 a 192.168.1.254 al puerto 22 (SSH) , ejecute el siguiente comando.
sudo ufw allow from 192.168.1.0/24 to any port 22
Permitir interfaz de red específica
Para permitir conexiones a una interfaz de red específica eth2 para un puerto 22 (SSH) en particular, ejecute el siguiente comando.
sudo ufw allow in on eth2 to any port 22
Denegar conexiones en UFW
De forma predeterminada, todas las conexiones entrantes están bloqueadas, a menos que haya abierto específicamente la conexión en UFW. Por ejemplo, ha abierto los puertos 80 y 443 y su servidor web está siendo atacado por la red desconocida 11.12.13.0/24.
Para bloquear todas las conexiones de este rango de red 11.12.13.0/24 en particular, puede utilizar el siguiente comando.
sudo ufw deny from 11.12.13.0/24
Si solo desea bloquear las conexiones en los puertos 80 y 443, puede utilizar los siguientes comandos.
sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443
Eliminar reglas UFW
Hay dos formas de eliminar reglas UFW, por número de regla y por regla real.
Para eliminar reglas UFW usando el número de regla, primero debe enumerar las reglas por números usando el siguiente comando.
sudo ufw status numbered
Salida de muestra
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
Para eliminar la regla número 1, utilice el siguiente comando.
sudo ufw delete 1
El segundo método consiste en eliminar una regla utilizando la regla real; por ejemplo, para eliminar una regla, especifique el número de puerto con el protocolo como se muestra.
sudo ufw delete allow 22/tcp
Reglas de UFW de ejecución en seco
Puede ejecutar cualquier comando ufw sin realizar ningún cambio en el firewall del sistema usando el indicador --dry-run
, esto simplemente muestra los cambios que se supone que deben ocurrir.
sudo ufw --dry-run enable
Restablecer el cortafuegos UFW
Por una razón u otra, si desea eliminar/restablecer todas las reglas del firewall, escriba los siguientes comandos, revertirá todos los cambios y comenzará de nuevo.
sudo ufw reset
sudo ufw status
Funcionalidad avanzada de UFW
El firewall UFW puede hacer cualquier cosa que haga iptables. Esto se puede hacer con diferentes conjuntos de archivos de reglas, que no son más que simples archivos de texto iptables-restore.
No se permite ajustar el firewall UFW ni agregar comandos iptables adicionales mediante el comando ufw, es solo cuestión de alterar los siguientes archivos de texto.
- /etc/default/ufw: el archivo de configuración principal con reglas predefinidas.
- /etc/ufw/before[6].rules: en este archivo las reglas se calculan antes de agregarlas mediante el comando ufw.
- /etc/ufw/after[6].rules: en este archivo, las reglas se calculan después de agregarlas mediante el comando ufw.
- /etc/ufw/sysctl.conf: este archivo se utiliza para ajustar la red del kernel.
- /etc/ufw/ufw.conf: este archivo habilita ufw en el arranque.
¡Eso es todo! UFW es una excelente interfaz para iptables con una interfaz fácil de usar para definir reglas complejas con un solo comando ufw.
Si tiene alguna consulta o idea que compartir sobre este artículo de ufw, utilice el formulario de comentarios a continuación para comunicarse con nosotros.