Udostępnić dysk sieciowy przez Internet?

19

Niedawno zbudowałem małą maszynę serwerową, używając Ubuntu Server i Samby, aby działać jako serwer plików (między innymi), aby cała moja rodzina mogła uzyskać dostęp do niektórych plików przez sieć z komputerów z systemem Windows. Chciałbym jednak pójść o krok dalej i mieć dostęp do akcji przez Internet, z dala od domu. Jak mam to zrobić? Wiem bardzo mało o tym, jak działa system udziałów sieciowych Windows, więc nie mam pojęcia, od czego zacząć.

Sasha Chedygov
źródło
Naprawdę powinieneś użyć SCP.
kzh
@kzh: To trochę zbyt skomplikowane dla niektórych członków mojej rodziny.
Sasha Chedygov
1
Nic osobistego odnośnie do zaakceptowanej odpowiedzi, ale chociaż to technicznie mogło odpowiedzieć na twoje pytanie, NIGDY nie zrobiłbym tego. Naprawdę narażasz się, szczególnie jeśli masz coś wrażliwego w swojej sieci. Powiedziałbym, że właściwym sposobem jest skonfigurowanie prostej sieci PPTP VPN, aby twoja rodzina mogła się z nią połączyć, a następnie umożliwić jej dostęp.
KCotreau
1
@KCotreau: Jest wiele innych pytań, które pominąłem dla uproszczenia. Powiedzmy, że dane, które będziemy ujawniać, nie są w żaden sposób wrażliwe. Rozumiem i akceptuję zagrożenia bezpieczeństwa - chciałem tylko prostej odpowiedzi na moje konkretne pytanie.
Sasha Chedygov
1
@musicfreak Obawiam się, że jest to punkt ataku na inne obszary komputera, a nawet całą sieć. Oczywiście możesz robić to, co chcesz, ale nadal tego nie zalecam, chyba że na komputerze nie ma nic, a nie tylko udział. Bardzo fajna książka to „Hacking Exposed”. Pokazuje, jak bardzo hakerzy atakują te protokoły.
KCotreau

Odpowiedzi:

13

W przypadku Samby poradzisz sobie z portami 139 / tcp i 445 / tcp na zewnątrz - zwykle wymaga to skonfigurowania „przekierowania portów” w routerze. Ponadto należy upewnić się, że zewnętrzny adres IP jest możliwy do pingowania z zewnątrz.

Następnie będziesz mógł uzyskać dostęp do udziałów, wchodząc \\youraddressw pasek adresu Eksploratora lub w Start - Uruchom . (Tutaj youraddress jest albo twój zewnętrzny adres IP lub nazwę DNS, jeśli masz jeden).

Należy jednak pamiętać, że protokół CIFS i protokół SMBv2 używany przez udostępnianie plików systemu Windows nie zapewnia szyfrowania danych (więc każdy z snifferem pakietów może monitorować przesyłane pliki), a jego uwierzytelnianie również nie jest szczególnie silne. Tylko SMBv3 uzyskał obsługę szyfrowania.

Nie zapominaj również, że usługa SMB systemu Windows była w przeszłości bardzo częstym celem infekcji. Chociaż większość exploitów systemu Windows w żaden sposób nie wpływa na Sambę, nadal warto o tym pamiętać (i często oznacza to, że porty SMB są blokowane na poziomie ISP).

Należy również pamiętać, że komputery z systemem Windows domyślnie zapamiętują dane logowania dla całej sesji lokalnej. O ile nie łączysz się z Sambą jako „Gość”, musisz zachować szczególną ostrożność na komputerach publicznych: zawsze używaj net use \\addressprzed otwarciem w Eksploratorze / w net use \\address /delcelu rozłączenia. (Nie jest to konieczne na komputerach osobistych).

Aby uzyskać dodatkowe zabezpieczenia, dodaj następujący tekst do sekcji ogólnej w smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root
użytkownik1686
źródło
Uznałem, że będzie to o wiele bardziej skomplikowane. Dziękuję za radę!
Sasha Chedygov
2
Na marginesie, czy masz jakieś zalecenia, aby brak szyfrowania danych był mniejszym problemem? Ufam wszystkim sieciom, z którymi się łączę, ale mogę na przykład założyć konto dla mojej dziewczyny (która może być w sieci niegodnej zaufania), aby mogła uzyskać dostęp do mojej muzyki / zdjęć / itp. Zawsze mogę po prostu dać jej konto tylko do odczytu i nazwać to dobrym, ale zastanawiam się, czy może masz jakieś bardziej szczegółowe porady. Dzięki jeszcze raz!
Sasha Chedygov
Aby uzyskać dostęp tylko do odczytu, możesz skonfigurować serwer HTTPS (StartSSL / CAcert). Aby przesłać pliki, można to rozszerzyć na WebDAV ... ale system Windows nie będzie korzystał z WebDAV, jeśli CIFS jest dostępny, a większość wersji systemu Windows ma pewne problemy z zabezpieczonym protokołem WebDAV. Inne rozwiązania wymagają zewnętrznego oprogramowania (SFTP przy użyciu WinSCP) lub nawet konfiguracji VPN.
user1686
Cóż, planowałem skonfigurować system tworzenia kopii zapasowych oparty na wersji (coś w rodzaju Time Machine w systemie Mac OS X), aby nawet gdyby ktoś uzyskał dostęp do udziałów i wyczyścił wszystko, nadal byłby bezpieczny. Myślisz, że to wystarczy? Oczywiście wolałbym przede wszystkim zapobiegać takim zdarzeniom.
Sasha Chedygov
2
Tylko uwaga: w przypadku kanadyjskich dostawców usług internetowych porty SMB są blokowane, chyba że masz konto firmowe. Upewnij się, że twój dostawca usług internetowych odblokowuje porty, jeśli używasz JUST SMB
kanadyjski Luke REINSTATE MONICA
8

Jeśli Twoja rodzina może obsługiwać za pomocą WinSCP, to:

  • zainstaluj i skonfiguruj SSH
  • przekaż członkom rodziny lokalne konta na swoim serwerze
  • dowiązanie symboliczne do Twojego katalogu plików w tych katalogach. Na przykład, jeśli udostępniasz /srv/samba_filesprzez Sambę, chciałbyś zrobić coś ln -s /home/{user}/files /srv/samba_filespodobnego dla każdego konta. Jeśli musisz to zrobić dla wielu kont, możesz napisać skrypt, aby to zrobić.
  • zainstaluj WinSCP na komputerach swojej rodziny

Będziesz wtedy mieć bardzo bezpieczną metodę przesyłania plików, która nie jest zbyt trudna w użyciu.

Jeśli jednak naprawdę chcesz integracji „dysku sieciowego” z systemem Windows, dowiem się o OpenVPN, a następnie skonfiguruję zmostkowany tunel do sieci domowej. Udało mi się udostępnić pliki systemu Windows do pracy w takich tunelach.

Możesz także użyć PoPToP (pptpd), aby umożliwić systemowi Windows ponowne połączenie się z twoim systemem Ubuntu za pośrednictwem VPN PPTP. (Tunel IPSec / L2TP zapewniłby większe bezpieczeństwo, ale jego konfiguracja jest trudna).

LawrenceC
źródło
Dlaczego nie po prostu utworzyć filesudział wskazujący /srv/samba_filesbezpośrednio?
user1686,
Udziały Samby byłyby widoczne tylko po stronie LAN. Po stronie internetowej używałbyś WinSCP.
LawrenceC
@LawrenceC Czy ta metoda „openvpn” ma duży udział w komputerach jednopłytkowych, takich jak Raspberry Pi?
Bhavesh Gangani
OpenVPN zajął 20% procesora w systemie ARM 1.3Ghz i nie wyczerpał mi 512 MB pamięci RAM. Działało to również jako router, serwer DHCP i DNS. Obsługują go niektóre routery SOHO o mniejszej specyfikacji. Powinno być w porządku, ale zużyje trochę zasobów.
LawrenceC
1

To zależy od tego, jakie pliki zamierzasz udostępnić. Jeśli są to dokumenty lub tylko pliki, do których musisz uzyskać dostęp zdalny, po prostu uruchom serwer FTP na serwerze Ubuntu. Upewnij się, że dobrze go zabezpieczysz, stosując dobre hasła i dostęp do katalogu plików, a nie katalogu głównego.

Jeśli jednak zamierzasz przesyłać strumieniowo pliki multimedialne (utwory, filmy), chcesz uruchomić serwer przesyłania strumieniowego. Istnieje na to wiele rozwiązań ( oto jedno ).

Wreszcie, zawsze możesz skorzystać z istniejącego napędu „w chmurze”, takiego jak Dropbox lub SkyDrive lub Amazon Cloud Player - po prostu zsynchronizuj swoje pliki z jedną z tych usług, a dostęp do Internetu (w tym szybki) jest gwarantowany.

Podróżujący facet techniczny
źródło