Beitragsdatum | 01.01.2011 |
---|---|
Letzte Aktualisierung | 08.02.2019 |
Betrifft | NAS4Free 9.2, 11.x, XigmaNAS 11.x u.a. |
NAS4Free und XigmaNAS sind quasi identisch - nur der Name hat sich geändert.
Dieser Artikel gilt daher für beide Systeme (und eingeschränkt auch für FreeNAS).
FreeNAS1) bietet von Haus aus noch keine OpenVPN-Unterstützung an (0.7.2 stable). Aber dennoch kann OpenVPN nachgerüstet werden.
Um eine FreeNAS-Installation um OpenVPN zu erweitern, sollte FreeNAS als Full-Installation installiert worden sein - sonst vergisst FreeNAS nach dem nächsten Reboot die OpenVPN-Erweiterung.
In einem Test habe ich die Full-Installation auf einem USB-Stick durchgeführt. Welche Auswirkung das auf die Lebenserwartung des Stick hat kann ich noch nicht sagen.
Ein paar Worte zu OpenVPN:
OpenVPN ermöglicht eine Arbeit über das Internet innerhalb eines geschützten internen Netzwerkes - z.B. kann ein Außendienstmitarbeiter so an seinem Laptop arbeiten, als wäre er innerhalb der Firma an seinem Arbeitsplatz. So können auch Ordnerfreigaben von außen zugänglich sein. Es gibt zwei virtuelle Tunnel-Netzwerk-Geräte bei OpenVPN: tun für verschlüsselte IP-Protokolle, tap für verschlüsselte nicht-IP-Protokolle.
Als Techniken werden Standards benutzt, die entsprechend bekannt und sicherer sind (TLS, SSL usw.).
Die Authentifizierung eines Nutzers kann über Benutzername und Passwort geschehen (aufwändiger, da jeder Nutzer auf dem OpenVPN-Server angelegt werden muss) oder zusätzlich (bzw. auch nur über) Zertifikate, die sich mit Passwörtern schützen lassen.
WICHTIG: die IP-Adresse des Clients muss aus einem anderen Netz stammen, als die IP-Adressen für das VPN-Netz sowie aus einem anderen Netz, als das Netzwerk des Servers. In meinem Beispiel setzen ich das wie folgt um:
[UPDATE] Mögliche Adressbereiche sind bei Wikipedia beschrieben.
Ich habe mich an den Artikel Virtuell vernetzt mit OpenVPN aus c't kompakt 01/11 Linux (S.26ff.) gehalten.
Meine Zusammenfassung für Routing (dev tun):
ssh root@[host]
setenv PACKAGESITE ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-7.3-release/Latest/
# NAS4Free 9.2: pkg_add -r openvpn pkg_add -r openssl # NAS4Free 11.0: pkg install openvpn pkg install openssl
sudo apt-get install openvpn
~/tmpovpn
server.conf
in ~/tmpovpn
mit folgenden Einträgen erstellen:# OpenVPN-Conf # SERVER # Device # dev tun oder dev tap (tap = bridging) dev tun # Protokoll # proto tcp oder proto udp proto udp # Port port 1194 # use compression comp-lzo # User/Group des OpenVPN Servers user nobody group nogroup # Persits persist-tun persist-key # Server-Konfiguration # fuer dev tun # server [vpn ip-bereich] [maske] server 10.0.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt # push "route [vpn ip-bereich] [maske]" push "route 10.0.0.0 255.255.255.0" # Zertifikate fuer die Authetifizierung dh /usr/local/etc/openvpn/dh1024.pem # bei pkcs12-Dateien: pkcs12 server.p12 # bei key- und crt-Dateien: #key server.key #ca ca.crt #cert server.crt # Logging log-append openvpn.log status /usr/local/etc/openvpn/openvpn-status.log # Set the appropriate level of log # file verbosity: # # 0 is silent, except for fatal errors # 4 is reasonable for general usage # 5 and 6 can help to debug connection problems # 9 is extremely verbose verb 5
/usr/local/bin/openssl dhparam -out /usr/local/etc/openvpn/dh1024.pem 1024
[Update, 23.09.2017]
Anstatt TinyCA kann auch easy-rsa benutzt werden. Dieses Skript-Paket eignet sich optimal für den Einsatz mit OpenVPN. Eine kurze Anleitung stelle ich im Blog-Beitrag easy-rsa: OpenVPN für Server und Clients einrichten zur Verfügung.
Der folgende Abschnitt kann veraltet sein.
sudo apt-get install tinyca
tinyca2
):/usr/local/etc/openvpn/
)~/tmpovpn/client.conf
):# OpenVPN-Conf # Client client # Network-Device definieren (wie bei server.conf) ;dev tap dev tun # Server definieren (z.B. Adresse bei DynDNS-Anbieter) remote server.no-ip.org 1194 # Bei pkcs12-Dateien: PKCS#12-Schluessel aktivieren und bestimmen pkcs12 /pfad/client.p12 # Bei crt- und key-Dateien: #key client.key #cert client.crt #ca ca.crt # Kompression einschalten comp-lzo verb 5
openvpn_enable
YES
openvpn_if
tun
/usr/local/etc/rc.d/openvpn start
PostInit
/usr/local/etc/rc.d/openvpn
ausführbar ist (ll /usr/local/etc/rc.d/openvpn
). Sonst mit einem$ chmod a+x /usr/local/etc/rc.d/openvpn
entsprechend anpassen.
hosts allow = 192.168.1.0/24 10.0.0.0/24 127.0.0.1 interfaces = 192.168.1.0/24 10.0.0.0/24
client.conf
auf den Client kopieren. OpenVPN muss da natürlich auch installiert werden.openvpn
auf dem Client mit der richtigen Konfig-File ausführen:openvpn ~/pfad/openvpn_client.conf
# smbclient -L [ip-adresse openvpn-server] -U [username eines samba-users] # z.B.: smbclient -L 10.0.0.1 -U benutzer
/usr/local/etc/openvpn/openvpn.log
Die Einbindung der Freigabe kann dann normal z.B. über Gnome erfolgen. Einfach als IP die VPN-IP des OpenVPN-Servers angeben, im Beispiel also die virtuelle Adresse 10.0.0.1.
Ähnliche Themen im blog:
xigmanas, nas4free, freenas