是否可以為 PPTP 用戶端建立虛擬中心?

是否可以為 PPTP 用戶端建立虛擬中心?

在大學網路內有一台運行 pptpd 的 Linux 機器 ( A),該網路位於防火牆後面,但具有真實 IP。我無權訪問該網絡,也不了解該網絡中的 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-client,但沒有成功。

使用其他 VPN 伺服器是有問題的,因為相當偏執的防火牆設定和我必須使用 wetware ssh 伺服器來進行A.

答案1

您可以使用 PPTPd 伺服器(如果您的網路未過濾 GRE 協定)。 PPTD 將為伺服器上的每個用戶端建立新的 ppp 介面。

例如您指定

localip 192.168.101.1-100
remoteip 192.168.101.101-200

因此每個 ppp* 介面都會從 192.168.101 子網路取得新的 IP。最後,您可以將來自該子網路的所有流量 NAT 到您的真實 IP(不要忘記 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

相關內容