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:
- Installation von Mac Ports
- Installieren der Apple Xcode 3.0 Developer Tools von der Apple CD
- Installieren der Apple X11 User und SDK Pakete von der Apple CD
- Herunterladen und Installieren des DMG Archivs von der MacPorts Website
- Installation von OpenVPN unter MacPorts
sudo port selfupdate
sudo port install openvpn2
- Installation des TUN/TUP Treibers für OS X von SourceForge
- Anlegen der Konfigurationsdateien
sudo mkdir /etc/openvpn2
- Nun erstellt man sich eine entsprechende OpenVPN Kopnfiguration oder nimmt eine bestehende und kopiert dies, zusammen mit den Zertifikaten in diesen Ordner
- Als nächstes kann man OpenVPN testweise manuell starten:
sudo /opt/local/sbin/openvpn2 /etc/openvpn2/myconfig.conf
- Wenn man möchte, dass OpenVPN automatisch als Demon startet, legt man sich eine entsprechende Datei an
sudo touch /Library/LaunchDaemons/net.openvpn2.plist
- Danach meldet man den Demon im System an, und er startet automatisch:
sudo launchctl load -w /Library/LaunchDaemons/net.openvpn2.plist
- 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
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>
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.
sudo port install tuntaposx
dann kann man tuntap auch über macports beziehen.
Da mir Tunnelblick auch zu instabil war und ich doch dann eher zu faul bin bei Bedarf von Hand den Tunnel aufzubauen habe ich folgende Alternative gefunden: http://www.viscosityvpn.com/
Läuft bisher stabil…. 🙂
Hallo,
ich habe ein kleines Problem mit der Anleitung. Und zwar mit 7. Muss ich da irgendwas ändern? Oder passt das alles so?
Und bei 8. sagt er mir, dass er die Datei nicht finden kann. Kann mir jemand helfen?
Der Rest hat super geklappt.
Danke euch mal.
Grüße
Tobias
Hallo Tobias, danke für den Hinweis. Da war ein Tippfehler. Einmal hiess die Datei net.openvpn und einmal net.openvpn2. Das kann natürlich nicht gehen. Ich habs angepasst. Gruß, Julian
@ Julian, super, danke Dir.
Jetzt meckert er nur noch rum, weil ihm die Rechte an der Datei nicht so passen. Er meldet „Dubious ownership on file (skipping)“. Wie muss ich die Rechte an der Datei ändern, bzw. welche Rechte braucht mein User?
Danke für Deine Hilfe.
Grüße Tobias
@Jens
Deine alternative läuft wirklich besser, danke dafür.
Im Punkt 2 haben sich zwei kleine Fehler eingeschlichen (oder ein Fehler doppelt):
Das Kommando muss jeweils „port“ lauten und nicht „ports“.
sudo port selfupdate
sudo port install openvpn2
Vielen Dank
Matthias
Im Punkt 7 fehlte mir noch ein sudo
sudo touch /Library/LaunchDaemons/net.openvpn2.plist
Grüße
Matthias
Hallo Matthias,
danke für die Hinweise, ich habe die Fehler korrigiert.
Schönen Gruß,
Julian
Hallo,
warum braucht ihr Tunnelblick oder MacPorts?
Der Leopard hat doch eine VPN Funktion.
gruß
Michael
Naja, wenn Du auf der anderen Seite OpenVPN hast, dann brauchst Du auf Deinem Client auch irgendwas was OpenVPN sprechen kann.
Vielen Dank fuer deine Anleitung.
Hab ich gleich mit scrapbook gesaved.
Hier noch ein freeware-vpn-client namens ipsecuritas
http://www.lobotomo.com/products/IPSecuritas/
Danke für die Infos. Hab lange nach sowas gesucht… 🙂