Como varios de mis seguidores saben me encantan las redes y lo que tiene de lindo es que si bien el ambito es cambiante no es tan cambiante como los software de desarrollo etc, por lo cual la administración de servidores tambien se tomo un lugarsito entre mi tiempo hace ya un buen rato por eso me gusta docker, visualización etc. Nunca le di bola a UFW el firewall de Ubuntu pero me llego la hora por que verdaderamente es bastante sencillo de utilizar aunque hay que prestarle mucha atención. Esta entrada “Usamos el Firewall UFW” es muy personal y no para usarlo de #tutorial debido a que cualquir firewall se configura sobre necesidades especificas y/o personales como es mi caso.

UFW es un acrónimo de uncomplicated firewall que seria algo asi como cortafuegos sin complicaciones.

Muchas veces no es lo primero que vemos cuando instalamos Ubuntu 20.04 pero si que es importante! Sobre todo si le das importancia a la seguridad de tus datos.

Si necesitas instalar ubuntu 20.04 mira este —>link <—

Como suponemos que no tenemos ni idea si viene instalado o no podemos tirar el siguiente comando y ver:

sudo ufw status

Las respuestas pueden ser varias pero lo mas común es que te diga: Estado: inactivo lo cual significa que esta instalado pero no se esta ejecutando.

Ahora que ya te dije el comando del status te cuento que si, en ubuntu viene instalado por defecto!! Ahora si lo quisiéramos instalar:

sudo apt install ufw​​​2

Aun no lo vamos a activar por que tenemos que saber algunas cosas, como por ejemplo si solo vamos a usar ipv4 o tenemos un servidor hosteado con ipv6 y entonces querés activarlo tendrías que activarlo en el archivo /etc/default/ufw el cual se edita y donde dice ipv6 se poner YES

sudo nano /etc/default/ufw
ufw
Si dice no cambiar por YES

Las políticas predeterminadas son muy lindas si tenemos acceso físico a nuestra maquina, de lo contrario podríamos cortar nuestro acceso y sonarla para todo el viaje. Con esto quiero decir que para nuestra maquina una política predeterminada puede ser TODO SALE NADA ENTRA, pero si esto mismo lo hacemos en un servidor y cortamos el acceso ssh ya no tendremos más acceso al servidor.

Estas reglas o políticas predeterminadas controlan el manejo del tráfico que no coincida de forma explícita con otras reglas. Por defecto, UFW está configurado para denegar todas las conexiones entrantes y permitir todas las conexiones salientes. Esto significa que quien intente establecer conexión con su servidor no podrá hacerlo, mientras que cualquier aplicación dentro del servidor podrá llegar al mundo exterior.

Lo que haremos a continuación no tiene que ver en si con ufw pero nos desviamos apenas un poquito por que es una buena practica la de cambiar el puerto por defecto de ssh del 22 a otro que consideren uds. Esto se hace editando el archivo:

sudo nano /etc/ssh/sshd_config

y donde esta 22 cambiamos el puerto por otro y en el caso de tener un # a la izquierda lo sacamos (o descomentamos) para que se haga real el cambio y luego salvamos los cambios y reiniciamos el servicio ssh o reiniciamos la maquina (lo cual es un poco mucho).

Ahora si ya que no activamos aun a UFW lo que vamos a hacer es poner las reglas por defecto de nuestro firewall.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Pero como indicamos necesitamos tener activado ssh para ingreso a nuestro servidor por eso vamos a hacer:

sudo ufw allow ssh

Si cambiaste el puerto tenes que hacerlo de este modo:

sudo ufw allow ssh numerodelpuerto

Ahora si solo quisieramos que sea con conexiones tcp:

sudo ufw allow numerodepuerto/tcp

Y para evitar algun “ataque” podriamos hacer:

ufw limit ssh/tcp

Ya estas preparado para activarlo y probar?

sudo ufw enable

Aun no te gusta por que te diste cuenta que tenias paginas a las cuales querés acceder desde afuera?

sudo ufw disable

Hasta acá no es para nada complejo pero por que no hicimos demasiado 🙂

Si es un desktop y estas arrancando hay una forma grafica de poder manejar a ufw que es instalando gufw aunque recomiendo aprender a usar la consola!

sudo apt install gufw

Ahora que ya sabemos prender y apagar nuestro cortafuego y ademas darle acceso al ssh vamos a ir recordando y documentando lo que hacemos para no CAGARLA!

Si estamos en un servidor web y tenemos https configurado podemos decir que deberíamos habilitarlo en ufw de lo contrario nadie va a ver nuestras webs tan bonitas.

sudo ufw allow 443

Ahhh pero nosotros tenemos docker, tenemos nginx tenemos tenemos tenemos….

Ok, entonces saber primero que nada que las políticas predeterminadas se definen en el archivo: /etc/default/ufw y se pueden cambiar modificando manualmente el archivo. Las políticas de firewall son la base para construir reglas más complejas y definidas por el usuario. En general, las políticas predeterminadas iniciales de UFW son un buen punto de partida.

También tenemos Perfiles de Aplicación el cual es un archivo de texto en formato INI que describe el servicio y contiene reglas de firewall para el mismo. Los perfiles de aplicación se crean en el /etc/ufw/applications.d durante la instalación del paquete

Y eso como se come?

sudo ufw app list
perfil de aplicaicones
wtf? jajajaja solo cups

Esto por ejemplo nunca lo había hecho y acá estamos, solo encontró CUPS así que me puse a leer un poco mas para evitar lo peligroso de usarlo!!

Si tenes instalado Nginx en un VPS te van a aparecer las aplicaciones esas u otras comunes al caso como:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Para saber como están configuradas tiramos este comando:

sudo ufw app info 'Nginx Full'

Volviendo un poco al uso normal podremos ejercitar con comandos por ejemplo para no tener problemas de conexion desde tu casa al servidor. Mientras no cambies la ip de tu casa podrias hacer:

sudo ufw allow from ipdetucasaodnscreado

Algo importante es saber que por ejemplo con docker vamos a tener que manejar subredes. Siempre tener un papel y birome (boligrafo, lapiz, lapicera…) ayuda a ver las conexiones!!

sudo ufw allow from 204.32.113.0/24

Con el comando anterior permitiremos la conexion desde 204.32.113.1 a la 204.32.113.254

Ya sabemos que allow permite y deny deniega asi que no hay nada raro hasta aca.

Para listar podriamos:

sudo ufw status numbered

Y luego con el numero de la regla borrar la que queramos:

sudo ufw delete numerodereglaaborrar

Para reiniciar el servicio sencillamente:

sudo ufw reset

SI la queremos complejisar un poquito mas podemos ve IP Masquerading tambien conocido como enmascaramiento de ip ?? (mmm) na… IP Masquerading es una variante de NAT (traducción de direcciones de red) en el kernel de Linux que traduce el tráfico de red al reescribir las direcciones y puertos IP de origen y destino. Con IP Masquerading, puede permitir que una o más máquinas en una red privada se comuniquen con Internet utilizando una máquina Linux que actúa como puerta de enlace. La configuración de IP Masquerading con UFW implica varios pasos.

Lo primero que debemos hacer es crear el siguiente archivo:

sudo nano /etc/ufw/sysctl.conf

y dentro buscamos y descomentamos:

net/ipv4/ip_forward=1

Volvemos al archivo de configuración de UFW:

sudo nano /etc/default/ufw

y en la siguiente linea cambiamos DROP por ACCEPT:

DEFAULT_FORWARD_POLICY="ACCEPT"

Ahora debemos establecer la política predeterminada para la cadena POSTROUTING en la tabla nat y la regla de enmascaramiento. Para hacerlo, abrimos el archivo /etc/ufw/before.rules y

#Reglas y tabla de nateo
*nat
:POSTROUTING ACCEPT [0:0]

# Forwardeamos el trafico eth0 - Pone tu interfaces publica
-A POSTROUTING -s 10.9.0.0/16 -o eth0 -j MASQUERADE

# Y damos commit para los cambios
COMMIT

Cuales son las cosas que pusimos las listo acá:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
COMMIT

No te olvides de reemplazar eth0 en la línea -A POSTROUTING para que coincida con el nombre de la interfaz de red pública

Si me diste bola e instalaste Openvpn o Wireguard siguiendo el link que dejo a continuación vas a tener que:

sudo ufw allow 1194/udp comment 'Wireguard VPN server'

Por ultimo y nunca menos importante saber donde carajos están nuestros problemas y para eso los logs estarán a nuestra disposición:

sudo more /var/log/ufw.log
sudo tail -f /var/log/ufw.log

Tambien podemos ver los agregados últimamente o todos:

sudo ufw show added
sudo ufw show listening

Con esto ya es un buen comienzo para empezar a trabajar con UFW y asegurar un poquito la cosa!!! Como siempre te decimos:

Si lo escucho lo olvido, si lo veo lo recuerdo si lo hago lo aprendo!! Hasta el infinito y más allá!

Print Friendly, PDF & Email
Share:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *