Uncomplicated Firewall o UFW es una interfaz para iptables que está diseñada para simplificar el proceso de configuración de un firewall. Aunque iptables es una herramienta sólida y flexible, a veces puede ser difícil para los principiantes aprender a usarla para configurar correctamente un firewall. Si un usuario desea comenzar a proteger su red, UFW puede ser la solución.

Esta guía le mostrará cómo configurar un firewall con UFW en Ubuntu 18.04.

Paso 1: configurar políticas estándar

UFW está instalado de forma predeterminada en Ubuntu. Si por alguna razón se ha desinstalado, podemos instalarlo usando el siguiente comando.

$ sudo apt install ufw

De forma predeterminada, UFW niega todas las conexiones entrantes y permite todas las conexiones salientes. Esto significa que un cliente que intente comunicarse con nuestro servidor no podrá conectarse. Si una aplicación de nuestro servidor intenta conectarse a otro servidor externo, se permitirá. Los siguientes comandos sirven para este propósito.

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

Paso 2: permitir conexiones SSH

De forma predeterminada, hemos restringido todas las conexiones entrantes a nuestro servidor, como podemos ver en nuestro paso anterior. Para permitir conexiones a través de SSH seguro, usamos el siguiente comando.

$ sudo ufw allow ssh

El comando anterior crea reglas de firewall que permiten todas las conexiones en el puerto 22, el puerto predeterminado en el que escucha el demonio SSH. El UFW escucha en el puerto listado en el archivo / etc / services.

Si el demonio SSH está configurado en un puerto diferente al predeterminado, podemos especificarlo en nuestro comando para escuchar en ese puerto. El siguiente comando escucha en el puerto 2222 si hemos configurado SSH en él.

También podemos especificar el protocolo (tcp o udp) en nuestro comando anterior. Es opcional. El comando anterior se utiliza para ambos protocolos.

$ sudo ufw allow 2222

Paso 3: Permita ciertas conexiones entrantes

Para permitir conexiones entrantes en un puerto específico, usaremos los siguientes comandos para especificar una regla para UFW. Por ejemplo, si queremos que nuestro servidor escuche HTTP en el puerto 80, a continuación se muestra el comando a ejecutar.

$ sudo ufw allow http

Es equivalente a lo siguiente

$ sudo ufw allow 80

Podemos usar cualquiera de los anteriores para el puerto 80. Para HTTPS, cada uno de los siguientes comandos se utiliza para establecer una conexión.

$ sudo ufw allow https

O

$ sudo ufw allow 443

También podemos especificar un rango de puertos, es decir, más de un puerto. Cabe señalar que tenemos que especificar el protocolo en el comando (tcp o udp). El siguiente comando habilita conexiones desde los puertos 6000 al 6003 tanto para TCP como para UDP.

$ sudo ufw allow 6000:6003/tcp
$ sudo ufw allow 6000:6003/udp

Paso 4: denegar las conexiones entrantes

A veces queremos denegar ciertas conexiones basadas en la dirección IP de origen. Eso es porque a veces sabemos que nuestro servidor está siendo atacado desde allí. Entonces creamos una regla de denegación para la dirección IP específica. El siguiente comando niega la conexión desde una dirección IP 203.0.123.5

$ sudo ufw deny from 203.0.123.5

Paso 5: habilitar UFW

Después de todas las configuraciones de UFW, el siguiente paso es habilitarlo. El siguiente comando hace el trabajo.

$ sudo ufw enable

Aparecerá un mensaje de advertencia después de ejecutar el comando anterior. Dirá que el comando puede romper las conexiones SSH existentes. Pero en este caso ya hemos configurado una regla de firewall que permite conexiones SSH para que nuestra configuración no se vea perturbada. Escribimos y y presionamos ENTER para aplicar. Ahora se aplica la configuración del cortafuegos.

Paso 6: verifique el estado de UFW

Podemos comprobar el estado con el siguiente comando.

$ sudo ufw status verbose

La siguiente es la salida cuando está inactiva.

Status: inactive

En nuestro caso, está activo, por lo que imprime lo siguiente e imprime los resultados.

Status: active
To                             Action      From

--                             ------          ----

22                             ALLOW IN    Anywhere
80                             ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
2222                       ALLOW IN    Anywhere
6000:6003/tcp              ALLOW IN        Anywhere
6000:6003/udp              ALLOW IN        Anywhere
Anywhere                       DENY            203.0.123.5

Conclusión

En este artículo hemos configurado el firewall con la ayuda de la poderosa herramienta UFW. Con su ayuda, hemos definido que se permiten las conexiones entrantes SSH, HTTP y HTTPS. También hemos establecido una regla para denegar las conexiones entrantes desde una dirección IP específica. También podemos verificar el estado de nuestras reglas creadas.