OpenVPN unter Leopard ohne Tunnelblick

Bernd hat neulich ja schon mal über OpenVPN geschrieben: Wie man damit beispielsweise die Internetzensur in China umgehen könnte. Wir setzten OpenVPN auch intern als VPN Lösung ein und verbinden damit die beiden Rechenzentren mit unserem Büro und ermöglichen den Notebook Usern von unterwegs Zugriff auf alle notwendigen Ressourcen. Der große Vorteil von OpnVPN in diesem Szenario ist, dass es den Client für alle wichtigen Betriebssysteme gibt: Linux, Windows und Mac OS X.
Für den Mac gibt es vor allem das Tunnelblick Projekt, das OpenVPN zusammen mit einer GUI ausliefert. Das Programm ist schnell und einfach zu installieren und erlaubt dem User die VPN Verbindungen selbst zu steuern. Leider ist die Version für Leopard sehr instabil, denn sie ist bei mir immer wieder abgestürzt, so dass ich OpenVPN manuell killen und dann Tunnelblick neustarten musste. Dazu kommt, dass ich die GUI eigentlich gar nicht brauche. Als ich noch ein Windows Notebook hatte, hab ich OpenVPN als Dienst installiert, so dass es, wann immer möglich, automatisch eine VPN Verbindung aufgebaut hat.
Das wollte ich auch unter dem Mac wieder haben: Ein stabiles OpenVPN, keine GUI und das ganze vollkommend automatisch und transparent laufend. Mit MacPorts geht das und hier ist die Anleitung, wie man das ganze unter Leopard installiert und konfiguriert:

  1. Installation von Mac Ports
    1. Installieren der Apple Xcode 3.0 Developer Tools von der Apple CD
    2. Installieren der Apple X11 User und SDK Pakete von der Apple CD
    3. Herunterladen und Installieren des DMG Archivs von der MacPorts Website
  2. Installation von OpenVPN unter MacPorts
    sudo port selfupdate
    sudo port install openvpn2
  3. Installation des TUN/TUP Treibers für OS X von SourceForge
  4. Anlegen der Konfigurationsdateien
    sudo mkdir /etc/openvpn2
  5. Nun erstellt man sich eine entsprechende OpenVPN Kopnfiguration oder nimmt eine bestehende und kopiert dies, zusammen mit den Zertifikaten in diesen Ordner
  6. Als nächstes kann man OpenVPN testweise manuell starten:
    sudo /opt/local/sbin/openvpn2 /etc/openvpn2/myconfig.conf
  7. Wenn man möchte, dass OpenVPN automatisch als Demon startet, legt man sich eine entsprechende Datei an
    sudo touch /Library/LaunchDaemons/net.openvpn2.plist
  8. Und konfiguriert in der Datei seinen Demon:

    <?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>net.openvpn2</string>
            <key>OnDemand</key>
            <false/>
            <key>ProgramArguments</key>
            <array>
                    <string>/opt/local/sbin/openvpn2</string>
                    <string>--cd</string>
                    <string>/etc/openvpn2</string>
                    <string>--config</string>
                    <string>/etc/openvpn2/netways.conf</string>
            </array>
            <key>RunAtLoad</key>
            <true/>
            <key>TimeOut</key>
            <integer>90</integer>
            <key>WatchPaths</key>
            <array>
                    <string>/etc/openvpn2</string>
            </array>
            <key>WorkingDirectory</key>
            <string>/etc/openvpn2</string>
    </dict>
    </plist>
  9. Danach meldet man den Demon im System an, und er startet automatisch:
    sudo launchctl load -w /Library/LaunchDaemons/net.openvpn2.plist
  10. Ich hatte noch Probleme mit den Namensservern, aber da bei uns alle internen Namen sowieso über einen internen DNS Server aufgelöst werden, kann man /etc/resolver benutzen. Dazu legt man in diesem Verzeichnis pro Domain, für die man einen anderen Namensserver verwenden will, ein File an und schreibt dort seine Namensserver rein. Beispielsweise:
    touch /etc/resolver/int.meinefirma.de
    mit folgendem Inhalt:
    nameserver 192.168.1.10
    nameserver 192.168.1.11

Das wars. OpenVPN ist damit installiert und läuft im Hintergrund als Demon. Wenn es im Einzelfall Probleme mit OpenVPN gibt, killt man einfach den Demon und Launchd startet ihn dann automatisch wieder neu. OpenVPN baut im Hintergrund, sobald es das Gateway erreichen kann eine VPN Verbindung auf. Wichtig ist, dass man innerhalb von OpenVPN die passenden Routen setzt oder sie vom Server an den Client pushen lässt. Bei uns blockiert die Firewall im Büro das VPN Gateway, so dass es da keine Verbindung aufbauen kann. Es geht nur ausserhalb des Büros.
Bei mir läuft das jetzt mehr als 6 Monate sehr stabil. Immer wenn ich Probleme hatte und dachte es liegt an OpenVPN hat sich nachher herausgestellt, dass es doch etwas anderes war. Tunnelblick vorher, ist mir mindestens zweimal pro Tag abgestürzt.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.