
로컬 LAN에 연결된 내부 인터페이스가 있는 VM이 있습니다. VM에 다른 사이트에 대한 OpenVPN 연결이 작동 중입니다. iptables를 사용하여 VPN 터널을 통해 로컬 인터페이스로 들어오는 모든 트래픽을 어떻게 전달합니까? 저는 우분투 배포판을 실행하고 있습니다.
답변1
기존 연결을 사용하여 사이트 간 VPN을 수행하려면 VPN을 통한 라우팅 경로가 있어야 합니다. 귀하가 사이트 #1에 있다고 가정해 보겠습니다(어느 것이 OpenVPN 서버 역할을 하는지에 관계없이 모든 것이 대칭입니다).
- 먼저 VPN 연결이 있는 VM("VPN#1"이라고 함)이 원격 서브넷에 도달할 수 있는지 확인해야 합니다. OpenVPN 구성을 사용하여 경로를 추가하면 됩니다.
- "VPN#1"이 OpenVPN 클라이언트인 경우 키워드를 사용하여 서버에 추가하거나 다음
push
을 사용하여 로컬로 추가할 수 있습니다.route
route
"VPN#1"이 OpenVPN 서버인 경우 , 또는 다음과 같은 외부 도구를 사용 하여 추가할 수 있습니다.ip
- "VPN#1"이 OpenVPN 클라이언트인 경우 키워드를 사용하여 서버에 추가하거나 다음
- 그런 다음 "VPN#1"과 원격 엔드포인트 모두에 IP 전달이 활성화되어 있는지 확인해야 합니다( 를 사용하여 추가
net.ipv4.ip_forward=1
및/etc/sysctl.conf
다시 로드sysctl -p
). - VPN#1이 기본 게이트웨이이면 완료된 것입니다. 그렇지 않은 경우 기본 게이트웨이에 원격 LAN에 대한 고정 경로를 추가하거나 LAN의 각 호스트에 고정 경로를 추가할 수 있습니다.
- VPN#1의 방화벽을 확인하세요. LAN과 VPN 인터페이스 간의 트래픽을 허용하도록 구성되어야 합니다( 표를 사용하여
FORWARD
체인 참조 ).filter
iptables
원격 측에서 이것을 반복하면 모든 것이 작동할 것입니다. 문제를 디버깅하려면 ping
및 를 사용하세요 .traceroute
답변2
좋아요, 이제 작동합니다. 내 로컬 LAN 반대쪽에 있는 서버를 RDP할 수 있습니다. smb를 사용하여 반대편 Windows 서버의 관리 공유에 액세스할 수 없습니다. 이것은 내가 사용한 IP 테이블 규칙입니다.
/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE /sbin/iptables -A FORWARD -i tun0 -o ens160 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i ens160 -o tun0 -j 수락