posts
WireGuard en un VPS de 2 GB sin morir en el intento
Tres intentos me costó entender por qué el túnel subía pero no pasaba un solo paquete. No era WireGuard. Era que nftables hacía exactamente lo que le había pedido: descartar todo lo que no estaba en la lista.
Lo que monté
Un servidor WireGuard en 10.99.0.1/24 con dos clientes, y el SSH del VPS cerrado a internet: solo se entra por el túnel. Eso obliga a ordenar las reglas con cabeza, porque si te equivocas te has quedado fuera de tu propia máquina.
El bloque que importa
# /etc/nftables.conf — solo lo esencial
chain input {
type filter hook input priority 0; policy drop;
iifname "lo" accept
ct state established,related accept
iifname "wg0" ip saddr 10.99.0.0/24 tcp dport 22 \
ct state new counter accept
}
Si vas a tocar el firewall de la única máquina por la que entras, ten una segunda vía de acceso antes de recargar nada. La primera vez no la tenía.
Errores que cometí
- Olvidar
ct state established,related: el handshake entraba, la respuesta no salía. - Recargar sin validar antes con
nft -c -f. - Dar por hecho que el firewall del proveedor y el del sistema eran el mismo.
El resto del montaje, con el fichero completo y los clientes, está en la ficha del laboratorio.