UFW (uncomplicated-firewall) es un programa CLI muy amigable con el usuario y fácil de administrar el cual nos permite levantar un servicio de firewall al más puro estilo de nftables sin caer en demasiadas complicaciones. De hecho se puede considerar a UFW como un servicio de firewall para usuarios dómesticos o de día a día. ¡Vamos a ello!
UFW es un programa "universal", es decir, que básicamente lo vas a encontrar disponible para cualquier distribución de GNU/Linux, en este caso el comando para instalar UFW en Debian y derivadas es el siguiente:
sudo apt-get install ufw
Una vez instalado lo primero que debemos hacer es activar el servicio, para ello ejecutamos:
sudo ufw enable
Podemos corroborar que UFW está activo con el siguiente comando:
sudo ufw status
Ahora debemos proceder con las dos configuraciones de cabecera, las cuales son denegar el tráfico entrante y permitir el saliente:
sudo ufw deny incoming
sudo ufw allow outgoing
Otra opción de cabecera es permitir las conexiones con nuestra propia máquina como, por ejemplo, cuando trabajamos con máquinas virtuales o realizamos conexiones p2p:
sudo ufw allow from 127.0.0.1
Podemos también permitir, denegar o limitar las conexiones de ciertos servicios como, por ejemplo, del puerto 22 o SSH; en mi caso yo únicamente lo límito:
sudo ufw limit 22
Ahora toca permitir las conexiones mediante http o el puerto 80. Si bien es sabido que http es menos recomendable que https, es necesario permitir la conexión sólo para asegurar compatibilidad y/o prevención de posibles errores a la hora de navegar en internet:
sudo ufw allow 80
Lo siguiente que recomiendo es denegar los puertos de Microsoft por obvias razones de origen:
sudo ufw deny 135
sudo ufw deny 137
sudo ufw deny 138
sudo ufw deny 139
sudo ufw deny 445
Después podemos permitir ahora sí el puerto 443 o https:
sudo ufw allow 443
Y listo, de manera general esta es una configuración de UFW para el día a día (recuerda que la mejor protección y la mayor amenaza es el usuario mismo y sus practicas de uso); de igual manera te invito a que le eches un vistazo al fichero de puertos y revises su función:
cat /etc/services