Diese Anleitung bezieht sich auf die Installation des OpenVPN-Klient unter Ubuntu (Linux) und ist weitestgehend auch auf Debian (Linux) übertragbar.
Das Tiggerswelt VPN-Gateway verwendet in der Standardklientkonfiguration TAP und verbindet sich auf den Serverport 443/udp. Ist man mit dem OpenVPN- Server verbunden, wird der komplette Verkehr des Klient über das VPN-Gateway getunnelt. Ein manuelles setzten der Route, IP, Gateway oder DNS-Server ist nicht erforderlich, dies übergibt der Server dem Klient automatisch („push“ Funktion). Die nötigen Zertifikate und eine fertige Konfigurationsdatei (client.conf) werden im Kundenmenü zum Download bereitgestellt.
OpenVPN (mit allen erforderlichen Abhängigkeiten) aus den Ubuntu- Quellen installieren
sudo apt-get update && sudo apt-get install openvpn
Eigenen Unterordner für die Zertifikate anlegen
sudo mkdir -p /etc/openvpn/cert
Die heruntergeladenen Zertifikate aus dem Tiggerswelt-Kundenmenü nach /etc/openvpn/cert/ kopieren
cd /home/user/_Pfad_zum_Ordner_wo_die_Zertifikate_liegen_/ sudo cp *@vpn-gateway.info* /etc/openvpn/cert/
Zertifikate nur für root lesbar machen
sudo chmod 600 /etc/openvpn/cert/*
Tiggerswelt hat zu den Zertifikaten im heruntergeladenen Achiv auch eine fertige Klientkonfiguration (client.conf) dazu gepackt. Diese wird nun nach /etc/openvpn/ kopiert
sudo cp /home/user/_Pfad_zum_Ordner_wo_die_Zertifikate_liegen_/client.conf /etc/openvpn/
Anpassen der Pfade zu den eben kopierten Zertifikaten
nano /etc/openvpn/client.conf
nun die folgenden 3 Zeilen
# SSL-Certificate Locations and options ca *******@vpn-gateway.info.ca.crt cert *******@vpn-gateway.info.crt key *******@vpn-gateway.info.key
wiefolgt ändern (die Sternchen müssen natürlich dem eigenen Namen angepaßt werden)
# SSL-Certificate Locations and options ca /etc/openvpn/cert/*******@vpn-gateway.info.ca.crt cert /etc/openvpn/cert/*******@vpn-gateway.info.crt key /etc/openvpn/cert/*******@vpn-gateway.info.key
Nun ist die Konfiguation fertig und der Klient kann gestarten werden 1)
/etc/init.d/openvpn start
Der OpenVPN- Klient startet beim booten automatisch. Manuell kann OpenVPN mit folgenden Optionen gesteuert werden
sudo /etc/init.d/openvpn start
sudo /etc/init.d/openvpn stop
sudo /etc/init.d/openvpn reload
Möchte man den OpenVPN-Klient lieber manuell starten, muß dazu in der Datei /etc/default/openvpn die Zeile
AUTOSTART="all"
in
AUTOSTART="none"
geändert werden.
Der OpenVPN- Klient startet beim nächsten rebooten nicht mehr automatisch. Manuel wird OpenVPN im Terminal mit
sudo openvpn /etc/openvpn/client.conf
aufgerufen bzw. gestartet.
Standardmäßig wird der OpenVPN Klient als root gestartet und ausgeführt. Wie bei den meisten Diensten, ist es auch hier eine gute Idee, den OpenVPN Klient unter einem unprivilegierten Benutzer laufen zu lassen.
Benutzer „openvpn“ anlegen:
sudo adduser --system --disabled-login --no-create-home openvpn
Gruppe „openvpn“ anlegen:
sudo addgroup --system --disabled-login --no-create-home openvpn
Die folgenden 2 Zeilen in der OpenVPN- Klientkonfiguration /etc/openvpn/client.conf hinzufügen
user openvpn group openvpn
Beim nächsten Neuaufbau der Verbindung läuft OpenVPN unter dem nicht privilegierten Benutzer „openvpn“.
OpenVPN bringt schon eine interne chroot Funktion mit. Diese läßt sich ohne großen Aufwand wiefolgt aktivieren.
Einen Ordner anlegen in den OpenVPN „gerootet“ wird
sudo mkdir /etc/openvpn/chroot
Folgende Zeile am Ende der Klientkonfiguration /etc/openvpn/client.conf hinzufügen
chroot /etc/openvpn/chroot
und OpenVPN neustarten.
Zusätzlich kann man unter Ubuntu den OpenVPN- Klient noch per AppArmor2) absichern bzw. einsperren. Das folgende AA-Profil wurde unter Ubuntu 9.04 (Jaunty Jackalop) erstellt und sollte mit kleinen Änderungen auch auf anderen Ubuntu-Versionen funktionieren.
In die Datei /etc/apparmor.d/usr.sbin.openvpn3) den folgenden Code einfügen
# Last Modified: Sun Jul 26 11:51:25 2009 #include <tunables/global> /usr/sbin/openvpn { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/python> capability net_admin, capability setgid, capability setuid, capability sys_chroot, /dev/net/tun rw, /etc/openvpn/** r, /proc/*/net/ r, /proc/*/net/if_inet6 r, /proc/*/net/route r, /proc/*/net/unix r, /sbin/ifconfig rix, /sbin/route rix, /usr/bin/openssl-vulnkey rix, /usr/bin/python2.6 rix, /usr/sbin/openvpn rix, /usr/share/** r, }
Nun noch das neue AppArmor-Profil laden
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.openvpn
und im Enforce-Mode starten
sudo aa-enforce /etc/apparmor.d/usr.sbin.openvpn
Um OpenVPN spurlos vom Rechner zu entfernen, sind folgende Schritte notwendig.
OpenVPN deinstallieren
apt-get remove --purge openvpn openvpn-blacklist
Konfigurationsordner löschen
rm -rf /etc/openvpn/
Apparmor-Profil für OpenVPN löschen
rm /etc/apparmor.d/usr.sbin.openvpn
Apparmor neu laden
/etc/init.d/apparmor reload