NordVPN으로 다른 모든 것을 보호하면서 고용주의 VPN을 통해 원격으로 작업하는 방법은 무엇입니까?

NordVPN으로 다른 모든 것을 보호하면서 고용주의 VPN을 통해 원격으로 작업하는 방법은 무엇입니까?

따라서 목표는 간단합니다.

  • 고용주의 VPN 네트워크에서 원격으로 작업하고 싶습니다.
  • 동시에 NordVPN을 통해 다른 모든 것을 라우팅하고 싶습니다.

결국 고용주이든 NordVPN이든 모든 것이 일부 VPN 서비스를 거쳐야 합니다.


하지만 몇 가지 요구 사항이 있습니다.

  • NordVPN Threat Protection이 켜져 있어야 합니다(그러므로 DNS 설정을 할 수 없습니다).
  • 수동으로 변경하고 싶지 않습니다.iptables
  • 설정이 어느 정도 자동화되기를 원합니다.

답변1

내가 찾은 것은 다음과 같은 초기 설정이었습니다.

  1. NordVPN에서 일시적으로 연결을 끊습니다.
  2. 포괄적인 고용주 VPN 설정.
  3. 키워드 및 / 장치가 ip route포함된 줄을 참조하세요 . viatuntap
    • 고용주의 서브넷 목록을 추출합니다.
  4. nordvpn whitelist add subnet CIDR_NOTATION각 서브넷에 대해 제출하세요.
    • 모든 개별 주소는 접미사가 포함된 CIDR 표기법 IP으로 변환되어야 합니다./32
  5. NordVPN에 다시 연결하세요.

그 후 두 VPN 간에 완벽하게 작동하는 분할 터널링을 달성했습니다. 고용주가 푸시 경로를 변경하지 않는 한 저는 설정에 대해 책임을 지지 않습니다. 이 경우 초기 설정을 다시 진행하면 문제가 해결됩니다.

일부 고용주의 서브넷은 NordVPN과 충돌할 수 있지만, 내 고용주는 기본적으로 10.0.0.0/8을 사용하기 때문에 NordVPN은 충돌하지 않는 다른 노드로 장애 조치되는 것 같습니다.


이것은 나에게 맞는 쉘 스크립트입니다.

#!/bin/bash
set -eo pipefail

function user_can_modify_nordvpn {
    groups | grep -qE "nordvpn|root"
}

echo "First thing to do, is that you need to be disconnected from the NordVPN temporarily."
echo " - the reason is to first establish full connection to your office VPN and fetch all the routes provided by it"
echo " - once we know all the office VPN routes, we will whitelist the involved subnets to NordVPN and start it"
echo " - in that point, both VPNs should work fine - office traffic should be routed through office VPN and everything else through the NordVPN"
echo
read -n 1 -r -p "Now, I need you to prepare for a manual action. I will first disconnect you from NordVPN, so be prepared to spin up your office VPN. Are you ready? (Y/n)"
echo
[[ "$REPLY" =~ ^(Nn)$ ]] && exit 1 || true

if user_can_modify_nordvpn; then
    nordvpn d
else
    sudo nordvpn d
fi

read -n 1 -r -p "NordVPN disconnected. Please spin up your office VPN now. Press any key after you verified successfull connection."

OFFICE_SUBNETS=$(ip route | grep -E "tun|tap" | grep via | awk '{print $1}' | sed 's:^\([^/]\+\)$:\0/32:g' | tee /tmp/office_subnets.txt)

if test "$(echo "$OFFICE_SUBNETS" | wc -l)" -eq 0; then
    echo "ERROR: No 'tun'|'tap' devices found in 'ip route'! So no subnets to add for NordVPN whitelisting." >&2
    exit 1
fi

for subnet in $OFFICE_SUBNETS; do
    if user_can_modify_nordvpn; then
        nordvpn whitelist add subnet "$subnet"
    else
        sudo nordvpn whitelist add subnet "$subnet"
    fi
done

if user_can_modify_nordvpn; then
    nordvpn c
else
    sudo nordvpn c
fi

관련 정보