OpenVPN ist eine schnelle und einfache Möglichkeit, sich auch von unterwegs mit seinem Netzwerk zu verbinden. Allerdings scheint es auf den ersten Blick keine einfache Möglichkeit zu geben, die DNS-Einstellungen zu ändern. Der Zugriff auf SERVER mag zwar innerhalb des Büros funktionieren, weil dort ein DNS- oder WINS Server die entsprechenden Einstellungen verteilt. Aber “on the road” gibt es dann Probleme bei der Verbindung mit \SERVER.

Als Lösung haben wir beim Kunden (Windows7-Client) zwei hosts-Dateien angelegt - eine für den internen und eine für den externen gebrauch (hosts.intern und hosts.extern).

Beim Aufbau der OpenVPN Verbindung wird automatisch ein Skript gestartet, das die hosts.extern Datei nach hosts kopiert.

Beim Abbau der OpenVPN Verbindung wird ein anderes Skript gestartet, das die hosts.intern Datei nach hosts kopiert.

Ermöglicht wird dies durch die up bzw. down Parameter in der OpenVPN-Konfigurationsdatei, die die Angabe eines Skriptes erlauben.

OpenVPN Konfigurationsdatei:

# mein.name.ovpn
client
dev tun
proto tcp
remote mein.server.net
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert mein.name.crt
key mein.name.key
comp-lzo
verb 3
ns-cert-type server
route-method exe
route-delay 2

# Skript-Sicherheit einstellen
script-security 2
# Skript beim Verbindungsaufbau ausführen
up "C:\\ADMIN\\openvpn.up.bat"
# Skript beim Verbindungsabbau ausführen
down "C:\\ADMIN\\openvpn.down.bat"

Skript für den Verbindungsaufbau:

rem C:\ADMIN\openvpn.up.bat
copy C:\Windows\System32\drivers\etc\hosts.extern C:\Windows\System32\drivers\etc\hosts /Y 

Skript für den Verbindungsabbau:

rem C:\ADMIN\openvpn.down.bat
copy C:\Windows\System32\drivers\etc\hosts.intern C:\Windows\System32\drivers\etc\hosts /Y 

Hosts-Datei für den externen Gebrauch:

# c:\windows\system32\drivers\etc\hosts.extern
10.89.23.114	SERVERNAME

Hosts-Datei für den internen Gebrauch:

# c:\windows\system32\drivers\etc\hosts.intern
192.168.2.2	SERVERNAME