Cómo configurar el firewall UFW en Ubuntu y Debian


Un servidor de seguridad que funcione correctamente es la parte más crucial de la seguridad completa del sistema Linux. De manera predeterminada, la distribución Debian y Ubuntu viene con una herramienta de configuración de firewall llamada UFW ( Firewall sin complicaciones ), es una herramienta de línea de comandos más popular y fácil de usar para configurar y configurar administrando un firewall en las distribuciones Ubuntu y Debian .

En este artículo, explicaremos cómo instalar y configurar un cortafuegos UFW en Ubuntu y Debian .

Antes de comenzar con este artículo, asegúrese de haber iniciado sesión en su servidor Ubuntu o Debian con sudo usuario o con la cuenta raíz. Si no tiene un usuario sudo, puede crear uno usando las siguientes instrucciones como usuario root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Instale UFW Firewall en Ubuntu y Debian

El UFW ( Firewall sin complicaciones ) debe instalarse de manera predeterminada en Ubuntu y Debian; de lo contrario, instálelo utilizando el administrador de paquetes APT usando el siguiente comando.

$ sudo apt install 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 por defecto, la salida será similar a la siguiente.

Status: inactive

Puede activar o habilitar el firewall UFW usando el siguiente comando, que debería cargar el firewall y permitir que se inicie en el arranque.

$ sudo ufw enable

Para deshabilitar el firewall UFW, use el siguiente comando, que descarga el firewall y lo desactiva para que no se inicie durante el arranque.

$ sudo ufw disable 

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 el puerto específicamente, 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 con el siguiente comando.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

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 mantiene la configuración de UFW.

Puede listar todos los perfiles de aplicación disponibles en su servidor usando el siguiente comando.

$ sudo ufw app list

Dependiendo de las instalaciones de paquetes de software en su sistema, la salida será similar a la 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 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

Si su servidor está configurado con IPv6 , asegúrese de que su UFW esté configurado con IPv6 y IPv4 . Para verificarlo, abra el archivo de configuración de UFW con su editor favorito.

$ sudo vi /etc/default/ufw

Luego, asegúrese de que “IPV6” esté configurado en 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

Si ya ha habilitado el firewall UFW, bloquearía todas las conexiones entrantes y si está conectado a su servidor a través de SSH desde una ubicación remota, no podrá volver a conectarlo.

Permitamos que las conexiones SSH a nuestro servidor eviten que esto suceda con 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 mediante 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]

También puede abrir un puerto específico en el firewall para permitir conexiones a través de este a un determinado servicio. Por ejemplo, si desea configurar un servidor web que escuche en el puerto 80 ( HTTP ) y 443 ( HTTPS ) por defecto.

A continuación se muestran algunos ejemplos de cómo permitir las conexiones entrantes a los servicios de Apache.

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

Suponiendo que tiene algunas aplicaciones que desea ejecutar en un rango de puertos ( 5000-5003 ), puede agregar todos estos puertos con los siguientes comandos.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Si desea permitir conexiones en todos los puertos desde una dirección IP específica 192.168.56.1 , entonces debe especificar antes de la dirección IP.

$ sudo ufw allow from 192.168.56.1

Para permitir la conexión en un puerto específico (por ejemplo, el puerto 22 ) de su equipo doméstico con la dirección IP de 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

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

Para permitir conexiones a una interfaz de red específica eth2 para un puerto en particular 22 ( SSH ), ejecute el siguiente comando.

$ sudo ufw allow in on eth2 to any port 22

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á bajo ataque de la red desconocida 11.12.13.0/24 .

Para bloquear todas las conexiones de este rango de red en particular 11.12.13.0/24 , puede usar 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 usar 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

Hay 2 formas de eliminar las reglas UFW, por número de regla y por regla actual .

Para eliminar las reglas de UFW usando número de regla , primero debe listar las reglas por números usando el siguiente comando.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Para eliminar el número de regla 1 , use el siguiente comando.

$ sudo ufw delete 1

El segundo método es 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

Puede ejecutar cualquier comando ufw sin realizar ningún cambio en el firewall del sistema utilizando el indicador --dry-run , esto simplemente muestra los cambios que se supone que deben ocurrir.

$ sudo ufw --dry-run enable

Por una razón u otra, si desea eliminar/restablecer todas las reglas de firewall, escriba los siguientes comandos, revertirá todos sus cambios y comenzará de nuevo.

$ sudo ufw reset
$ sudo ufw status

El firewall UFW puede administrar todo lo que hace iptables. Esto puede hacerse con diferentes conjuntos de archivos de reglas, que no son nada, sino simples archivos de texto iptables-restore

El ajuste del firewall UFW o la adición de comandos iptables adicionales no están permitidos mediante el comando ufw, es solo una cuestión de alterar los siguientes archivos de texto

  • /etc/default/ufw: The main configuration file with pre-defined rules.
  • /etc/ufw/before[6].rules: In this file rules are calculated before adding via ufw command.
  • /etc/ufw/after[6].rules: In this file rules are calculated after adding via ufw command.
  • /etc/ufw/sysctl.conf: This file is used to tune kernel network.
  • /etc/ufw/ufw.conf: This file enable the ufw on boot.

¡Eso es! 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 pregunta o comentario para compartir sobre este artículo ufw, use el formulario de comentarios a continuación para comunicarse con nosotros.