Articles

Utiliser Samba pour partager des fichiers entre Linux et Windows

Votre réseau domestique peut avoir quelques machines Windows au rez-de-chaussée, un Mac dans une chambre à l’étage, un PocketPC sur une table de chevet et une ou deux boîtes Linux au sous-sol, le tout en réseau avec un routeur générique. Pour tous les appareils de cette configuration familiale familière, ou même un scénario avec des milliers d’utilisateurs, la suite Samba est une solution idéale pour le partage de fichiers et d’impressions.

Il existe plusieurs solutions multiplateformes de partage de fichiers et d’impressions, mais Samba et le protocole SMB/CIFS peuvent être les plus faciles à implémenter dans un environnement de réseau domestique. Les machines Windows et les Mac sont livrés avec les fonctionnalités avec Samba prêtes à l’emploi, et vous ne devez installer qu’un seul package Samba pour les machines Linux. GNOME et KDE offrent des fonctionnalités client Samba intégrées à leurs gestionnaires de fichiers par défaut, Nautilus et Konqueror, respectivement.

Nous nous concentrerons sur la configuration et l’utilisation de Samba pour le partage de fichiers et d’impressions dans un réseau domestique typique avec des machines Linux et Windows. Vous pouvez choisir parmi plusieurs interfaces graphiques de configuration Samba, mais nous emprunterons la voie à l’ancienne et dirigerons nos éditeurs de texte vers smb.conf. Le fichier de configuration se trouve généralement dans /etc/samba/smb.conf ou /usr/local/samba/lib/smb.conf. Notez que vous devrez être root pour les modifier ou utiliser sudo.

Samba fonctionnera sur presque tous les systèmes de type Unix et se trouve dans les dépôts de presque toutes les distributions Linux. Commencez par utiliser le gestionnaire de paquets de votre distribution pour vous assurer qu’il est installé.

Configuration de Samba

Samba est un package très mature et complexe, son fichier de configuration peut donc être long et compliqué. Vous devrez vous assurer que votre distribution vous a fourni une configuration par défaut raisonnablement saine et vous concentrer sur le changement de quelques lignes dans smb.conf pour s’assurer qu’ils sont appropriés aux fins d’un réseau domestique. Si vous voulez en savoir plus sur une ligne, consultez man smb.conf.

N’oubliez pas que toute ligne du fichier de configuration précédée d’un point-virgule (;) ou d’une marque de hachage (#) est un commentaire et ne sera pas reconnue comme un paramètre actif. Pour activer la ligne, supprimez le point-virgule ou le hachage. C’est une bonne idée d’ajouter vos propres commentaires précédés d’un de ces caractères afin que vous vous souveniez de la logique derrière votre configuration la prochaine fois que vous chargerez smb.conf.

La première option à considérer est le niveau de sécurité de Samba. Cette ligne apparaîtra sous la section de smb.conf, où toute la configuration à l’échelle de Samba est effectuée. Les autres sections, abordées plus loin dans cet article, concernent des services Samba spécifiques (ressources partagées). Le niveau de sécurité sera très probablement défini sur la valeur user et ressemblera à ceci :

security = user

Pour un réseau domestique, vous pouvez envisager de définir ceci sur share. La principale différence est qu’avec le paramètre user, vous devrez vous connecter au serveur Samba avant de pouvoir parcourir ses ressources. Il s’agit d’une sage précaution sur les réseaux non fiables, mais elle sera gênante lors de l’utilisation de ressources auxquelles vous souhaitez que tout votre foyer ait accès, comme une imprimante. Avec share activé, vous pouvez toujours demander aux utilisateurs de s’authentifier avec un mot de passe pour accéder à des ressources particulières.

Dans la section, passons aux imprimantes. Si vous utilisez le Système d’impression UNIX commun (CUPS) (auquel la plupart des distributions ont recours par défaut), la seule chose que vous devez faire pour que Samba reconnaisse vos imprimantes est de définir les lignes suivantes en conséquence:


printing = cups
printcap name = cups

Étant donné que vous configurez peut–être ces imprimantes (et peut-être d’autres ressources) pour qu’elles soient accessibles sans authentification de l’utilisateur, il est très important de restreindre l’accès aux seuls hôtes connus et de confiance – les ordinateurs de votre foyer. Consultez le manuel de votre routeur pour obtenir des instructions sur l’attribution d’adresses IP spécifiques à chaque ordinateur de votre réseau domestique. Une fois que vous avez une liste d’hôtes de confiance, entrez-les dans les lignes suivantes dans la section :


hosts allow = computer1 computer2 computerN
hosts deny = ALL

Bien que vous ayez spécifié que les hôtes ALL soient refusés, tout hôte répertorié sur la ligne hosts allow aura toujours accès. Le format des adresses IP attribuées à chaque ordinateur par votre routeur varie. Par exemple, si les machines de votre réseau local reçoivent des adresses au format 192.168.0.x, les lignes suivantes limiteront l’accès Samba aux hôtes locaux:

hosts allow = 192.168.0.
hosts deny = ALL

Notez que le dernier chiffre de l’adresse IP a été laissé sur la ligne hosts allow. Cela spécifie que toute adresse IP de cette plage est autorisée. Pour plus de sécurité contre les accès externes, envisagez de bloquer les ports Samba avec un pare-feu.

Partage de répertoires et d’imprimantes

Il est temps d’aller au-delà de et de configurer des ressources partagées spécifiques. Commencez par la section . Par défaut, cette section peut être configurée pour permettre aux utilisateurs d’accéder à leur répertoire personnel sur la machine exécutant le serveur Samba.

Si vous avez défini security = share, cette fonctionnalité peut ne pas fonctionner comme prévu et les utilisateurs peuvent se voir présenter des répertoires personnels sans se connecter. Si vous êtes le seul à avoir un répertoire personnel sur la machine exécutant le serveur Samba de toute façon, ce qui est probablement dans un environnement réseau domestique, il est conseillé de supprimer ou de commenter (en utilisant des marques de hachage ou des points-virgules) la section et d’ajouter des répertoires utiles en tant que ressources partagées individuellement plus tard.

Vous pouvez maintenant commencer à partager des répertoires spécifiques. Utilisez-le comme modèle pour un dossier partagé publiquement pour lequel il n’est pas nécessaire que les utilisateurs soient authentifiés:


path = /location/of/directory
guest ok = yes
browseable = yes
read only = no

Share Name est le titre que vous choisissez (pour le client accédant à votre serveur, cela apparaîtra comme le nom du répertoire partagé). La ligne guest ok = yes indique que ce partage est accessible au public. La ligne browseable = yes rendra le partage disponible pour tous les utilisateurs. Définissez browseable = no pour forcer les utilisateurs à saisir manuellement le nom du partage pour y accéder. Bien sûr, vous pouvez définir read only = yes pour empêcher les utilisateurs d’apporter des modifications au répertoire à distance.

Utilisez ceci comme modèle pour les partages privés auxquels les utilisateurs doivent entrer un mot de passe pour accéder :


path = /location/of/directory
valid users = user
read only = yes
browseable = no

Ici, user est le nom d’utilisateur sur la machine exécutant le serveur Samba de la personne ayant des privilèges d’accès au partage. Utilisez ces deux modèles pour ajouter des partages pour tous les fichiers auxquels les utilisateurs peuvent accéder depuis la machine serveur.

Votre serveur devrait être entièrement configuré maintenant. Avec ce que vous avez ajouté aux valeurs par défaut fournies par votre distribution, votre PME terminée.conf devrait ressembler à ceci:

security = shareworkgroup = HOMEserver string = %h serverlog file = /var/log/samba/log.%mmax log size = 1000dns proxy = Nohosts allow = 192.168.0.hosts deny = ALLprinting = cupsprintcap name = cupspath = /var/spool/sambaprintable = Yesbrowseable = Nopath = /var/lib/samba/printerspath = /Public/Filesguest ok = yesread only = nobrowseable = yespath = /private/files/valid users = meread only = yesbrowseable = no

Avant de quitter la machine serveur, vous avez encore quelques tâches rapides. Tout d’abord, entrez tous les utilisateurs qui accéderont au serveur Samba dans la commande suivante :

smbpasswd -a user

Vous serez invité à entrer un mot de passe Samba pour chaque utilisateur. Vous pouvez changer le mot de passe à tout moment en vous connectant en tant qu’utilisateur souhaité et en exécutant smbpasswd. Redémarrez maintenant votre serveur Samba en utilisant cette commande:

/etc/init.d/samba restart

Accéder aux partages Samba à partir de clients Windows

Rendez-vous sur une machine Windows pour essayer votre nouvelle configuration. Votre nouveau serveur devrait apparaître dans Mes emplacements réseau de Windows (recherchez le raccourci sur votre bureau, par défaut). Sinon, ouvrez le menu Démarrer et cliquez sur « Exécuter… », puis entrez :

\server

En remplaçant server par le nom ou l’adresse IP de la machine exécutant votre serveur Samba. Une fenêtre de l’Explorateur Windows avec les partages consultables depuis votre serveur devrait s’ouvrir. Si vous avez créé un partage non navigable, accédez-y en utilisant ce lien :

\servershare name

Il est facile de rendre les répertoires partagés plus accessibles. Sous Windows XP, faites un clic droit sur le partage dans l’Explorateur et choisissez « Carte du lecteur réseau… » Vous pourrez leur attribuer une lettre de lecteur, telle que Z:, afin qu’ils puissent être facilement trouvés dans Mon ordinateur, même après un redémarrage.

Lors de mes tests sur Windows XP avec le niveau de sécurité défini sur share, les imprimantes sont automatiquement détectées et disponibles à l’utilisation depuis la machine Windows. Avec le niveau de sécurité user défini, il était nécessaire de se connecter au serveur dans une fenêtre de l’Explorateur Windows avant d’essayer d’imprimer. Votre expérience sur d’autres versions de Windows peut varier.

L’accès aux partages SMB/CIFS à partir d’autres machines Linux

Les partages Samba et Windows sont facilement accessibles à partir des gestionnaires de fichiers par défaut de Gnome et de KDE. Nous commencerons par accéder aux partages de Nautilus dans Gnome. Ouvrez Nautilus et allez dans File -> Connectez-vous au serveur.

Choisissez « Partage Windows » dans la zone de liste et entrez le nom du serveur ou l’adresse IP de votre serveur Samba. Vous pouvez également cliquer sur le bouton ”Parcourir le réseau » et regarder dans le répertoire ”Réseau Windows » pour rechercher manuellement le serveur. Cliquez sur « Se connecter » et une fenêtre Nautilus s’ouvrira avec les ressources consultables de votre serveur Samba.

Accéder aux partages Samba avec Konqueror est tout aussi simple. Pour rechercher votre serveur, entrez l’URL remote:/ dans Konqueror. Pour un accès direct, tapez directement l’URL du serveur dans ce format:

smb://user@server/share

Notez que l’utilisateur et le partage sont des critères facultatifs.

La configuration des imprimantes sur Samba est également facile dans ces deux environnements de bureau. Dans Gnome, allez dans System – > Administration – > Impression. Dans l’application de configuration de l’imprimante, sélectionnez Imprimante -> Ajouter une imprimante. Vous serez invité à entrer votre mot de passe. Dans l’assistant Ajouter une imprimante, sélectionnez « Imprimante réseau » puis ”Imprimante Windows SMB » dans la zone de liste. Un nom d’utilisateur et un mot de passe vous seront demandés sur votre serveur Samba. Identifiez votre Hôte et votre imprimante sur le serveur Samba, puis passez à l’écran suivant. Sélectionnez votre modèle d’imprimante, puis cliquez sur Appliquer.

Pour faire de même dans KDE, ouvrez le centre de configuration en lançant la commande kcontrol. Accédez au module Imprimantes et accédez à Add-> Ajouter une imprimante / Classe… Dans la boîte de dialogue résultante, cliquez sur Suivant, puis sélectionnez « Imprimante partagée SMB (Windows). » Cliquez à nouveau sur Suivant et configurez le nom d’utilisateur et le mot de passe d’un « compte normal”, si vous utilisez la sécurité de niveau user. Cliquez une autre fois sur Suivant, puis numérisez pour rechercher votre serveur Samba.

Vous pouvez également saisir manuellement les détails du serveur. Sur l’écran suivant, sélectionnez votre modèle d’imprimante dans la liste. Cliquez sur les écrans suivants et donnez un titre à votre imprimante en réseau pour terminer.

Dépannage

Si vous avez rencontré des problèmes pour faire fonctionner l’une de ces fonctionnalités, consultez la liste de contrôle de dépannage Samba. Une astuce rapide empruntée à ce document pour tester votre fichier de configuration Samba à la recherche d’erreurs évidentes consiste à exécuter la commande suivante :

testparm smb.conf

À nouveau, le chemin exact de votre smb.la conf peut varier selon la distribution.

Nous n’avons exploré ici que les fonctionnalités de base de Samba, adaptées à un réseau domestique. Des scénarios d’utilisation plus extrêmes sont abordés en détail dans le guide Samba par exemple.