OpenVPN Installation auf Ubuntu 20.10

Was ist ein VPN

Ein OpenVPN Server bietet die Möglichkeit mit jedem Gerät aus einem fremden Netz eine verschlüsselte Verbindung in das Heimnetzwerk zu erstellen. Das ist besonders hilfreich, wenn man in einem öffentlichen WLan oder Hostspot verbunden ist, bei dem man nicht weiß, wer sich noch darin aufhält. Durch den VPN Tunnel werden dann alle Internetanfragen verschlüsselt an den heimischen VPN Server gesendet und von dort aus erst in Internet geschickt. Das sorgt für sicheres Surfen in unsicheren Netzen.

Zwei gängige Varianten des VPN Zugangs ist entweder die Heimische FritzBox zu nutzen oder einen OpenVPN Server einzurichten. Bei dem OpenVPN Server sollte man nur bedenken, dass der Server erreichbar sein muss, wenn der VPN genutzt werden soll und ein statische IP oder eine DynDNS Adresse oder Domain benötigt wird, damit der heimische Internetanschluss auch vom Client gefunden werden kann. Eine DynDNS Adresse kann man allerdings kostenlos bei diversen Anbietern erstellen.

Installation des OpenVPN Servers

Als Host für meinen OpenVPN Server dient ein Raspberry Pi4 mit Ubuntu 20.10.

Zuerst sollte der Server auf den neusten Stand gebracht werden und alle Updates installiert werden

sudo apt update
sudo apt upgrade -y

Um die Installation zu vereinfachen, wird ein Installationsskript genutzt.

https://github.com/angristan/openvpn-install

Wie in der Anleitung zu dem Skript beschrieben wird dieses mit Curl herutergeladen

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

Danach wird es ausführbar gemacht

chmod +x openvpn-install.sh

Um die Installationsroutine zu starten nutzen wir den Befehl:

sudo ./openvpn-install.sh

Danach werden verschiedene Frage gestellt, mit deren Antworten die Konfigurationsdatei erstellt wird. Diese kann am Ende immer noch händisch angepasst werden.

Wenn das Skript abgeschlossen wurde, findet sich unter /home/user/ eine Datei mit der Endung .ovpn. Dies ist die Schlüsseldatei, die Clients benötigen, um sich mit dem Server zu verbinden. Diese kann also jetzt auch einen Client kopiert werden, sodass dieser einen VPN Tunnel aufbauen kann.

Allerdings hat der Client zu diesem Zeitpunkt noch keine Internetverbindung, da der OpenVPN Server ein eigenes Subnet für VPN Verbindungen erstellt.

Um das zu lösen, wird das Interface Tun0, welches die VPN Verbindungen entgegen nimmt und das Interface Eth0, welches für die „normale“ Netzwerk Verbindung zuständig ist, verbunden.

Dazu setzen wir zuerst folgende Parameter auf dem System.

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl net.netfilter.nf_conntrack_acct=1

Danach werden die Firewall regeln angepasst.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW -j ACCEPT

Nun sollte der VPN Client ein Verbindung zum Heimnetzwerk und von dort aus auch ins Internet haben.

Mehrere Clients mit der gleichen Schlüsseldatei verbinden

Möchte man die gleiche Schlüsseldatei für mehrere Clients nutzen, hat man das Problem, dass alle die gleiche IP Adresse bekommen. Das hat den Hintergrund, dass man so einer IP einen eindeutigen User zuordnen kann und somit nachvollziehen kann, was dieser im Netzwerk gemacht hat.

Für den privaten Gebrauch ist dass allerdings meist nicht nötig. Daher kann man in der Konfigurationsdatei diese Einstellung ändern. Dazu öffnet man die Datei mit einem beliebigen Texteditor:

nano /etc/openvpn/server.conf

Und fügt folgende Zeile hinzu.

duplicate-cn

Danach bekommt jeder Client eine eigene IP, egal welche Schlüsseldatei er nutzt.

Kommentare anzeigen

Wir nutzen Cookies

Um die Nutzung der Website zu verbessern, nutzen wir Cookies.
Desweiteren werden Google-Dienste für das schalten von Werbung verwendet. Mit der Nutzung der Website geben Sie ihr Einverständnis.
Sollte die Nutzung von Cookies abgelehnt werden, kann dies Auswirkung auf die Nutzung der Website haben.