Búsqueda de sitios web

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.