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.