Automatischer Aufbau einer openVPN Verbindung beim Start von freeNAS

Hallo Zusammen,

ich arbeite derzeit mit FreeNAS und bin sehr begeistert von diesem System. Dieses bietet alles, was man 2017 von einem NAS erwartet und gibt mir noch dazu viele Freiheiten.

Situation

Leider befindet sich der FreeNAS Server hinter einer Firewall, die zwar Verbindungen in das Internet zulassen, aber nicht aus dem Internet auf den FreeNAS-Server. Dennoch habe ich einen Server im Internet, welcher als openVPN-Server fungiert. Das Ziel ist es, dem FreeNAS automatisch eine VPN-Verbindung zu dem Server im Internet aufbauen zu lassen. Von hier aus kann dann weiter agiert werden.

VPN Konfiguration

FreeNAS verwendet openBSD als Betriebssystem mein VPN-Server läuft mit Arch Linux. Da ich jetzt nicht den 100dersten „Wie konfiguriere ich VPN“-Beitrag posten möchte, verweise ich auf zwei sehr sehr gute Wiki-Beiträge im ArchWiki:

Konfiguration im FreeNAS

Für die Konfiguration im FreeNAS haben wir verschiedene Möglichkeiten. Leider habe ich es nur über eine Möglichkeit geschafft (die erste direkt im Betriebssystem). Unabhängig von der Lösung müssen alle benötigten Dateien auf den Ordner gepackt werden:

  • ca.crt
  • freenas.crt
  • freenas.key
  • ta.key
  • client.conf

Anschließend kann die Konfiguration auf dem FreeNAS-Server mit

openvpn /root/vpn/client.conf

getestet werden.

Speicherung der Dateien auf dem FreeNAS

Damit die Zertifikate und Konfigrationsfiles korrekt gespeichert werden, muss ein Pool eingebunden werden, der unverschlüsselt ist und automatisch gemountet wird. Da meine anderen Pools verschlüsselt sind, habe ich eine kleinere Festplatte eingebaut und diese unter /mnt/misc/ gemounted. Dort liegen die benötigten Dateien in einem Verzeichnis.

Autostart: Über Init/Shutdown Scripts

Dies ist der empfohlene weg, da diese Methode auch ein Update überlebt. Dazu muss zunächst ein kleines Script unter /mnt/misc/ angelegt werden:

#!/bin/bash

echo "start openvpn daemon"
/usr/local/sbin/openvpn --config /mnt/misc/vpn/client.conf --daemon

Eigentlich sollte es ausreichen diesen Befehl direkt über Init/Shutdown-Scripts aufzurufen, aber das hat bei mir nicht geklappt. Über Tasks -> Init/Shutdown Scripts -> Add kann das Starten des Skriptes aktiviert werden.

Nun sollte das Script automatisch starten!

Autostart: Direkt im Betriebssystem

Achtung, die folgende Konfiguration ist nicht empfohlen, da diese bei jedem Upgrade überschrieben wird.

Ich habe die oben genannten Dateien unter /root/vpn/ gelegt. Achtet dabei, dass in der client.conf immer der absolute Pfad angegeben ist. Anschließend muss in der Datei /conf/base/etc/rc.conf am Ende Folgendes Ergänzt werden:

# Start openVPN 
openvpn_enable="YES" 
openvpn_if="tun" 
openvpn_dir="/root/vpn" 
openvpn_configfile="/root/vpn/client.conf"

Anschließend reicht ein Neustart und die openVPN Verbindung wird automatisch erstellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.