Faire fonctionner Samba
Par figaro, vendredi 9 mars 2007 à 10:22 :: Samba :: #29 :: rss
Nous allons voir les conditions pour faire fonctionner Samba afin de voir depuis Debian (GNU/Linux) ou Ubuntu les PCs du réseau sous Windows XP et/ou Linux et vice versa :
Ce post est le premier d'une série qui vous amènera à l'obtention d'un réseau familial ou de petite entreprise pouvant recevoir jusqu'à une vingtaine de PCs. Il est important de suivre pas à pas les différentes étapes en vérifiant à chacune des étapes contenues dans un des trois posts le fonctionnement avant d'aborder l'étape suivante sous peine de "galère" car il y a beaucoup de paramètres à respecter.
Cette méthode a été établie suite aux nombreux dépannages que j'ai effectués sur le forum Ubuntu-fr et qui m'ont permis de voir où les gens butaient et de définir une procédure permettant d'éviter les écueils. Les différents outils graphiques de configuration proposés dans les différentes distributions GNU/Linux, sont incomplets et générateurs d'erreurs et je préconise de ne surtout pas les utiliser mais de suivre cette méthode qui vous fera comprendre le fonctionnement de Samba et du protocole smb.
La méthode vous permettra de contourner les problèmes au fur et à mesure et d'avoir rapidement un réseau opérationnel en effaçant les "barrières" primordiales, puis de l'optimiser pour avoir une utilisation souple et fluide.
Toutefois il est nécessaire que vous possédiez un minimum de connaissances en informatique et utilisation des PCs pour utiliser la méthode avec succès.
1 - sur les PC Windows
- créer des dossiers partagés et
- définir les droits sur ces dossiers (lecture seule ou lecture/écriture) et
- renseigner dans le fichier sytem32/drivers/etc/hosts chaque ordinateur du réseau avec l'Ip et le nom des PC sous la forme : Ip nomPC.
Nota: les noms des hosts ne doivent pas avoir plus de 15 caractères et ceux des dossiers partagés plus de 12 caractères.
2 - Installer Samba sur le PC Linux. Le fichier par défaut /etc/samba/smb.conf est opérationnel tel que fourni par Debian et Ubuntu mais l'on va devoir éditer certains points de ce fichier.
- Le nom du workgroup sera à modifer pour l'harmonisation avec les PC sous Windows c'est primordial,
- également à décommenter la ligne security = user en enlevant le ; en début de ligne pour augmenter la sécurité.
- Renseigner également dans le fichier /etc/hosts chaque ordinateur du réseau avec l'Ip et le nom des PC sous la forme : Ip nomPC.
Nota: les noms des hosts ne doivent pas avoir plus de 15 caractères.
Puis paramétrer le firewall à l'aide de Firestarter, voir le PS en fin de post pour explications
3 - Créer des utilisateurs samba sur le PC Linux avec smbpasswd (ou pdbedit) :
- Les utilisateurs doivent être déjà utilisateurs du PC Linux, les créer au besoin,les mettre dans un groupe de partage, ensuite on crée les utilisateurs Samba avec une des commandes suivantes : sudo smbpasswd -a nomutilisateur ou sudo pdbedit -a nomutilisateur
- donner le pass sudo puis ensuite le pass choisi pour l'utilisateur. Il est préférable de donner des pass différents à chaque utilisateur.
la deuxième commande s'utilise si vous avez l'option passdb backend = tdbsam dans votre smb.conf à la place de la définition d'un smbpasswd file (cette option existe à partir de la version 3.0 de Samba et place les utilisateurs et leur password dans un fichier tdb situé dans /var/lib/samba, fichier plus sur et plus solide qu'un simple fichier texte smbpasswd). Explications détaillées sur les backends.
4 - Harmoniser le nom du workgroup
- sur les PC windows dans Poste de travail/Propriétés/Nom de l'ordinateur/Modifier
- sur le PC Linux dans le fichier /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf
5 – Créer un dossier à partager sur le PC Linux :
- Créer ou choisir un dossier, le partager*, autoriser* ou non l'écriture selon besoin
- Définir comme groupe du dossier le groupe de partage des utilisateurs Système/Administration/Dossiers Partagés
- donner les permissions 755 à ce dossier (775 pour autoriser le groupe à écrire) sudo chmod -R 755 /path/nomdossier
Nota : Cela peut se faire également directement dans le fichier smb.conf en rajoutant une section pour le dossier partagé. Voir le post suivant sur Samba et la partie sur les sections des dossiers.
ATTENTION si le dossier partagé est sur une partition en fat32 ou ntfs (partition Windows) il faut pouvoir partager la totalité de la partition en la montant avec des droits suffisants et les droits ne se donnent pas par un chmod mais par les options de montage dans le fichier /etc/fstab où il faut remplacer les options par défaut par exemple pour l'utilisateur principal par:
defaults,utf8,user,umask=022,gid=1000,uid=1000
ce qui correspond à un chmod de 755 ou par
defaults,utf8,user,umask=002,gid=1000,uid=1000
ce qui correspond à un chmod de 775
Adaptez umask, uid et gid suivant vos besoins.
6 – Les PC étant allumés et bootés sur leurs OS respectifs,
- depuis le PC Linux utiliser Se Connecter à un serveur pour se connecter au(x) PC(s) Windows à l'aide de leur adresse Ip : vous aurez alors une icône de connexion sur le bureau,et
- depuis le PC Windows dans Démarrer/ Favoris Réseau/Ajouter un favori et vous aurez un nouveau lien dans la fenêtre Favoris réseau.
Vous pouvez également sous Windows utiliser la fonction "Connecter un lecteur réseau" pour avoir un lecteur réseau mappé dans le poste de travail sous une lettre de disque.
7 - Vous pouvez aussi depuis Windows utiliser la Fonction Voir les Ordinateurs du réseau dans la fenêtre Favoris Réseau, mais attention cette commande peut demander un certain temps (jusqu'à dix minutes) avant d'être active (soyez patients) et afficher le PC Ubuntu car les PC doivent s'être reconnus et avoir dialogué (tout le réseau est parcouru), et il en est de même avec la fonction ..Réseau.. de Debian ou Ubuntu . A noter que selon les versions de samba le fonctionnement de "Réseaux Windows" peut être buggé et ne pas fonctionner correctement (Explications ici).
Ces fonctions sont assez aléatoires et elles peuvent également être empêchées par le firewall si celui-ci est mal configuré. Seul le système du paragraphe 6 Se Connecter à un serveur est immédiat et stable: les liaisons sont quasiment instantanées.
Nous verrons plus tard comment régler ce problème. Voir mon post sur l'Optimisation du réseau , celui sur la Résolution des noms d'hotes et celui sur le broadcasting.
8 – On peut aussi avoir un montage automatique des dossiers partagés des PC Windows au boot de GNU/Linux à l'aide du fstab et l'utilisation de cifs. (Voir les conditions indispensables).
Code pour le fstab pour monter un partage windows , il faut avoir créer /media/partage et le fichier .smbcredentials avec le nom de l'utilisateur et son password
//IpPCdistant/DossierPartage /media/partage cifs
uid=1000,gid=1000,file_mode=0750,dir_mode=0750,
iocharset=utf8,credentials=/root/.smbcredentials 0 0
sur une seule ligne.
ou avec un mount spécifique en sudo
sudo mount -t cifs //IpPCdistant/DossierPartage /media/partage
-o uid=1000,gid=1000,file_mode=0750,dir_mode=0750,
iocharset=utf8,credentials=/root/.smbcredentials
sur une seule ligne.
Nota: l'uid et le gid peuvent être indiqués en clair.
Il y a une fonction semblable sur Windows pour monter les dossiers partagés des PC Linux au boot de Windows avec net en ligne de commande ou Connecter un lecteur réseau en mode graphique.
9 - On peux encore augmenter la sécurité en ajoutant dans la section global du fichier /etc/samba/smb.conf une ligne :
hosts allow = Ip1 Ip2 Ip3 Ip4 Ip5
Avec les différentes Ip des seuls PC du réseau autorisés à partager ou l'adresse de l'ensemble du réseau (par exemple 192.168.1. ou 192.168.0.) .
PS : Paramétrage des firewalls : ne pas oubliez d'ouvrir les ports pour Samba aux PC autorisés du réseau sur les différents firewalls .
Les ports à ouvrir sont :
- en udp 137 et 138
- en tcp 139 et 445
Sous Linux l'interface graphique Firestarter est préprogrammée pour ces ports, il suffit de choisir Samba dans la liste.
Sous Windows cela dépend du firewall installé, voir sa notice d'utilisation.
ZoneAlarm ne crée pas de problème il suffit de bien autoriser les PC de la zone sure.
Le firewall standard de Windows XP est automatiquement programmé pour ces ports lors des partages de dossiers .
Ne pas oublier d'autoriser également la connexion des différents PC du réseau.
Important : ne pas oublier d'autoriser le broadcast sur le réseau externe et le réseau interne dans les Options Avancées de Firestarter : les deux cases doivent être décochées.

Commentaires
1. Le samedi 13 octobre 2007 à 11:49, par atomc
2. Le lundi 22 octobre 2007 à 11:43, par martinus
3. Le lundi 22 octobre 2007 à 12:25, par figaro
4. Le vendredi 9 novembre 2007 à 22:31, par jvander59
5. Le samedi 10 novembre 2007 à 07:47, par figaro
6. Le mardi 5 février 2008 à 08:20, par ralph
7. Le dimanche 10 février 2008 à 15:03, par Le Roi Newbie
8. Le dimanche 10 février 2008 à 15:19, par figaro
9. Le lundi 11 février 2008 à 13:06, par Le Roi Newbie
10. Le dimanche 17 février 2008 à 00:56, par vero
11. Le jeudi 20 mars 2008 à 20:42, par biggnou
12. Le samedi 13 septembre 2008 à 23:19, par pinguino
13. Le samedi 10 janvier 2009 à 13:19, par newo
14. Le samedi 10 janvier 2009 à 14:01, par figaro
15. Le mardi 19 mai 2009 à 05:13, par Jun
16. Le mardi 19 mai 2009 à 11:43, par figaro
17. Le lundi 3 mai 2010 à 19:49, par enium
18. Le mardi 4 mai 2010 à 08:33, par figaro
19. Le dimanche 23 mai 2010 à 18:03, par AlainT
20. Le lundi 24 mai 2010 à 08:21, par figaro
21. Le dimanche 11 juillet 2010 à 17:19, par Jex
22. Le dimanche 11 juillet 2010 à 17:51, par figaro
23. Le jeudi 22 juillet 2010 à 15:07, par macgyvre
24. Le jeudi 22 juillet 2010 à 17:53, par figaro
25. Le jeudi 22 juillet 2010 à 23:45, par macgyvre
26. Le vendredi 23 juillet 2010 à 10:43, par figaro
Ajouter un commentaire