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.