¿Qué hay de malo en las reglas de iptables de NordVPN? Su personal no puede solucionar el problema.

¿Qué hay de malo en las reglas de iptables de NordVPN? Su personal no puede solucionar el problema.

La aplicación NordVPN para Linux tiene una función de lista blanca de puertos y subredes. Se habilita con estos comandos (para mi puerto y subred):

nordvpn whitelist add subnet 192.168.1.0/24
nordvpn whitelist add port 22

Sin embargo, cuando ese dispositivo está conectado a la VPN, no puedo acceder a él mediante SSH desde otro dispositivo en mi subred. Escribí al soporte de NordVPN y me respondieron:

Actualmente, tenemos algunos problemas con la aplicación NordVPN para Linux con respecto a la lista blanca de puertos y subredes.

No tenían ningún consejo útil que ofrecer. Eché un vistazo a las reglas de iptables. Me parecen bien, pero cuando eliminé todas las reglas (mientras estaba conectado a la VPN), pude establecer la conexión SSH a este dispositivo desde mi otro dispositivo local. Esto indica que las reglas no funcionan correctamente.

Las reglas de NordVPN son:

# Generated by iptables-save v1.8.4 on Sun Apr 12 16:11:29 2020
*filter
:INPUT DROP [86:19526]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [103:7935]
-A INPUT -i nordlynx -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 89.87.71.71/32 -i lo -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 89.87.71.71/32 -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 89.87.71.71/32 -i nordlynx -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.5.0.0/16 -i nordlynx -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p udp -m udp --dport 22 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p udp -m udp --dport 6568 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p tcp -m tcp --dport 6568 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p udp -m udp --dport 7070 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p tcp -m tcp --dport 7070 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -p udp -m udp --dport 51820 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i lo -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p udp -m udp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p udp -m udp --dport 6568 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m tcp --dport 6568 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p udp -m udp --dport 7070 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m tcp --dport 7070 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p udp -m udp --dport 51820 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -d 103.86.99.99/32 -o lo -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 103.86.96.96/32 -o lo -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 103.86.99.99/32 -o nordlynx -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 103.86.96.96/32 -o nordlynx -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o nordlynx -j ACCEPT
-A OUTPUT -d 89.87.71.71/32 -o lo -j ACCEPT
-A OUTPUT -d 127.0.0.0/8 -o lo -j ACCEPT
-A OUTPUT -d 89.87.71.71/32 -o eth0 -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -o eth0 -j ACCEPT
-A OUTPUT -d 89.87.71.71/32 -o nordlynx -j ACCEPT
-A OUTPUT -d 10.5.0.0/16 -o nordlynx -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -o lo -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -o eth0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Sun Apr 12 16:11:29 2020

Los lavé con:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

Mi conexión SSH funcionó como deseaba cuando se eliminaron las reglas. (Restablecí las reglas de NordVPN reiniciándolo).¿Qué debe cambiar en las reglas anteriores para que este dispositivo acepte conexiones SSH entrantes (puerto 22) desde la LAN?

Información agregada en respuesta al comentario:

# ip -br address
lo               UNKNOWN        127.0.0.1/8
eth0             UP             192.168.1.3/24
nordlynx         UNKNOWN        10.5.0.2/16

# ip rule
0:      from all lookup local
32764:  from all lookup main suppress_prefixlength 0
32765:  not from all fwmark 0xca6c lookup 51820
32766:  from all lookup main
32767:  from all lookup default

# ip route
default via 192.168.1.1 dev eth0 proto dhcp metric 20100
10.5.0.0/16 dev nordlynx proto kernel scope link src 10.5.0.2
192.168.1.0/24 via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.3 metric 100

ip route show table 51820
default dev nordlynx scope link

Estoy usando la tecnología Wireguard de NordVPN (nordlynx). Pero el problema existe cuando se utiliza tecnología openvpn en lugar de wireguard. Probé en ambos sentidos.

Respuesta1

Tuve un problema similar, intenta incluirlo en la lista blanca.192.168.0.0/16en lugar de 192.168.1.0/24. Esto funcionó para mí en la versión 3.8.10.

David, del soporte de NordVPN, me pidió que lo probara por si acaso y funcionó. Dijo que no podía explicar por qué, porque en teoría /24debería haber funcionado, pero como ahora me está funcionando no puedo quejarme demasiado.

Además, pude eliminar el puerto 22 de mi lista blanca sin que rompiera SSH.

información relacionada