Rendre un lecteur réseau disponible sur Internet?

19

J'ai récemment construit une petite machine serveur, utilisant Ubuntu Server et Samba, pour servir de serveur de fichiers (entre autres) afin que toute ma famille puisse accéder à certains fichiers sur le réseau à partir de machines Windows. Cependant, j'aimerais aller un peu plus loin et que les actions soient accessibles sur Internet, loin de chez moi. Comment pourrais-je faire ça? Je sais très peu de choses sur le fonctionnement du système de partage de réseau Windows, donc je ne sais pas par où commencer.

Sasha Chedygov
la source
Vous devriez vraiment utiliser SCP.
kzh
@kzh: C'est un peu trop complexe pour certains membres de ma famille.
Sasha Chedygov
1
Rien de personnel concernant la réponse acceptée, mais bien que cela ait répondu techniquement à votre question, je ne ferais JAMAIS cela. Vous vous exposez vraiment, surtout si vous avez quelque chose de sensible sur votre réseau. Je dirais que la bonne façon est de mettre en place un VPN PPTP simple pour que votre famille se connecte, puis de leur laisser l'accès.
KCotreau
1
@KCotreau: Il y a beaucoup plus à cette question que j'ai laissé de côté pour des raisons de simplicité. Disons simplement que les données que nous allons exposer ne sont en aucun cas sensibles. Je comprends et accepte les risques de sécurité - je voulais juste une réponse simple à ma question spécifique.
Sasha Chedygov
1
@musicfreak Ce qui m'inquiète, c'est qu'il s'agit d'un point d'attaque dans d'autres domaines de l'ordinateur, voire du réseau dans son ensemble. Évidemment, vous êtes libre de le faire comme vous le souhaitez, mais je ne le recommande toujours pas à moins qu'il n'y ait rien sur l'ordinateur, au moins, pas seulement le partage. Un livre très cool est "Hacking Exposed". Il montre à quel point les pirates informatiques attaquent ces protocoles.
KCotreau

Réponses:

13

Avec Samba, vous devrez exposer les ports 139 / tcp et 445 / tcp à l'extérieur - cela implique généralement de configurer la "redirection de port" dans votre routeur. De plus, vous devez vous assurer que votre adresse IP externe est pingable de l'extérieur.

Après cela, vous pourrez accéder aux partages en entrant \\youraddressdans la barre d'adresse de l' Explorateur ou dans Démarrer-Exécuter . (Ici youraddress est soit votre adresse IP externe ou votre nom DNS, si vous en avez un.)

Notez, cependant, que le protocole CIFS et SMBv2 utilisé par le partage de fichiers Windows ne fournit pas de chiffrement des données (de sorte que quiconque avec un renifleur de paquets peut surveiller vos transferts de fichiers), et son authentification n'est pas particulièrement forte non plus. Seul SMBv3 a obtenu la prise en charge du chiffrement.

N'oubliez pas non plus que le service SMB de Windows a été dans le passé une cible d'infection très fréquente. Bien que la plupart des exploits Windows n'affectent en rien Samba, cela vaut la peine d'être rappelé (et signifie souvent que les ports SMB sont bloqués au niveau du FAI).

Notez également que les machines Windows se souviennent par défaut des informations de connexion pour toute la session locale. Sauf si vous vous connectez à Samba en tant que "Invité", vous devez faire particulièrement attention aux machines publiques: utilisez toujours net use \\addressavant d'ouvrir dans l'Explorateur / net use \\address /delpour vous déconnecter. (Cela n'est pas nécessaire sur les ordinateurs personnels.)

Pour une sécurité supplémentaire, ajoutez ce qui suit à la section générale de smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root
user1686
la source
Huh, je pensais que ce serait beaucoup plus complexe que ça. Merci pour le conseil!
Sasha Chedygov
2
En passant, avez-vous des recommandations pour réduire le problème du manque de cryptage des données? Je fais confiance à tous les réseaux auxquels je me connecte, mais je pourrais par exemple créer un compte pour ma petite amie (qui peut être sur un réseau non fiable), afin qu'elle puisse accéder à ma musique / mes photos / etc. Je pourrais toujours lui donner un compte en lecture seule et le qualifier de bon, mais je me demande simplement si vous avez peut-être des conseils plus spécifiques. Merci encore!
Sasha Chedygov
Pour un accès en lecture seule, vous pouvez configurer un serveur HTTPS (StartSSL / CAcert). Pour télécharger des fichiers, cela pourrait être étendu à WebDAV ... mais Windows n'utilisera pas WebDAV si CIFS est disponible, et la plupart des versions de Windows ont des problèmes avec WebDAV sécurisé SSL. D'autres solutions nécessitent un logiciel externe (SFTP utilisant WinSCP) ou même une configuration VPN.
user1686
Eh bien, je prévoyais de mettre en place un système de sauvegarde basé sur la version (un peu comme Time Machine sur Mac OS X), de sorte que même si quelqu'un avait accès aux partages et effaçait tout, ce serait toujours sûr. Pensez-vous que cela suffit? Je préférerais, bien sûr, empêcher que quelque chose comme cela se produise en premier lieu.
Sasha Chedygov
2
Juste une note: avec les FAI canadiens, les ports SMB sont bloqués sauf si vous avez un compte professionnel. Assurez-vous que votre FAI débloque les ports si vous utilisez JUST SMB
Canadian Luke REINSTATE MONICA
8

Si votre famille peut gérer l'utilisation de WinSCP, alors:

  • installer et configurer SSH
  • donner aux membres de votre famille des comptes locaux sur votre serveur
  • créer un lien symbolique entre votre magasin de fichiers et ces répertoires. Par exemple, si vous exposez /srv/samba_filesvia Samba, vous souhaitez effectuer une ln -s /home/{user}/files /srv/samba_filesou similaire pour chaque compte. Si vous devez le faire pour de nombreux comptes, vous pouvez écrire un script pour le faire.
  • installez WinSCP sur les ordinateurs de votre famille

Vous aurez alors une méthode très sécurisée de transfert de fichiers qui n'est pas trop difficile à utiliser.

Cependant, si vous voulez vraiment l'intégration du "lecteur réseau" avec Windows, j'aimerais en savoir plus sur OpenVPN, puis sur la configuration d'un tunnel ponté vers votre réseau domestique. J'ai réussi à faire fonctionner les partages de fichiers Windows sur de tels tunnels.

Vous pouvez également utiliser PoPToP (pptpd) pour permettre à un système Windows de se reconnecter à votre box Ubuntu via un VPN PPTP. (Un tunnel IPSec / L2TP fournirait une meilleure sécurité mais il est difficile à configurer).

LawrenceC
la source
Pourquoi ne pas simplement créer un filespartage pointant /srv/samba_filesdirectement vers ?
user1686
Les partages Samba ne seraient visibles que du côté LAN. Côté Internet, vous utiliseriez WinSCP.
LawrenceC
@LawrenceC Est-ce que cette méthode "openvpn" partage le poids lourd pour les ordinateurs monocarte comme le raspberry pi?
Bhavesh Gangani
OpenVPN a pris 20% de CPU sur un système ARM 1.3Ghz et ne m'a pas fait manquer de 512 Mo de RAM. Cela fonctionnait également comme un routeur, un serveur DHCP et DNS. Certains routeurs SOHO avec moins de spécifications l'exécutent. Cela devrait être bien, mais consommera certaines ressources.
LawrenceC
1

Cela dépend du type de fichiers que vous avez l'intention de servir. S'il s'agit de documents ou simplement de fichiers auxquels vous devez accéder à distance, exécutez simplement un serveur FTP sur votre serveur Ubuntu. Assurez-vous de bien le sécuriser, avec de bons mots de passe, et accédez uniquement au répertoire de fichiers et non à la racine.

Si toutefois vous avez l'intention de diffuser des fichiers multimédias (chansons, films), vous envisagez d'exécuter un serveur de streaming. Il existe de nombreuses solutions pour cela (en voici une ).

Enfin, vous pouvez toujours utiliser une solution de lecteur "cloud" existante comme Dropbox ou SkyDrive, ou Amazon Cloud Player - synchronisez simplement vos fichiers avec l'un de ces services et l'accès à Internet (un rapide à cela) est garanti.

Voyager Tech Guy
la source