Rendere disponibile un'unità di rete su Internet?


19

Di recente ho creato una piccola macchina server, usando Ubuntu Server e Samba, per fungere da file server (tra le altre cose) in modo che tutta la mia famiglia possa accedere a determinati file sulla rete da macchine Windows. Tuttavia, mi piacerebbe fare un ulteriore passo avanti e rendere le condivisioni accessibili su Internet, lontano da casa. Come lo farei? So molto poco su come funziona il sistema di condivisioni di rete di Windows, quindi non ho idea da dove iniziare.


Dovresti davvero usare SCP.
kzh

@kzh: è un po 'troppo complesso per alcuni dei miei familiari.
Sasha Chedygov,

1
Nulla di personale riguardo alla risposta accettata, ma sebbene ciò possa aver tecnicamente risposto alla tua domanda, non lo farei MAI. Ti stai davvero esponendo, soprattutto se hai qualcosa di sensibile nella tua rete. Direi che il modo giusto è configurare una semplice VPN PPTP alla quale la tua famiglia possa connettersi e quindi consentire loro di avere accesso.
KCotreau,

1
@KCotreau: C'è molto di più in questa domanda che ho lasciato fuori per motivi di semplicità. Diciamo solo che i dati che esporremo non sono in alcun modo sensibili. Comprendo e accetto i rischi per la sicurezza: volevo solo una risposta semplice alla mia domanda specifica.
Sasha Chedygov,

1
@musicfreak La mia preoccupazione è che si tratti di un punto di attacco in altre aree del computer, o addirittura della rete nel suo insieme. Ovviamente, sei libero di farlo come vuoi, ma non lo consiglio ancora a meno che non ci sia niente sul computer, almeno, non solo la condivisione. Un libro molto interessante è "Hacking Exposed". Mostra solo quanti hacker attaccano questi protocolli.
KCotreau,

Risposte:


13

Con Samba, dovresti esporre le porte 139 / tcp e 445 / tcp verso l'esterno - di solito questo implica la configurazione del "port forwarding" nel tuo router. Inoltre, è necessario assicurarsi che il proprio indirizzo IP esterno sia pingabile dall'esterno.

Dopo questo, sarete in grado di accedere alle condivisioni inserendo \\youraddressin Explorer barra degli indirizzi s' o in Start - Esegui . (Qui youraddress è sia il vostro indirizzo IP esterno o il nome DNS, se ne avete uno.)

Si noti, tuttavia, che il protocollo CIFS e SMBv2 utilizzato dalla condivisione di file di Windows non fornisce la crittografia dei dati (quindi chiunque abbia uno sniffer di pacchetti può monitorare i trasferimenti di file) e la sua autenticazione non è particolarmente forte. Solo SMBv3 ha ottenuto il supporto per la crittografia.

Inoltre, non dimenticare che il servizio SMB di Windows è stato in passato un obiettivo di infezione molto frequente. Sebbene la maggior parte degli exploit di Windows non influisca in alcun modo su Samba, questo vale comunque la pena ricordare (e spesso significa che le porte SMB vengono bloccate a livello di ISP).

Si noti inoltre che i computer Windows per impostazione predefinita ricordano le credenziali di accesso per l'intera sessione locale. A meno che non ci si colleghi a Samba come "Ospite", è necessario prestare particolare attenzione alle macchine pubbliche: utilizzare sempre net use \\addressprima di aprire in Explorer / net use \\address /delper disconnettersi. (Questo non è necessario sui personal computer.)

Per ulteriore sicurezza, aggiungi quanto segue alla sezione generale in smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root

Ho pensato che sarebbe stato molto più complesso di così. Grazie per il consiglio!
Sasha Chedygov,

2
In una nota a margine, hai qualche consiglio per rendere la mancanza di crittografia dei dati meno un problema? Mi fido di tutte le reti a cui mi connetto, ma potrei, ad esempio, creare un account per la mia ragazza (che potrebbe trovarsi su una rete non affidabile), in modo che possa accedere alla mia musica / foto / ecc. Potrei sempre darle un account di sola lettura e chiamarlo bene, ma mi chiedo solo se forse hai qualche consiglio più specifico. Grazie ancora!
Sasha Chedygov,

Per l'accesso in sola lettura, è possibile configurare un server HTTPS (StartSSL / CAcert). Per caricare file, questo potrebbe essere esteso a WebDAV ... ma Windows non utilizzerà WebDAV se CIFS è disponibile e la maggior parte delle versioni di Windows presenta alcuni problemi con WebDAV protetto da SSL. Altre soluzioni richiedono software esterno (SFTP tramite WinSCP) o persino configurazione VPN.
user1686

Beh, stavo pianificando di configurare un sistema di backup basato sulla versione (un po 'come Time Machine su Mac OS X), in modo che anche se qualcuno avesse avuto accesso alle condivisioni e cancellato tutto, sarebbe comunque sicuro. Pensi che sia abbastanza? Preferirei, ovviamente, impedire che accada qualcosa di simile in primo luogo.
Sasha Chedygov,

2
Solo una nota: con gli ISP canadesi, le porte SMB sono bloccate a meno che tu non abbia un account aziendale. Assicurati che il tuo ISP sblocchi le porte se stai utilizzando JUST SMB
Canadian Luke REINSTATE MONICA

8

Se la tua famiglia è in grado di gestire utilizzando WinSCP, allora:

  • installa e configura SSH
  • dai agli account locali dei tuoi familiari sul tuo server
  • collega il tuo archivio di file in queste directory. Ad esempio, se stai esponendo /srv/samba_filestramite Samba, vorresti fare uno ln -s /home/{user}/files /srv/samba_fileso simile per ogni account. Se devi farlo per molti account, potresti scrivere uno script per farlo.
  • installa WinSCP sui computer della tua famiglia

Avrai quindi un metodo molto sicuro per trasferire file che non è troppo difficile da usare.

Tuttavia, se vuoi davvero l'integrazione dell '"unità di rete" con Windows, imparerei a conoscere OpenVPN e quindi a configurare un tunnel ponte sulla tua rete domestica. Ho ottenuto con successo file condivisi di Windows su tali tunnel.

Puoi anche usare PoPToP (pptpd) per consentire a un sistema Windows di riconnettersi al tuo box Ubuntu tramite una VPN PPTP. (Un tunnel IPSec / L2TP fornirebbe una migliore sicurezza ma è difficile da configurare).


Perché non creare semplicemente una filescondivisione che punta /srv/samba_filesdirettamente?
user1686

Le condivisioni Samba sarebbero visibili solo sul lato LAN. Sul lato Internet useresti WinSCP.
LawrenceC,

@LawrenceC Questo metodo "openvpn" condivide pesi massimi per computer a scheda singola come raspberry pi?
Bhavesh Gangani,

OpenVPN ha preso il 20% di CPU su un sistema ARM 1.3 Ghz e non mi ha fatto esaurire la RAM di 512 MB. Funzionava anche come router, server DHCP e DNS. Alcuni router SOHO con meno specifiche lo eseguono. Dovrebbe andare bene ma consumerà alcune risorse.
LawrenceC,

1

Dipende dal tipo di file che intendi pubblicare. Se questi sono documenti o solo file a cui devi accedere in remoto, esegui un server FTP sul tuo server Ubuntu. Assicurati di proteggerlo bene, con buone password e accedi solo alla directory dei file e non alla radice.

Se tuttavia intendi eseguire lo streaming di file multimediali (brani, film), stai cercando di eseguire un server di streaming. Ci sono molte soluzioni per questo ( eccone una ).

Infine, puoi sempre utilizzare una soluzione di unità "cloud" esistente come Dropbox o SkyDrive o Amazon Cloud Player: basta sincronizzare i tuoi file con uno di quei servizi e l'accesso a Internet (uno veloce a quello) è garantito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.