상상하다
VPN을 통해 팀을 원격 서버에 연결하고 싶습니다. 이 VPN은 아래 설명된 대로 원격 서버에 있는 일부 규칙을 준수해야 합니다. 이미 OpenVPN을 설정했지만 다른 VPN 솔루션을 시도해 볼 의향이 있습니다.
다음을 통해 원격 서버에 연결합니다. 노트북 -> VPN 클라이언트(점도) -> Google Cloud의 VM에서 실행되는 OpenVPN 서버 -> Google Cloud VPN -> IKEv2를 사용하여 원격 게이트웨이에 연결하는 IPSec -> 원격 서버
가상 머신은 내부 IP 범위가 172.25.165.0/26이고 게이트웨이가 172.25.165.1인 Google Cloud의 가상 사설 클라우드에서 실행됩니다.
원격 서버는 로컬 IP 범위 172.23.133.0/24(172.23.133.1)에 위치하고 해당 게이트웨이에는 172.25.165.0/26 범위의 IP를 통해 연결되어야 하는 규칙 세트가 있습니다.
내 VPN 클라이언트는 일반적으로 연결 후 172.25.165.5를 할당합니다.
Cloud VPN에는 다음과 같은 터널 설정이 있습니다. VPN 터널 내부 IP 스택 유형 IPv4 멀티프로토콜 BGP 사용 안함 IPv6 공지 IP 범위 172.23.133.0/24 로컬 서브넷 l네트워크 172.25.165.0/26
Google Cloud의 경로는 다음과 같이 표시됩니다.
이름 | 설명하다 | 대상 IP 범위 | 우선순위 | 다음 홉 |
---|---|---|---|---|
기본 경로 1 | 인터넷에 대한 기본 경로 | 0.0.0.0/0 | 1000 | VPN 터널 |
기본 경로-1b | 서브넷에 대한 기본 로컬 경로 | 172.25.165.0/26 | 0 | VPN |
터널-2-경로-1 | 172.23.133.0/24 | 1000 | VPN 터널 |
방화벽은 이러한 경로에 대한 모든 수신 및 송신을 허용하도록 설정됩니다.
VM의 IP 전달이 켜져 있습니다.
OpenVPN 구성
local 172.25.165.2
port 1194
proto tcp-server
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
mode server
tls-server
topology subnet
push "topology subnet"
ifconfig 172.25.165.3 255.255.255.0
ifconfig-pool 172.25.165.5 172.25.165.200 255.255.255.0
route-gateway 172.25.165.2
push "route-gateway 172.25.165.2"
push "route 172.25.165.5 255.255.255.0 172.23.133.17"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
log /var/log/openvpn/openvpn.log
노트
VM에 ssh를 연결하면 원격 서버에 성공적으로 연결할 수 있습니다. sshuttle을 사용하여 노트북에서 VM을 통해 트래픽을 성공적으로 터널링할 수도 있습니다. VM을 통해 원격 서버에 연결할 수도 있습니다. VM을 통해 원격 서버를 ping할 수도 있습니다.
로컬 클라이언트(Viscosity 또는 OpenVPN 클라이언트)를 사용하여 OpenVPN 서버에 성공적으로 연결할 수 있습니다.
그러나 VPN에 연결된 후에는 원격 서버에 성공적으로 연결할 수 없습니다. VPN에서 원격 서버에 ping을 시도하면 "네트워크에 연결할 수 없습니다"라는 메시지가 나타납니다.
서버의 OpenVPN 로그에는 관련이 없습니다.
저는 OpenVPN 서버 구성 변경과 클라이언트 구성 변경을 다양하게 조합하여 시도했지만 성공하지 못했습니다. 또한 VM에 직접 경로를 추가해 보았습니다. 또한 OpenVPN을 통해 서버에 대한 액세스를 열려고 시도했지만 실패했으며 결과적으로 동일한 문제가 발생했습니다. 저는 3일 넘게 이 작업을 수행해 왔으며 OpenVPN에 대한 가능한 많은 문서와 OpenVPN에 대한 많은 StackExchange 질문을 읽었지만 답변을 찾을 수 없었습니다. 대부분의 기존 답변은 방화벽이나 라우팅을 문제로 지적하는 것 같습니다. 방화벽 로그에 차단된 이벤트가 표시되지 않으므로(그리고 이러한 모든 범위에 공개되도록 설정되어 있으므로) OpenVPN 구성에서 트래픽을 라우팅하려고 할 때 뭔가 잘못된 일을 하고 있다고 가정합니다. 이 시나리오에서 작동하도록 VM, 네트워크 및 구성을 어떻게 설정합니까?