Debian 11 als openvpn-Router
Es ist nicht ungewöhnlich, eine virtuelle Maschine oder einen Container als VPN-Router einzusetzen. In meinem Beispiel kann die direkte VPN-Verbindung zum Firmennetz nicht sinnvoll auf dem Debian-12-Arbeitsrechner eingerichtet werden, weil das zur Distribution gehörigen openvpn bzw. die Variante für den network-manager das Zertifikat des Firmenrouters als zu unsicher ablehnt und somit eine Verbindung unmöglich macht. Das kann zwar durch gewisse Tricks umgangen werden, indem man die Distributions-Software für diese Komponenten durch ältere ersetzt, aber das ist ein wackeliger Vorgang, weil nicht gewiss ist, dass die Installation überhaupt funktioniert bzw. es kann später zu Problemen bei Updates der Distribution führen. Hier ist es aber so, dass die openvpn-Software problemlos unter Debian-11 läuft.
Also: Debian-11 mit VPN-Installation kommt in eine virtuelle Maschine. Ist das wirklich sinnvoll? Nun, es zeigt, dass man einfach eine virtuelle Maschine als Router verwenden kann, es übt und wir können es machen 😊
Openvpn-Router mit Oracle VirtualBox unter Linux
Die Debian-11-Installation in VirtualBox war etwas hakelig, weil die Installation der Guest-Additions nicht ganz unproblematisch ist. Mounted man die ISO-Datei der Guest-Additions und folgt der Beschreibung, dann bricht die Ausführung ab, weil das Installationsskript versucht in das Programmverzeichnis zu schreiben. Das geht natürlich nicht, weil es sich um eine CD-ROM handelt. Das muss man erst einmal begreifen und dann für Abhilfe sorgen. Um die Guest-Additions zu installieren, müssen sie erst einmal in ein beschreibbares Verzeichnis kopiert werden, um sie von dort auszuführen und es müssen ein paar Biblotheken bereitgestellt werden:
sudo apt install build-essential dkms linux-headers-$(uname -r)
cd <source-dir>
sudo ./VboxLinuxAdditions.run
Tätigkeiten auf dem Router
Hier werden openvpn, die openvpn-network-manager-Erweiterungen und die Erweiterungen für die openvpn-Darstellung im network-manager selbst installiert.
sudo apt install openvpn openvpn-nm
sudo apt install network-manager-openvpn-gnome
sudo reboot
Wir haben eine Konfigurationsdatei aus unserem Router (einer Sophos UTM) für die openvpn-Anbindung auf dem Client erhalten. Mit dieser Datei kann man jetzt die Verbindung zum Firmennetz anlegen. Dazu klickt man unter „Einstellungen/Netzwerk“ neben VPN auf das Pluszeichen. Dann bekommt man eine Definition durch laden der erwähnten Datei angeboten. Dadurch wird die vollständige Konfiguration sichtbar und editierbar. Wollte man die Maschine direkt als Arbeitsplatz einsetzen, wäre man hier fertig.
Damit die Maschine als Router fungieren kann, muss IP-Forwarding aktiviert werden:
sudo sysctl -w net.ipv4.ip_forward=1
Anschließend kann
net.ipv4.ip_forward=1
in /etc/sysctl.conf eingetragen werden, damit die Einstellung auch nach einem Reboot wieder zur Verfügung steht. Außerdem muss man NAT auf Debian-11 aktivieren:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Um auch diese iptables-Einstellungen über den reboot des Systems persistent zu machen muss das Packet iptables-persistent installiert werden:
sudo apt install iptables-persistent
War das Packet noch nicht installiert, so wird bei der Installation angeboten, die bestehenden Einträge zu sichern. Sonst macht man das per Hand bei einer Änderung per
sudo iptables-save > /etc/iptables/rules.v4
Damit sind wir an dem Punkt, unsere VPN-Verbindung einzurichten. Wir haben von unsere Sophost UTM eine .opvn Datei bekommen. Diese Datei kann jetzt verwendet werden um unter „Einstellungen/Netzwerk“ eine neue VPN-Verbindung anzulegen. Dazu klicken wir auf das Plus-Zeichen ganz rechts neben dem Abschnitt VPN. Es öffnet sich ein Fenster, welches uns einen Eintrag „Aus Datei importieren …“ zeigt. Darauf klicken wir und übergeben die Definitionsdatei. Dann ist die Verbindung eingerichtet. An dieser Stelle wäre noch wünschenswert, diese Verbindung so zu konfigurieren, dass sie beim Start des Rechners automatisch aufgebaut wird. Da unser VPN einen Usernamen und ein Passwort erfordert, ist das leider im Hinblick auf das Passwort nicht so leicht möglich. Da wir die VPN-Verbindung aber schon manuell nutzen können, verschieben wir das auf später.
Um das VPN jetzt auf unserem Hostrechner ansprechen zu können, müssen wir noch eine Route anlegen.
sudo ip route add 192.168.1.0/24 via 192.168.0.89
192.168.1.0/24 sind im Beispiel die Adressen, die wir über das VPN erreichen wollen und 192.168.0.89 ist die Adresse unseres virtualisierten Routers. Abschließend müssen wir diese Route noch persistent machen, damit sie nach dem nächsten Neustart wieder zur Verfügung steht.