Ein Netzlaufwerk über das Internet verfügbar machen?

19

Ich habe vor kurzem einen kleinen Server-Rechner mit Ubuntu Server und Samba gebaut, um (unter anderem) als Dateiserver zu fungieren, damit meine gesamte Familie von Windows-Rechnern aus über das Netzwerk auf bestimmte Dateien zugreifen kann. Ich würde jedoch gerne noch einen Schritt weiter gehen und die Freigaben auch von zu Hause aus über das Internet zugänglich machen. Wie würde ich das machen? Ich weiß sehr wenig darüber, wie das Windows-Netzwerkfreigabesystem funktioniert, daher habe ich keine Ahnung, wo ich anfangen soll.

Sasha Chedygov
quelle
Sie sollten SCP wirklich verwenden.
kzh
@kzh: Das ist ein bisschen zu komplex für einige meiner Familienmitglieder.
Sasha Chedygov
1
Nichts Persönliches in Bezug auf die akzeptierte Antwort, aber obwohl dies Ihre Frage technisch beantwortet hat, würde ich dies NIE tun. Sie sind wirklich exponiert, besonders wenn Sie in Ihrem Netzwerk etwas Sensibles haben. Ich würde sagen, dass der richtige Weg ist, ein einfaches PPTP-VPN einzurichten, mit dem sich Ihre Familie verbinden kann, und ihnen dann Zugriff zu gewähren.
KCotreau
1
@ KCotreau: Es gibt noch viel mehr zu dieser Frage, die ich der Einfachheit halber weggelassen habe. Angenommen, die Daten, die wir veröffentlichen, sind in keiner Weise vertraulich. Ich verstehe und akzeptiere die Sicherheitsrisiken - ich wollte nur eine einfache Antwort auf meine spezielle Frage.
Sasha Chedygov
1
@musicfreak Meine Sorge ist, dass es ein Angriffspunkt auf andere Bereiche des Computers oder sogar auf das Netzwerk als Ganzes ist. Natürlich können Sie es tun, wie Sie möchten, aber ich empfehle es immer noch nicht, es sei denn, auf dem Computer ist nichts, zumindest nicht nur die Freigabe. Ein sehr cooles Buch ist "Hacking Exposed". Es zeigt, wie viele Hacker diese Protokolle angreifen.
KCotreau

Antworten:

12

Mit Samba müssten Sie die Ports 139 / tcp und 445 / tcp nach außen freigeben - normalerweise müssen Sie dazu die "Portweiterleitung" in Ihrem Router konfigurieren. Darüber hinaus müssen Sie sicherstellen, dass Ihre externe IP-Adresse von außen pingfähig ist.

Danach können Sie auf die Freigaben zugreifen, indem Sie sie \\youraddressin die Adressleiste des Explorers oder in Start - Ausführen eingeben . (Hier youraddress ist entweder Ihre externe IP - Adresse oder Ihre DNS - Namen, wenn Sie eine haben.)

Beachten Sie jedoch, dass das von der Windows-Dateifreigabe verwendete CIFS- und SMBv2-Protokoll keine Datenverschlüsselung bietet (sodass jeder mit einem Paket-Sniffer Ihre Dateiübertragungen überwachen kann) und auch die Authentifizierung nicht besonders stark ist. Nur SMBv3 erhielt Verschlüsselungsunterstützung.

Vergessen Sie auch nicht, dass der Windows-SMB-Dienst in der Vergangenheit ein sehr häufiges Infektionsziel war. Obwohl die meisten Windows-Exploits Samba in keiner Weise betreffen, ist dies immer noch zu beachten (und bedeutet häufig, dass die SMB-Ports auf ISP-Ebene gesperrt werden).

Beachten Sie außerdem, dass Windows-Computer standardmäßig die Anmeldeinformationen für die gesamte lokale Sitzung speichern. Wenn Sie sich nicht als "Gast" mit Samba verbinden, müssen Sie auf öffentlichen Rechnern besondere Vorsicht walten lassen: Verwenden Sie immer net use \\addressvor dem Öffnen im Explorer / net use \\address /del, um die Verbindung zu trennen. (Dies wird auf PCs nicht benötigt.)

Fügen Sie aus Sicherheitsgründen Folgendes zum allgemeinen Abschnitt hinzu smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root
Grawity
quelle
Ich dachte, es wäre viel komplexer. Danke für den Ratschlag!
Sasha Chedygov
2
Haben Sie Empfehlungen, um die fehlende Datenverschlüsselung weniger problematisch zu machen? Ich vertraue allen Netzwerken, mit denen ich verbunden bin, aber ich möchte möglicherweise ein Konto für meine Freundin einrichten (die sich möglicherweise in einem nicht vertrauenswürdigen Netzwerk befindet), damit sie auf meine Musik / Fotos / usw. zugreifen kann. Ich könnte ihr immer nur ein Nur-Lese-Konto geben und es als gut bezeichnen, aber ich frage mich nur, ob Sie vielleicht einen genaueren Rat haben. Danke noch einmal!
Sasha Chedygov
Für den schreibgeschützten Zugriff können Sie einen HTTPS-Server (StartSSL / CAcert) einrichten. Zum Hochladen von Dateien kann dies auf WebDAV erweitert werden. Windows verwendet WebDAV jedoch nicht, wenn CIFS verfügbar ist, und die meisten Windows-Versionen haben einige Probleme mit SSL-geschütztem WebDAV. Andere Lösungen erfordern externe Software (SFTP mit WinSCP) oder sogar eine VPN-Konfiguration.
Grawity
Nun, ich hatte vor, ein versionsbasiertes Backup-System einzurichten (ähnlich wie Time Machine unter Mac OS X), damit es auch dann sicher ist, wenn jemand Zugriff auf die Freigaben erhält und alles löscht. Glaubst du, das ist genug? Ich würde natürlich lieber verhindern, dass so etwas überhaupt passiert.
Sasha Chedygov
2
Nur ein Hinweis: Bei kanadischen ISPs sind die SMB-Ports gesperrt, sofern Sie kein Geschäftskonto haben. Stellen Sie sicher , dass Ihr ISP deblockiert die Ports , wenn Sie mit nur SMB
Canadian Luke wieder einzusetzen MONICA
8

Wenn Ihre Familie mit WinSCP umgehen kann, dann:

  • Installieren und Einrichten von SSH
  • Geben Sie Ihren Familienmitgliedern lokale Konten auf Ihrem Server
  • Verknüpfen Sie Ihren Dateispeicher mit diesen Verzeichnissen. Wenn Sie beispielsweise /srv/samba_filesüber Samba exponieren , möchten Sie ln -s /home/{user}/files /srv/samba_filesfür jedes Konto eine oder eine ähnliche Aktion ausführen. Wenn Sie dies für viele Konten tun müssen, können Sie ein Skript schreiben, um dies zu tun.
  • Installieren Sie WinSCP auf den Computern Ihrer Familie

Sie haben dann eine sehr sichere Methode zum Übertragen von Dateien, die nicht zu schwierig zu verwenden ist.

Wenn Sie jedoch wirklich die Integration von "Netzwerklaufwerken" in Windows möchten, sollten Sie sich mit OpenVPN vertraut machen und dann einen überbrückten Tunnel zu Ihrem Heimnetzwerk einrichten. Ich habe Windows Fileshares erfolgreich dazu gebracht, über solche Tunnel zu arbeiten.

Sie können auch PoPToP (pptpd) verwenden, um einem Windows-System zu ermöglichen, über ein PPTP-VPN eine Verbindung zu Ihrer Ubuntu-Box herzustellen. (Ein IPSec / L2TP-Tunnel bietet eine bessere Sicherheit, ist jedoch schwer einzurichten.)

LawrenceC
quelle
Warum nicht einfach eine filesFreigabe erstellen , auf die /srv/samba_filesdirekt verwiesen wird?
Grawity
Samba-Freigaben wären nur auf der LAN-Seite sichtbar. Auf der Internetseite würden Sie WinSCP verwenden.
LawrenceC
@LawrenceC Ist diese "openvpn" -Methode für Single-Board-Computer wie Himbeer-Pi im Schwergewicht?
Bhavesh Gangani
OpenVPN beanspruchte 20% der CPU auf einem ARM 1.3Ghz-System und es gingen mir nicht 512 MB RAM aus. Dieser fungierte auch als Router, DHCP- und DNS-Server. Einige SOHO-Router mit weniger Spezifikationen führen es aus. Es sollte in Ordnung sein, wird aber einige Ressourcen verbrauchen.
LawrenceC
1

Dies hängt davon ab, welche Art von Dateien Sie bereitstellen möchten. Wenn es sich um Dokumente oder nur um Dateien handelt, auf die Sie remote zugreifen müssen, führen Sie einfach einen FTP-Server auf Ihrem Ubuntu-Server aus. Stellen Sie sicher, dass Sie es mit guten Passwörtern gut sichern und nur auf das Dateiverzeichnis und nicht auf das Stammverzeichnis zugreifen.

Wenn Sie jedoch Mediendateien (Musiktitel, Filme) streamen möchten, möchten Sie einen Streaming-Server betreiben. Dafür gibt es viele Lösungen ( hier eine ).

Schließlich können Sie jederzeit eine vorhandene "Cloud" -Lösung wie Dropbox oder SkyDrive oder Amazon Cloud Player verwenden. Synchronisieren Sie einfach Ihre Dateien mit einem dieser Dienste, und der Internetzugang ist garantiert (und zwar schnell).

Reisender Tech-Typ
quelle