Es gibt eine Linux-Maschine ( A
), auf der pptpd in einem Universitätsnetzwerk hinter einer Firewall, aber mit einer echten IP-Adresse, läuft. Ich habe keinen Zugriff oder keine Kenntnisse über die IP-Verteilung in diesem Netzwerk, daher kann ich nicht einfach remoteip X.Y.Z.200-250
die pptpd-Konfiguration festlegen, da dies zu Konflikten führen könnte. Ich frage mich, ob es möglich ist, einen virtuellen Hub für alle verbundenen VPN-Clients zu erstellen, der dann per NAT an das echte Netzwerk angeschlossen wird.
Hier sind einige klobige ASCII-Grafiken, die veranschaulichen, was ich erreichen möchte:
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 ---/
Beim Googeln zeigt sich, dass PacketiX.NET und UT-VPN über solche integrierten Funktionen verfügen, aber ich habe keine Ahnung, wie ich das mit einem normalen pptpd machen soll. Ich habe versucht, eine Dummy-Schnittstelle zu erstellen, sie mit einer statischen IP zu konfigurieren und dann dem pptp-Client die IPs aus diesem Schnittstellensubnetz zu geben, aber ohne Erfolg.
Die Verwendung anderer VPN-Server ist problematisch, da die Firewall-Einstellungen ziemlich paranoide sind und ich für alle Vorgänge einen Wetware-SSH-Server verwenden muss A
.
Antwort1
Sie können den PPTPd-Server verwenden (wenn das GRE-Protokoll nicht von Ihrem Netzwerk gefiltert wird). PPTD erstellt für jeden Client auf Ihrem Server eine neue PPP-Schnittstelle.
Sie geben beispielsweise an
localip 192.168.101.1-100
remoteip 192.168.101.101-200
Somit erhält jede ppp*-Schnittstelle eine neue IP aus dem Subnetz 192.168.101. Schließlich können Sie den gesamten Datenverkehr aus diesem Subnetz per NAT auf Ihre echte IP umleiten (vergessen Sie nicht 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