Was ist falsch an den iptables-Regeln von NordVPN? Ihr Personal kann das Problem nicht beheben

Was ist falsch an den iptables-Regeln von NordVPN? Ihr Personal kann das Problem nicht beheben

Die NordVPN-App für Linux verfügt über eine Whitelist-Funktion für Ports und Subnetze. Sie wird mit diesen Befehlen aktiviert (für meinen Port und mein Subnetz):

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

Wenn dieses Gerät jedoch mit dem VPN verbunden ist, kann ich es von einem anderen Gerät in meinem Subnetz aus nicht per SSH erreichen. Ich habe den NordVPN-Support angeschrieben und sie antworteten:

Derzeit haben wir einige Probleme mit der NordVPN-Anwendung für Linux im Zusammenhang mit der Whitelist für Ports und Subnetze.

Sie hatten keinen hilfreichen Rat anzubieten. Ich habe mir die iptables-Regeln angesehen. Sie scheinen mir in Ordnung zu sein, aber als ich alle Regeln gelöscht habe (während ich mit dem VPN verbunden war), konnte ich von meinem anderen lokalen Gerät aus die SSH-Verbindung zu diesem Gerät herstellen. Dies deutet darauf hin, dass die Regeln nicht richtig funktionieren.

Die Regeln von NordVPN lauten:

# 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

Ich habe sie gespült mit:

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

Meine SSH-Verbindung funktionierte wie gewünscht, als die Regeln gelöscht wurden. (Ich habe die Regeln von NordVPN durch einen Neustart wiederhergestellt.)Was muss an den oben genannten Regeln geändert werden, damit dieses Gerät eingehende SSH-Verbindungen (Port 22) vom LAN akzeptiert?

Als Antwort auf den Kommentar hinzugefügte Informationen:

# 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

Ich verwende die Wireguard-Technologie von NordVPN (Nordlynx). Das Problem besteht jedoch weiterhin, wenn ich anstelle von Wireguard die OpenVPN-Technologie verwende. Ich habe beide Möglichkeiten getestet.

Antwort1

Ich hatte ein ähnliches Problem. Versuchen Sie es mit einer Whitelist.192.168.0.0/16anstelle von 192.168.1.0/24. Bei mir hat das bei Version 3.8.10 funktioniert.

David vom NordVPN-Support hat mich vorsichtshalber dazu gebracht, es auszuprobieren, und es hat funktioniert. Er sagte, er könne nicht erklären, warum, denn theoretisch /24hätte es funktionieren müssen, aber da es jetzt bei mir funktioniert, kann ich mich nicht allzu sehr beschweren.

Außerdem konnte ich Port 22 aus meiner Whitelist entfernen, ohne dass SSH dadurch unterbrochen wurde.

verwandte Informationen