====== VPN-Gateway Klientinstallation unter Ubuntu ======
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.
===== Installation =====
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 ((Funktioniert nur, wenn die Autostart-Funktion nicht deaktiviert wurde))
/etc/init.d/openvpn start
===== Starten & Stoppen =====
Der OpenVPN- Klient startet beim booten automatisch. Manuell kann OpenVPN mit folgenden Optionen gesteuert werden
* OpenVPN starten\\ sudo /etc/init.d/openvpn start
* OpenVPN stoppen\\ sudo /etc/init.d/openvpn stop
* OpenVPN neustarten\\ sudo /etc/init.d/openvpn reload
===== Autostart deaktivieren =====
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.
===== Zusätzliche Sicherheit (optional)=====
==== unprivilegierter Benutzer ====
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".
==== chroot ====
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.
==== Apparmor-Profil ====
Zusätzlich kann man unter Ubuntu den OpenVPN- Klient noch per AppArmor((Apparmor ist in allen aktuellen Ubuntu-Versionen standardmäßig schon installiert)) 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.openvpn**((Datei "/etc/apparmor.d/usr.sbin.openvpn" ist standardmäßig noch nicht vorhanden und kann mit "sudo touch /etc/apparmor.d/usr.sbin.openvpn" erstellt werden)) den folgenden Code einfügen
# Last Modified: Sun Jul 26 11:51:25 2009
#include
/usr/sbin/openvpn {
#include
#include
#include
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
===== Deinstallation =====
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