Ich habe also einen relativ einfachen OpenVPN-Server eingerichtet tun
und habe Probleme, es so einzurichten, dass der Server mit allen verbundenen Clients kommunizieren kann.
Ich habe derzeit zwei Client-Gruppen: Einige verwenden das VPN nicht zur Verbindung mit dem Internet (nur um mit den anderen Clients zu kommunizieren) und andere senden redirect-gateway
ihren gesamten Datenverkehr über das VPN.
So wie ich es eingerichtet habe, können alle verbundenen Clients mit dem Server und mit den anderen Clients kommunizieren. Vom Server aus kann ich jedoch nur die Clients erreichen (z. B. pingen), die redirect-gateway
ihren gesamten Datenverkehr über das VPN senden. Die Clients, die diese Konfiguration nicht verwenden, können den Server pingen, aber der Server kann nicht zurückpingen (sie antworten nicht darauf und es tritt eine Zeitüberschreitung ein).
Wie kann ich das Routing so einrichten, dass der Server auch dann mit Clients kommunizieren kann, wenn diese das VPN nicht als Standard-Gateway verwenden?
Hier ist die relevante Serverkonfiguration:
port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1
Im Client-Konfigurationsverzeichnis auf dem Server hat jeder Client eine Datei wie diese (nur um jedem eine statische IP zuzuweisen):
ifconfig-push 10.7.0.10 255.255.255.0
Die relevanten Teile der lokalen Client-Konfiguration:
client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind
Die Clients, die das VPN für den Internetzugriff verwenden, ergänzen redirect-gateway def1 bypass-dhcp
ihre Konfiguration.
Ich verwende ufw
für die Firewall meines Servers – hier ist die entsprechende Konfiguration (in /etc/ufw/before.rules):
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}
Da dies auf einem OpenVZ-VPS läuft, kann ich es nicht verwenden MASQUERADE
, aber das oben genannte scheint genauso gut zu funktionieren.
Irgendwelche Ideen, wie man das richtig einrichtet? Vielen Dank im Voraus. Falls es wichtig ist, auf dem Server läuft CentOS.