
OpenVPN: Clients sind mit Server = Firewall verbunden, können aber nicht auf Datenbank im LAN zugreifen
Ich habe 5 VLANs:
vlan 2: 192.168.12.0/24
vlan 3: 192.168.13.0/24
vlan 4: 192.168.14.0/24
vlan 5: 192.168.15.0/24
vlan 6: 192.168.100.0/24
Alle LANs waren mit dem Cisco 3650 Layer 3-Switch verbunden. Der Layer 3-Switch ist mit der Firewall verbunden (CentOS 6.2, Squid und Shorewall 4 installiert);
Firewall hat eth0: 172.16.1.101 verbunden mit Modem:172.16.1.1; eth1: 192.168.99.99 verbunden mit Switch-Layer 3: 192.168.99.100 kein Switch-Port.
VPN-Client stellt Verbindung her und hat IP-Klasse: 192.168.10.0/24. Jetzt ist der gesamte Datenverkehr vom LAN zum Internet normal, kein Problem.
Wenn Clients OpenVPN verwenden, stellen sie erfolgreich eine Verbindung zum Server her, können aber keinen Ping senden oder auf Computer im LAN zugreifen. Was habe ich falsch gemacht?
Antwort1
Es könnte sich sowohl um ein Routing- als auch ein Firewall-Problem handeln. Zunächst sollten Sie prüfen, ob Sie den Server/die Firewall vom VPN-Client aus anpingen können. Prüfen Sie, ob Sie die Adresse von eth1 und die von tun1 anpingen können.
Wenn diese Prüfung fehlschlägt, fehlt wahrscheinlich eine Route. Vielleicht zwingt OpenVPN den Client nicht, Routen für das interne Subnetz festzulegen.
Auf dem Client (vorausgesetzt es handelt sich um einen Linux-Client) müssen Sie ausführen route -n
und prüfen, ob er über ein Gateway für Ihr Remote-LAN verfügt.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.99.0 192.168.10.## 255.255.255.0 UG 0 0 0 tun1
...
192.168.10.## sollte die Adresse der Tun1-Schnittstelle auf dem Server/der Firewall sein.
Wenn die Route vorhanden ist, sollten Sie zumindest die Iface-Adresse von tun1 anpingen können.
Zum schnelleren Debuggen können Sie Shorewall deaktivieren. Außerdem sollten Sie Ihre Firewall-Regeln überprüfen. Sie müssen die Weiterleitung von der VPN-Tun-Schnittstelle zum LAN und umgekehrt aktivieren.
Die Verwendung von IPTables sollte etwa so aussehen:
# iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
# iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT
tun+ steht für „any tun“, Sie sollten Ihr echtes Tun-Gerät verwenden und es mit ifconfig überprüfen.