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(포트 22)에서 들어오는 SSH 연결을 허용하려면 위 규칙을 어떻게 변경해야 합니까?

댓글에 추가된 정보:

# 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를 제거할 수 있었습니다.

관련 정보