Disponibilizar uma unidade de rede pela Internet?

19

Recentemente, construí uma pequena máquina servidor, usando o Ubuntu Server e o Samba, para atuar como um servidor de arquivos (entre outras coisas), para que toda a minha família possa acessar determinados arquivos pela rede a partir de máquinas Windows. No entanto, eu adoraria dar um passo adiante e permitir que os compartilhamentos sejam acessíveis pela Internet, longe de casa. Como eu faria isso? Sei muito pouco sobre como o sistema de compartilhamentos de rede do Windows funciona, por isso não faço ideia por onde começar.

Sasha Chedygov
fonte
Você realmente deve usar o SCP.
Kzh 17/07
@kzh: Isso é um pouco complexo demais para alguns membros da minha família.
Sasha Chedygov 17/07
11
Nada pessoal sobre a resposta aceita, mas, embora isso possa ter respondido tecnicamente à sua pergunta, NUNCA faria isso. Você está realmente se expondo, especialmente se tiver algo sensível na sua rede. Eu diria que o caminho certo é configurar uma VPN PPTP simples para a sua família se conectar e permitir que eles tenham acesso.
KCotreau
11
@KCotreau: Há muito mais nesta questão que deixei de fora por uma questão de simplicidade. Digamos apenas que os dados que iremos expor não são de forma alguma sensíveis. Entendo e aceito os riscos de segurança - eu só queria uma resposta simples para minha pergunta específica.
Sasha Chedygov
11
@musicfreak Minha preocupação é que seja um ponto de ataque em outras áreas do computador, ou mesmo da rede como um todo. Obviamente, você pode fazê-lo da maneira que quiser, mas ainda não o recomendo, a menos que não haja nada no computador, pelo menos, não apenas o compartilhamento. Um livro muito legal é "Hacking Exposed". Ele mostra o quanto os hackers atacam esses protocolos.
KCotreau

Respostas:

12

Com o Samba, você teria que expor as portas 139 / tcp e 445 / tcp para o exterior - geralmente isso envolve a configuração do "encaminhamento de porta" no seu roteador. Além disso, você deve certificar-se de que seu endereço IP externo seja pingável externamente.

Depois disso, você poderá acessar os compartilhamentos digitando \\youraddressna barra de endereços do Explorer ou em Iniciar - Executar . (Aqui youraddress ou é o seu endereço IP externo ou o nome DNS, se você tiver um).

Observe, no entanto, que o protocolo CIFS e SMBv2 usado pelo compartilhamento de arquivos do Windows não fornece criptografia de dados (portanto, qualquer pessoa com um farejador de pacotes pode monitorar suas transferências de arquivos) e sua autenticação também não é especialmente forte. Somente o SMBv3 ganhou suporte de criptografia.

Além disso, não esqueça que, no passado, o serviço SMB do Windows era um alvo de infecção muito frequente. Embora a maioria das explorações do Windows não afete o Samba de maneira alguma, ainda vale a pena lembrar (e muitas vezes significa que as portas SMB são bloqueadas no nível do ISP).

Observe também que as máquinas Windows, por padrão, lembram as credenciais de logon para toda a sessão local. A menos que você esteja se conectando ao Samba como "Convidado", você deve ter cuidado especial em máquinas públicas: sempre use net use \\addressantes de abrir no Explorer / net use \\address /delpara desconectar. (Isso não é necessário em computadores pessoais.)

Para uma segurança extra, adicione o seguinte à seção geral em smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root
gravidade
fonte
Pensei que seria muito mais complexo que isso. Obrigado pelo conselho!
Sasha Chedygov 17/07
2
Em uma nota lateral, você tem alguma recomendação para reduzir a falta de criptografia de dados? Confio em todas as redes às quais me conecto, mas posso, por exemplo, criar uma conta para minha namorada (que pode estar em uma rede não confiável), para que ela possa acessar minhas músicas / fotos / etc. Eu sempre poderia dar a ela uma conta somente leitura e chamar isso de bom, mas estou me perguntando se você tem algum conselho mais específico, talvez. Obrigado novamente!
Sasha Chedygov 17/07
Para acesso somente leitura, você pode configurar um servidor HTTPS (StartSSL / CAcert). Para fazer upload de arquivos, isso pode ser estendido ao WebDAV ... mas o Windows não usará o WebDAV se o CIFS estiver disponível, e a maioria das versões do Windows tem alguns problemas com o WebDAV protegido por SSL. Outras soluções requerem software externo (SFTP usando WinSCP) ou até configuração de VPN.
grawity
Bem, eu estava pensando em configurar um sistema de backup baseado em versão (como o Time Machine no Mac OS X), para que, mesmo que alguém tivesse acesso aos compartilhamentos e limpasse tudo, ainda estaria seguro. Você acha que isso é suficiente? É claro que eu preferiria impedir que algo assim acontecesse em primeiro lugar.
Sasha Chedygov 17/07
2
Apenas uma observação: com os ISPs canadenses, as portas SMB são bloqueadas, a menos que você tenha uma conta comercial. Verifique se o seu ISP desbloqueia as portas se você estiver usando apenas SMB
canadense Luke restabelecer MONICA
8

Se sua família pode lidar com o WinSCP, então:

  • instalar e configurar SSH
  • forneça contas locais aos seus familiares no seu servidor
  • vincule seu repositório de arquivos a esses diretórios. Por exemplo, se você está expondo o /srv/samba_filesSamba, deseja fazer um ln -s /home/{user}/files /srv/samba_filesou semelhante para cada conta. Se você precisar fazer isso para muitas contas, poderá escrever um script para fazê-lo.
  • instale o WinSCP nos computadores da sua família

Você terá um método muito seguro de transferir arquivos que não é muito difícil de usar.

No entanto, se você realmente deseja a integração da "unidade de rede" com o Windows, eu aprenderia sobre o OpenVPN e configuraria um túnel em ponte para sua rede doméstica. Consegui que o compartilhamento de arquivos do Windows funcionasse com esses túneis.

Você também pode usar o PoPToP (pptpd) para permitir que um sistema Windows se reconecte à sua caixa do Ubuntu por meio de uma VPN PPTP. (Um túnel IPSec / L2TP forneceria melhor segurança, mas é difícil de configurar).

LawrenceC
fonte
Por que não criar apenas um filescompartilhamento apontando /srv/samba_filesdiretamente?
grawity
Os compartilhamentos do Samba seriam visíveis apenas no lado da LAN. No lado da Internet, você usaria o WinSCP.
LawrenceC
@LawrenceC Esse método "openvpn" compartilha pesos pesados ​​para computadores de placa única como o raspberry pi?
Bhavesh Gangani
O OpenVPN levou 20% da CPU em um sistema ARM de 1,3 Ghz e não me deixou com 512 MB de RAM. Isso também estava funcionando como um roteador, servidor DHCP e DNS. Alguns roteadores SOHO com menos especificações o executam. Deve estar bem, mas consumirá alguns recursos.
LawrenceC
1

Depende do tipo de arquivo que você pretende veicular. Se estes são documentos ou apenas arquivos que você precisa acessar remotamente, basta executar um servidor FTP no seu servidor Ubuntu. Certifique-se de protegê-lo bem, com boas senhas e acesso apenas ao diretório de arquivos, e não à raiz.

Se, no entanto, você pretende transmitir arquivos de mídia (músicas, filmes), está procurando executar um servidor de streaming. Existem muitas soluções para isso ( aqui está uma ).

Por fim, você sempre pode usar uma solução de unidade "nuvem" existente como Dropbox, SkyDrive ou Amazon Cloud Player - basta sincronizar seus arquivos com um desses serviços e o acesso à Internet (rápido) é garantido.

Travelling Tech Guy
fonte