OpenVPN을 통해 VM에서 포트 전달

OpenVPN을 통해 VM에서 포트 전달

이 문제에 대해 이미 다른 스레드에서 설명했다면 죄송합니다. 하지만 어디에서도 내 문제에 대한 해결책을 찾을 수 없었습니다.

첨부된 네트워크 다이어그램에 대해 질문이 있습니다. 라우터 R2 아래의 호스트 192.168.1.21에서 라우터 R1 아래의 호스트 192.168.1.121까지 모든 서비스의 포트를 영구적으로 공유할 수 있습니까? 라우터 R1 아래의 네트워크에는 192.168.1.112 서버가 있으며, 이는 tun0 네트워크(OpenVPN)를 통해 라우터 R2 아래의 192.168.1.20 서버에 연결됩니다.

SSH를 통해 포트를 성공적으로 터널링할 수 있지만 영구적인 솔루션을 원합니다. 귀하의 도움에 감사드립니다.

모든 서버에는 Linux 운영 체제가 있습니다.

도표

편집: 2024-03-08

R2 아래의 네트워크 내부 주소를 192.168.2.0으로 변경했습니다. 두 라우터 모두에 경로를 추가했습니다. 아래는 PC1에서 Tracert를 실행한 결과입니다.

트레이서트 1

트레이서트 2

라우터의 웹사이트(192.168.2.1)가 브라우저에 표시되지 않습니다. 주소 192.168.2.21은 다른 서버로 연결되어야 합니다. 192.168.2.21 서버는 192.168.2.0 네트워크 내부에서 아무런 문제 없이 ping을 수행할 수 있습니다.

192.168.2.21에서 192.168.1.1로의 Tracert

트레이서트

라우터 구성 192.168.1.1

R1 구성

라우터 구성 192.168.2.1

R2 구성

서버 구성

local 192.168.1.112
port 1194
proto tcp4
dev tun
ca ca.crt
cert server-dell.crt
key server-dell.key  # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
#ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
client-config-dir ccd
;push "route 192.168.1.0 255.255.255.0"
;push "route 10.8.0.0 255.255.255.0"
;push "route 192.168.2.0 255.255.255.0"
;route 192.168.2.0 255.255.255.0
client-to-client
push "route 192.168.1.0 255.255.255.0"
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
route 192.168.2.0 255.255.255.0
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
status /var/log/openvpn/openvpn-status.log
verb 3

CCD 구성

ifconfig-push 10.8.0.10 255.255.255.0
iroute 192.168.2.0 255.255.255.0

다른 구성 변형을 시도했습니다.

편집: 2024-03-09

PC1 수준(192.168.1.120)에서 10.8.0.1의 서비스를 브라우저에 표시할 수 있지만 10.8.0.10 또는 192.168.2.20의 서비스를 표시할 수 없습니다. VM Windows 10(192.168.2.22)에서 주소 192.168.1.112의 서비스를 표시할 수 있습니다. 클라이언트의 LAN은 마치 서버의 LAN이 클라이언트의 LAN을 보지 못하는 것처럼 openvpn 서버의 LAN을 봅니다.

2024-03-10 수정

그것이 중요한지 모르겠지만 tun0 네트워크의 클라이언트는 동일한 LAN의 다른 호스트입니다. 호스트 IP는 192.168.2.115입니다. 도표에는 없군요

편집: 2024-03-11

iptables에 적절한 규칙을 추가한 후, 내 openVPN 서버(10.8.0.1 또는 192.168.1.112)는 이제 클라이언트 측에서 LAN 시스템을 ping하고 브라우저(예: Webmin)에 프로그램을 표시할 수 있습니다. 불행하게도 서버 측 LAN 수준(예: PC1 192.168.2.120)에서는 클라이언트 LAN 측 컴퓨터에 ping을 보낼 수 없습니다(예: Webadmin이 작동하지 않음).

에드니트 2024-03-12

성공. 드디어 LAN to LAN 연결에 성공했습니다. 해결책은 OpenVPN 서버에서 실행되는 다음 명령이었습니다.

iptables -t nat -A POSTROUTING -o enp2s0  -j MASQUERADE
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o enp2s0 -J ACCEPT
iptables -A FORWARD -i tun0 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i enp2s0 -o tun0 -j ACCEPT

관련 정보