Ich habe ein selbstgebautes NAS (Debian) zu Hause, das ich gelegentlich von Remote-Geräten aus verwende. Das NAS verfügt über einen SMB-Dateiserver, auf den ich derzeit remote über SSH (Private-Key-Verschlüsselung) und SSH-Port-Tunneling zugreife.
ssh [email protected] -L 448:localhost:445
Stellen Sie dann eine Verbindung smb://localhost:448
zum Remote-Client her.
Das funktioniert nicht so gut, wenn ich mein Android TV aus der Ferne verwende, da ich Termux verwenden und die gesamte SSH-Einrichtung durchführen muss, bevor ich Zugriff habe.
Nach meinem Kenntnisstand ist es nicht sicher, den Port meines SMB-Servers direkt dem öffentlichen Internet zugänglich zu machen. Gibt es ein Netzwerkdateifreigabeprotokoll mit Client-Unterstützung auf allen wichtigen Plattformen, das sicher genug für die Bereitstellung über das Internet ist?
Antwort1
Legen Sie niemals ein Netzwerkdateisystem offen. Verwenden Sie stattdessen ein VPN (oder SSH-Tunneling) und legen Sie das Netzwerkdateisystem dann über das VPN offen.
Bedenken Sie auch, dass ein Netzwerkdateisystem über größere Entfernungen ziemlich langsam und keine angenehme Erfahrung ist.
Wenn die Einrichtung des VPN oder SSH-Tunnelings zu aufwändig ist, automatisieren Sie es.
Antwort2
Nach meinem Kenntnisstand ist es nicht sicher, den Port meines SMB-Servers direkt dem öffentlichen Internet zugänglich zu machen. Gibt es ein Netzwerkdateifreigabeprotokoll mit Client-Unterstützung auf allen wichtigen Plattformen, das sicher genug für die Bereitstellung über das Internet ist?
SSH hat eine eingebaute Funktion: SFTP. Viele Android-Dateimanager-Apps unterstützen sie und sie kann wie ein mountbares Dateisystem über verwaltet werden sshfs
.
WebDAV könnte eine Option sein, allerdings wird es relativ selten unterstützt (manchmal wird es als „Nextcloud“ bezeichnet, da dies die häufigste Verwendung von WebDAV ist).
(SMB gilt als überwiegend unsicher, aber eingroßTeilweise lag das an Fehlern im Kernel-SMB-Server von Windows. Alternative SMB-Serverimplementierungen (z. B. Samba) sind viel weniger riskant – sowohl aufgrund einer anderen Codebasis, die nicht von der gleichen Art von Fehlern betroffen ist, als auch weil ein Userspace-SMBD-Prozess unter Linux wesentlich einfacher einzuschränken ist als ein Kerneltreiber unter Windows.
Wenn Sie also einen Samba-basierten SMB-Dateiserver betreiben, ist es halbwegs ok. Ich würde trotzdem empfehlenmindestensEs gibt zwar eine IP-basierte Firewall-Zulassungsliste obendrauf, aber zumindest Windows-orientierte Exploits funktionieren damit nicht.
Leider unterstützen viele Android-Apps keine neuen SMBv3-Funktionen wie Transportverschlüsselung. Wenn Sie Glück haben, bieten sie nur das absolute Minimum an SMBv2-Unterstützung und erfordern andernfalls SMBv1. In beiden Fällen bleibt Ihnen im Wesentlichen ein Klartextprotokoll. Außerdem ist die Verwendung von SMBv1 über WAN keine gute Erfahrung, selbst wenn es sicher wäre.)
Eine einfache Lösung für all das oben Genannte besteht darin, das Netzwerkdateisystemprotokoll nicht mehr preiszugeben, sondern stattdessen ein VPN-Protokoll bereitzustellen, da VPN-Server (genau wie SSH) für den Fernzugriff konzipiert sind und ihre Offenlegung im Allgemeinen viel weniger riskant ist. Sobald Sie eine Verbindung zum VPN hergestellt haben, verwenden Sie SMB oder NFS oder was auch immer Sie möchten.