PPTP クライアント用の仮想ハブを作成することは可能ですか?

PPTP クライアント用の仮想ハブを作成することは可能ですか?

A大学のネットワーク内に、ファイアウォールの背後にあるが実際の IP を持つ pptpd を実行している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  ---/

Google で検索すると、PacketiX.NET と UT-VPN にはそのような機能が組み込まれていることがわかりますが、通常の pptpd でそれを実行する方法がわかりません。ダミー インターフェイスを作成し、それを静的 IP で構成してから、このインターフェイス サブネットから IP を pptp-client に渡そうとしましたが、成功しませんでした。

他の VPN サーバーの使用は、非常に偏執的なファイアウォール設定と、あらゆる操作にウェットウェア SSH サーバーを使用する必要があるため、問題がありますA

答え1

PPTPd サーバーを使用できます (GRE プロトコルがネットワークによってフィルタリングされていない場合)。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

関連情報