HOWTO_ OpenVPN-Server unter Debian 3.1 "Sarge" und Mac OS X als Client
Im ersten Teil beschreibe ich, wie man innerhalb von wenigen Minuten unter Debian Sarge (der aktuellen "stable release") den OpenVPN-Server einrichtet und als Client einen Mac OS X-Rechner damit verbindet. Im zweiten Teil werde ich einige Tipps geben, wie man auch hinter einem Proxy-Server "nach Hause" kommt.
Server (Debian Sarge 3.1 "stable)
Installation
Einfacher geht es nicht: apt-get install openvpn.Schlüssel und Zertifikate
Hat so funktioniert, wie im offiziellen Quick-HOWTO beschrieben.
Zuerst müssen die Installationsscripte in das vorgesehende Verzeichnis kopiert werden:
cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/Um nicht später bei der Erstellung der Zertifikate alles per Hand mehrfach eingeben zu müssen, werden in der Datei /etc/openvpn/easy-rsa/vars ein paar Variablen gesetzt:
export KEY_COUNTRY=DE
export KEY_PROVINCE=NA
export KEY_CITY="<Stadt>"
export KEY_ORG="<Organisation>"
export KEY_EMAIL="<Mailadresse>"
Das erste Zertifikat ist das er zertifizierenden Stelle, bei Common-Name ist ein beliebiger Name einzutragen, das Passwort ist nicht zu belegen.
. ./vars; ./clean-all; ./build-caNun erstellt ./build-key-server server das Serverzertifikat, bei Common-Name ist server einzutragen, alle Nachfragen nach Zertifizierungen sind mit Y zu bejahen.
Für jeden Client, der später zum Server connecten darf, muss nun ebenfalls ein Zertifikat und ein Schlüssel erstellt werden, dabei muss der Common-Name mit dem jeweils angegebenen Clientnamen des Kommandozeilenaufrufs (im Beispiel client1) übereinstimmen.
./build-key client1
Die Diffie-Hellman-Parameter werden mit ./build-dh erstellt. Die folgende Tabelle zeigt, welche Dateien auf welchem Rechner benötigt werden:
Datei Rechner ZweckAlle Schlüssel (*.key) sind dabei geheim und sollten nicht öffentlich zugänglich sein. Die für den Betrieb von OpenVPN benötigten Dateien server.key, server.crt, ca.crt und dh{n}.pem sind nach /etc/openvpn zu kopieren.
ca.crt Serv+Cl Root CA Zertifikat
ca.key Signierung Root CA Schlüssel
dh{n}.pem Server Diffie Hellman Param.
server.crt Server Server Zertifikat
server.key Server Server Schlüssel
client1.crt Client1 Client1 Zertifikat
client1.key Client1 Client1 SchlüsselKonfiguration
Die Vorlagen aus /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz nach /etc/openvpn kopieren und entpacken. Drei Änderungen sind vorzunehmen:# Ändert auf Clients den default Gateway aufNach einem Neustart des OpenVPN-Servers wird die Konfiguration übernommen:
# den VPN-Server um, so dass SÄMTLICHER
# traffic über das VPN geleitet wird
# (ausser für das jeweils lokale Netzwerk).
push "redirect-gateway def1“
# Aktivieren der Kompression, da
# mehrfaches Tunnel massiv die
# Geschwindigkeit drückt.
comp-lzo
# Standardwert ist nobody, doch diese
# Gruppe existiert auf Debian Sarge nicht
group nogroup
/etc/init.d/openvpn stop
/etc/init.d/openvpn startNAT-Routing
Jetzt wird zwar sämtlicher Traffic von den Clients auf den Server geleitet, kommt von dort aber nicht mehr weiter. Daher muss hier noch etwas Arbeit geleistet werden, die Langfassung beschrieb T.J. Nelson.
touch /etc/init.d/iptables.openvpn.sh legt eine neue Datei fürs Routing an. Folgende Zeilen sind in die Datei einzutragen:#!/bin/bash # get rid of previous iptables entries iptables -F iptables -F -t nat iptables -X iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.2 iptables -A FORWARD -j ACCEPT #iptables -L -t nat (list all rules) # activate ip forwarding echo 1 > /proc/sys/net/ipv4/ip_forward
Nun noch einmalig händisch starten
chmod +x /scripts/iptables.ovpn.shund automatisch beim Systemstart ausführen lassen:
/etc/init.d/iptables.openvpn.sh
update-rc.d iptbl.ovpn defaults 98
Client (Max OS X)
Die Hauptarbeit ist bereits getan, nach wenigen Schritten sollte sich nun der erste Client verbinden lassen. Der fertig geschnürte OpenVPN-Client Tunnelblick muss in der Version 3 heruntergeladen und alle enthaltenen Programme mit Doppelklick auf Tunnelblick-Complete.mpkg installiert werden.
Nachdem die Schlüssel und Zertifkate client1.crt, client1.key und ca.crt (etwa per SCP) vom Server nach /Users/USERNAME/Library/openvpn/ gewandert sind, startet man Tunnelblick mit einem Doppelklick (zu finden unter Utilities). Ein Klick auf das Symbol öffnet das spartanische Menü, Details... öffnet den Log Output, bei dem sich ein Button Edit Configuration findet. Hier sind nur wenige Änderungen vorzunehmen:# Serveradresse angeben remote HOST PORT # Zertifikat und Schlüssel cert client1.crt key client1.key # Kompression comp-lzo
Abspeichern und ein Klick auf Connect oder openvpn (Disconnected im Menü sollte erfolgreich Zugang zum Server gewähren.
cypressor - 22. Apr, 14:08