Saturday, November 10, 2007

HOWTO OpenVPN unter Apple MacOS-X als Client verwenden

Für MacOS-X Clients gibt es die bereits im vorherigen HOWTO (http://simonox.blogspot.com/2007/11/howto-openvpn-unter-apple-macos-x.html) angesprochene Software "Tunnelblick". Diese Software ist eine grafische Benutzeroberfläche für OpenVPN, die alle notwendigen Treiber gleich mitbringt. Einem Benutzer, der nur einen Client verwenden möchte, ist es i.d.R. nicht zuzumuten, auf der Kommandozeile Pakete zu installieren und einzurichten. "Tunnelblick" haben wir bereits im letzten Teil des HOWTOs heruntergeladen und auf einem USB-Stick gesichert. Auf dem USB-Stick befinden sich ebenfalls Zertifikate, die auf dem Server erzeugt wurden.

Kurz gesagt muss man nur "Tunnelblick" in das Application-Verzeichnis kopieren, einen Ordner "~/Library/openvpn" erstellen und dort die Zertifikate hinkopieren. Anschließend kann man Tunnelblick starten, den Server einrichten und OpenVPN benutzen. Trotzdem an dieser Stelle eine Step-by-Step-Anleitung.

Das Diskimage von Tunnelblick aktivieren wir und ziehen das Tunneblick-Icon in den Programm-Ordner. Anschließend legen wir mit dem Finder unter dem Heimverzeichnis (erkennbar am Haus-Icon) im Library-Unterverzeichnis ein Unterverzeichnis "openvpn" an (~/Library/openvpn). In dieses Verzeichnis kopieren wir mit dem Finder die Zertifikate und die Konfiguration vom USB-Stick:

* ca.crt
* iBook-cert.pem
* iBook-key.pem

Nun können wir Tunnelblick starten. Es erscheint in der Menüleiste als Icon, das aussieht wie ein Eisenbahntunnel. Tunnelblick legt automatisch eine openvpn.conf-Datei im gleichen Ordner an, in dem die Zertifikate liegen. Diese Konfigurationsdatei muss man bearbeiten, um sich mit dem eigenen Server zu verbinden. Dazu muss man die richtigen Textstellen finden und durch eigene Konfiguration ersetzten.

Um mit dem Server, der im letzten HOWTO installiert und gestartet wurde, eine Verbindung aufzubauen, sind folgende Stellen in der Konfigurationsdatei zu ersetzen. Die Host-Adresse "myserver.dyndns.org" ist entsprechend anzupassen:


remote myserver.dyndns.org 443

ca ca.crt
cert iBook-cert.pem
key iBook-key.pem

cipher AES-256-CBC

dev tun

proto udp

port 443


Nun können wir auf das Tunnelblick-Symbol klicken und "Verbinden: openvpn" wählen. Die Verbindung sollte zustande kommen. Falls die Verbindung zustande kommt, sollte man sich die Konfigurationsdatei unter "~/Library/openvpn" sichern, um sie als Template für weitere Client-Installationen verwenden zu können.

Nun kann man z.B. ein SMB-Share mounten, einen HTTP-Proxy ansprechen usw. Der OpenVPN-Server selbst ist unter der im Server konfigurierten IP-Adresse 10.8.0.1 zu erreichen. Tunnelblick hat die Option, automatisch eine Verbindung zum OpenVPN-Server aufzubauen. Dies ist praktisch, da diese auch aufgebaut wird, wenn das Client-Notebook einmal abhanden kommen sollte. Dazu muss allerdings eingestellt sein, dass sich ds iBook automatisch mit offenen Netzwerken konnektiert. OpenVPN läuft nämlich natürlich nur dann, wenn auch eine Internet-Verbindung besteht.

Wenn sich das iBook mit dem OpenVPN-Server konnektiert, kann man in der OpenVPN-Server-Log-Datei wenigstens erkennen, von welcher IP-Adresse aus sich das Notebook einloggt. In der Log-Datei des Servers kann man nämlich die einzelnen Verbindungen erkennen. Diese sehen wie folgt aus:


OpenVPN CLIENT LIST
Updated,Sat Nov 10 23:10:41 2007
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
iBook,XX.XX.XX.XX:60347,13180,13895,Sat Nov 10 22:49:34 2007
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,iBook,XX.XX.XX.XX:60347,Sat Nov 10 22:49:35 2007
GLOBAL STATS
Max bcast/mcast queue length,0
END


Dies bedeutet, dass eine Verbindung vom Rechner, auf dem das iBook-Zertifikat liegt und der die IP-Adresse xx.xx.xx.xx hat, eine Verbindung aufgebaut wurde. Dieser Client-Rechner hat die VPN-IP-Adresse 10.8.9.6 bekommen.

Sollte das Notebook abhanden kommen, sollte man irgendwann natürlich das Zertifikat des Clients zurückziehen. Dies geschieht auf dem Server wie folgt:


sudo openssl ca -revoke /certs/iBook-cert.pem
sudo openssl ca -gencrl -out crl.pem


Das Zurückziehen des Zertifikats muss man dem OpenVPN-Server bekannt machen:


sudo /bin/sh -c "cat ca.crt crl.pem >/etc/openVPN/revoke.pem"


Das Überprüfen der zurückgezogenen Zertifikate muss man in der Konfigurationsdatei des OpenVPN-Servers einstellen:


crl-verify /etc/openvpn/revoke.pem