Statische Route hintricksen
Ich habe in meinem LAN mehrere Macs und einen davon als OpenVPN-Server eingerichtet, sodass ihn OpenVPN-Clients auch von draußen erreichen können – dann erhalten sie vom OpenVPN-Server eine IP-Adresse aus dem VPN-Bereich (10.11.12.x). Dafür habe ich im ADSL-Router eine Port-Weiterleitung auf den VPN-Server eingerichtet. Zugriffe auf den Server klappen zuverlässig (10.11.12.1), nicht aber auf die LAN-Stationen, denn die erhalten vom Router Adressen aus dem Bereich 192.168.0.x. Im VPN-Server, der im LAN die Adresse 192.168.0.10 hat, ist IP-Forwarding zum Router-Netz eingerichtet, aber die LAN-Stationen wissen nicht, über welche Route sie antworten sollen. Ich habe einen AirPort-Extreme-Router und das User-Interface bietet keine Möglichkeiten, zusätzliche Routen einzutragen.
Ich habe in meinem LAN mehrere Macs und einen davon als OpenVPN-Server eingerichtet, sodass ihn OpenVPN-Clients auch von draußen erreichen können – dann erhalten sie vom OpenVPN-Server eine IP-Adresse aus dem VPN-Bereich (10.11.12.x). Dafür habe ich im ADSL-Router eine Port-Weiterleitung auf den VPN-Server eingerichtet. Zugriffe auf den Server klappen zuverlässig (10.11.12.1), nicht aber auf die LAN-Stationen, denn die erhalten vom Router Adressen aus dem Bereich 192.168.0.x. Im VPN-Server, der im LAN die Adresse 192.168.0.10 hat, ist IP-Forwarding zum Router-Netz eingerichtet, aber die LAN-Stationen wissen nicht, über welche Route sie antworten sollen. Ich habe einen AirPort-Extreme-Router und das User-Interface bietet keine Möglichkeiten, zusätzliche Routen einzutragen.
Viele handelsübliche Router können die Antworten der LAN-Stationen selbstständig zum VPN-Server zurückleiten, dafür muss man lediglich eine zusätzliche statische Route für das VPN-Netz eintragen (static route). Wenn diese Funktion wie bei Airport-Routern fehlt, muss man stattdessen auf jeder LAN-Station die Route eintragen. Einen Mac richtet man so ein (Administrator-Rechte erforderlich):
sudo route add -net 10.11.12 192.168.0.10
Und so lässt sich diese Route löschen:
sudo route delete -net 10.11.12 192.168.0.10
Man kann die Route auf verschiedene Arten nach jedem Systemstart neu setzen lassen, beispielsweise ĂĽber einen LaunchDaemon. Die wenigen Zeilen kann man in einem Editor wie pico im Terminal eingeben (Administratorrechte erforderlich):
sudo pico /Library/LaunchDaemons/staticRoute-VPN.plist
Die Datei sollte so aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>StaticRoute-VPN</string>
<key>ProgramArguments</key>
<array>
<string>route</string>
<string>add</string>
<string>-net</string>
<string>10.11.12</string>
<string>192.168.0.10</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Die Datei speichert man mit CTRL-X und Y. Die wichtigen Parameter sind der über fünf Zeilen verteilte Kommandozeilenbefehl sowie der Schlüssel RunAtLoad, der festlegt, dass der Daemon nur einmal während des Starts aufgerufen wird. Um ihn auszuprobieren, gibt man diesen Befehl ein:
sudo launchctl load \
/Library/LaunchDaemons/staticRoute-VPN.plist
Wenn er die Route korrekt setzt, legt man mit der Option -w fest, dass der Daemon bei jedem Start geladen wird:
sudo launchctl load -w \
/Library/LaunchDaemons/staticRoute-VPN.plist
Und mit diesem Befehl
sudo launchctl unload -w \
/Library/LaunchDaemons/staticRoute-VPN.plist
schaltet man ihn ab. Auf Windows-Rechnern sieht der Befehl so aus:
route add 10.11.12.0 mask 255.255.255.0 192.168.0.10
Mit dem Schalter -p vor dem add lässt sich die Route „persistent“ eintragen, sodass sie auch nach dem nächsten Booten noch da ist. Wenn man übers VPN auf LAN-Stationen wie DVB-Receiver oder Überwachungskameras zugreifen will, aber mangels Konfigurierbarkeit keine feste Route hinzufügen kann, muss man doch zu einem anderen Router greifen.
(dz)