A
방화벽 뒤의 대학 네트워크 내부에 pptpd를 실행하지만 실제 IP를 사용하는 Linux 시스템( )이 있습니다 . 저는 이 네트워크의 IP 배포에 대한 액세스 권한이나 지식이 없으므로 remoteip X.Y.Z.200-250
충돌이 발생할 수 있으므로 pptpd 구성에서 설정할 수 없습니다 . 연결된 모든 VPN 클라이언트에 대해 가상 허브를 생성한 다음 실제 네트워크에 NAT하는 것이 가능한지 궁금합니다.
다음은 내가 달성하고 싶은 것을 보여주는 몇 가지 투박한 ASCII 그래픽입니다.
PPTP-client ---\ ________________ ________________________
\ | 10.0.0.0/24 | |10.0.0.0/24 real ip|
PPTP-client ----->| Virt. hub (A) |----|ethX A eth0|----- Outside world
/ |_______________| |_______________________|
PPTP-client ---/
인터넷 검색에서는 PacketiX.NET과 UT-VPN에 이러한 기능이 내장되어 있음을 보여주지만 일반 pptpd에서는 이를 수행하는 방법을 모릅니다. 더미 인터페이스를 만들고 고정 IP로 구성한 다음 이 인터페이스 서브넷의 IP를 pptp 클라이언트에 제공하려고 시도했지만 성공하지 못했습니다.
다른 VPN 서버를 사용하는 것은 매우 편집증적인 방화벽 설정과 A
.
답변1
PPTPd 서버를 사용할 수 있습니다(GRE proto가 네트워크에서 필터링되지 않는 경우). PPTD는 서버의 각 클라이언트에 대해 새로운 ppp 인터페이스를 만듭니다.
예를 들어 다음과 같이 지정합니다.
localip 192.168.101.1-100
remoteip 192.168.101.101-200
따라서 모든 ppp* 인터페이스는 192.168.101 서브넷에서 새 IP를 얻습니다. 마지막으로 이 서브넷에서 실제 IP로 모든 트래픽을 NAT할 수 있습니다(net.ipv4.ip_forward=1을 잊지 마세요).
# here could be full MASQUERADE or SNAT
iptables -t nat -I POSTROUTING -o real_interface0 -j MASQUERADE
# forward for all ppp + MSS tune, conntrack recommended
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtu