NordVPN의 iptables 규칙에 어떤 문제가 있나요? 직원이 문제를 해결할 수 없음

NordVPN의 iptables 규칙에 어떤 문제가 있나요? 직원이 문제를 해결할 수 없음

Linux용 NordVPN 앱에는 포트 및 서브넷 화이트리스트 기능이 있습니다. 다음 명령으로 활성화됩니다(내 포트 및 서브넷의 경우).

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

그러나 해당 장치가 VPN에 연결되면 내 서브넷의 다른 장치에서 SSH를 통해 연결할 수 없습니다. NordVPN 지원을 작성했고 그들은 다음과 같이 응답했습니다.

현재 포트 및 서브넷 화이트리스트와 관련하여 Linux용 NordVPN 애플리케이션에 몇 가지 문제가 있습니다.

그들은 제공할 만한 유용한 조언이 없었습니다. iptables 규칙을 살펴보았습니다. 제 눈에는 괜찮은 것 같지만 VPN에 연결되어 있는 동안 모든 규칙을 플러시했을 때 다른 로컬 장치에서 이 장치에 대한 SSH 연결을 만들 수 있었습니다. 이는 규칙이 올바르게 작동하지 않음을 나타냅니다.

NordVPN의 규칙은 다음과 같습니다:

# 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

나는 다음과 같이 플러시했습니다.

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

규칙이 플러시될 때 SSH 연결이 원하는 대로 작동했습니다. (NordVPN을 다시 시작하여 규칙을 복원했습니다.)이 장치가 LAN에서 들어오는 SSH 연결(포트 22)을 허용하려면 위 규칙에서 무엇을 변경해야 합니까?

댓글에 대한 응답으로 추가된 정보:

# 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

저는 NordVPN의 와이어가드 기술(nordlynx)을 사용하고 있습니다. 그러나 wireguard 대신 openvpn 기술을 사용할 때 문제가 존재합니다. 두 가지 방법을 모두 테스트했습니다.

답변1

비슷한 문제가 있었습니다. 허용 목록에 추가해 보세요.192.168.0.0/16대신에 192.168.1.0/24. 이것은 버전 3.8.10에서 나에게 효과적이었습니다.

NordVPN 지원팀의 David는 만일의 경우에 대비해 시도해 보라고 했고, 효과가 있었습니다. 그는 이론적으로는 /24효과가 있었어야 했기 때문에 이유를 설명할 수 없다고 말했습니다. 하지만 지금은 나에게 효과가 있기 때문에 너무 불평할 수는 없습니다.

또한 SSH를 중단하지 않고 화이트리스트에서 포트 22를 제거할 수 있었습니다.

관련 정보