Zum Inhalt springen

Lokaler SMB/CIFS Dateizugriff mit einem SSH Tunnel durch das Internet

6. November 2021 durch
Christian Lisec

Wenn du einen SMB-, CIFS-Server bzw. NAS Server für Dateizugriffe im lokalen Netzwerk hast und nicht willst, dass der Zugriff direkt durch das Internet möglich ist, besteht die Möglichkeit, vorher einen sicheren SSH-Tunnel (SSHv2) über das Internet mit einem beliebigen Rechner zum Server aufzubauen. Auf diese Weise können Netzwerkfreigaben des lokalen Servers mit einem Klient-Rechner gemountet werden, so als würde der Klient-Rechner sich im selben Netzwerk des Servers befinden. Diese Methode ist schneller durchgesetzt als die Installation eines neuen VPN-Tunnels via OpenVPN, IPSECv1, IPSECv2 oder SSTP.

Voraussetzung ist die Portweiterleitung des SSH-Ports 22 über die Firewall des jeweiligen Routers sowie SSH muss beim Server als auch beim einwählenden Rechner installiert sein. Diese Anleitung sollte auch sehr ähnlich und ohne Probleme mit Windows- sowie Mac-Rechnern funktionieren. Die SSH-Befehlszeilen wurden erfolgreich mittels der Linux-Distribution Debian 11 getestet.

Anleitung:

# Überprüfen, ob eine normale SSH-Shell
# mit dem externen Server aufgebaut werden kann.
# Darauf achten, dass der SSH-Port 22 in der Firewall des Servers
# als auch des Routers ordentlich weitergeleitet wird.
ssh benutzer@öffentliche-ip-adresse

# Erstelle einen SSH-Tunnel
ssh benutzer@öffentliche-ip-adresse -p 22 -nNT -L 9999:127.0.0.1:445

# -nNT — Erstelle keine Shell bzw. keinen SSH-Eingabefenster
# -L vom:host:zu — Erstellt einen SSH-Tunnel mit einem beliebig ausgewählten Port "vom:host" an den Port des Remote-Servers "zu".
# Wir nutzen den lokalen Port 9999 und den Remote-Port 445 des Dateizugriff-Servers (Standart für SMB/CIFS Dateizugriffe)

Nach dem erfolgreichen Aufbauen des SSH-Tunnels kann wie gewohnt über die Windows-, Mac- oder Debian-Oberfläche die lokale Netzwerkfreigabe des Dateizugriff-Servers eingehängt werden. Unter Debian sollte im Dateimanager die Pfad-Adresse smb://127.0.0.1:9999 ausreichen. Darauf achten, wenn das Terminalfenster mit dem aufgebauten SSH-Tunnel geschlossen wird, schließt sich dementsprechend der SSH-Tunnel.

FYI:

Es ist auch Möglich neben dem Dateizugriffsdienst andere Dienste des externen Servers anzusprechen. Neben dem Dateizugriff-Port 445, könnte man stattdessen den Ferneinwahl-Port 5900 einsetzen, um sich mit einem VNC-Server zu verbinden. Dafür sollte folgende Befehlszeile ausreichen, um den gewünschten SSH-Tunnel aufzubauen:

ssh benutzer@öffentliche-ip-adresse -p 22 -nNT -L 127.0.0.1:8001:vnc-server:5900
Christian Lisec 6. November 2021
Diesen Beitrag teilen
Ihr dynamisches Snippet wird hier angezeigt ... Diese Meldung wird angezeigt, weil Sie weder einen Filter noch eine Vorlage zur Verwendung bereitgestellt haben