Inhaltsverzeichnis

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 1)

/etc/init.d/openvpn start

Starten & Stoppen

Der OpenVPN- Klient startet beim booten automatisch. Manuell kann OpenVPN mit folgenden Optionen gesteuert werden

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 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

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
1) Funktioniert nur, wenn die Autostart-Funktion nicht deaktiviert wurde
2) Apparmor ist in allen aktuellen Ubuntu-Versionen standardmäßig schon installiert
3) 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