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