Vous êtes sur la page 1sur 5

Ce document crit par Michel Eudes est sous licence CC

I- Faire fonctionner Samba


Nous allons voir les conditions pour faire fonctionner Samba afin de voir depuis Ubuntu (Linux) les PCs du rseau sous Windows XP et/ou Linux et vice versa : Ce post est le premier d'une srie qui vous amnera l'obtention d'un rseau familial ou de petite entreprise pouvant recevoir jusqu' une vingtaine de PCs. Il est important de suivre pas pas les diffrentes tapes en vrifiant chacune des tapes contenues dans un des trois posts le fonctionnement avant d'aborder l'tape suivante sous peine de "galre" car il y a beaucoup de paramtres respecter. Cette mthode a t tablie suite aux nombreux dpannages que j'ai effectus sur le forum Ubuntu-fr et qui m'ont permis de voir o les gens butaient et de dfinir une procdure permettant d'viter les cueils. Cette mthode vous permettra de les contourner au fur et mesure et d'avoir rapidement un rseau oprationnel en effaant les "barrires" primordiales, puis de l'optimiser pour avoir une utilisation souple et fluide. Il est ncessaire que vous possdiez un minimum de connaissances en informatique et utilisation des PCs pour utiliser la mthode avec succs. 1 - sur les PC Windows crer des dossiers partags et dfinir les droits sur ces dossiers (lecture seule ou lecture/criture) et renseigner dans le fichier sytem32/drivers/etc/hosts chaque ordinateur du rseau 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 caractres et ceux des dossiers partags plus de 12 caractres. 2 - Installer Samba sur le PC Ubuntu. Le fichier par dfaut smb.conf est oprationnel tel que fourni par Ubuntu. Le nom du workgroup sera modifer pour l'harmonisation avec les PC sous Windows c'est primordial, galement dcommenter la ligne security = users en enlevant le ; en dbut de ligne pour augmenter la scurit. Renseigner galement dans le fichier /etc/hosts chaque ordinateur du rseau 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 caractres. Puis paramtrer le firewall l'aide de Firestarter, voir le PS en fin de post pour explications 3 - Crer des utilisateurs samba sur le PC Ubuntu avec smbpasswd :

Les utilisateurs doivent tre dj utilisateurs du PC Ubuntu, les crer au besoin. sudo smbpasswd -a nomutilisateur ou sudo pdbedit -a nomutilisateur donner le pass sudo puis ensuite le pass choisi pour l'utilisateur. Il est prfrable de donner des pass diffrents chaque utilisateur.

Nota:la deuxime commande s'utilise si vous avez l'option passdb backend = tdbsam dans votre smb.conf la place de la dfinition 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). 4 - Harmoniser le nom du workgroup

sur les PC windows dans Poste de travail/Proprits/Nom de l'ordinateur/Modifier sur le PC Ubuntu dans le fichier /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf Crer ou choisir un dossier et le partager (autoriser ou non l'criture selon les besoins): Systme/Administration/Dossiers Partags donner les permissions 755 ce dossier (ou 775 si vous voulez 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.

5 Crer un dossier partager sur le PC Ubuntu :


Attention si le dossier partag est sur une partition en fat32 ou ntfs (partition Windows) 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 dfaut 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 6 Les PC tant allums et boots sur leurs OS respectifs, depuis le PC Ubuntu utiliser se Connecter un serveur pour se connecter au(x) PC(s) Windows : vous aurez alors une icne de connexion sur le bureau, et depuis le PC Windows dans Dmarrer/ Favoris Rseau/Ajouter un favori et vous aurez un nouveau lien dans la fentre Favoris rseau. Vous pouvez galement sous Windows utiliser la fonction "Connecter un lecteur rseau" pour avoir un lecteur rseau mapp dans le poste de travail sous une lettre de disque. 7 - Vous pouvez aussi depuis Windows utiliser la Fonction Voir les Ordinateurs du rseau dans la fentre Favoris Rseau, 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 rseau est parcouru), et il en est de mme avec la fonction Serveurs Rseaux d'Ubuntu. Ces fonctions sont assez alatoires et peuvent tre empches par le firewall si mal configur seul le systme du paragraphe 6 est immdiat et stable: les liaisons sont quasiment instantanes. Nous verrons plus tard comment rgler ce problme. Voir mon post sur l'Optimisation du rseau et celui sur la Rsolution des noms d'hotes. 8 On peut aussi avoir un montage automatique des dossiers partags des PC Windows au boot d'Ubuntu l'aide du fstab et l'utilisation de cifs. Code pour le fstab pour monter un partage windows , il faut avoir crer /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 spcifique 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 indiqus en clair. Il y a une fonction semblable sur Windows pour monter les dossiers partags des PC Ubuntu au boot de Windows avec net en ligne de commande ou Connecter un lecteur rseau en mode graphique. 9 - On peux encore augmenter la scurit en ajoutant dans la section global du fichier /etc/samba/smb.conf une ligne : hosts allow = Ip1 Ip2 Ip3 Ip4 Ip5 Avec les diffrentes Ip des seuls PC du rseau autoriss partager ou l'adresse de l'ensemble du rseau (par exemple 192.168.1. ou 192.168.0.) . PS : Paramtrage des firewalls : ne pas oubliez d'ouvrir les ports pour Samba aux PC autoriss du rseau sur les diffrents firewalls . Les ports ouvrir sont :

en udp 137 et 138 en tcp 139 et 445

Sous Ubuntu l'interface graphique Firestarter est prprogramme pour ces ports, il suffit de choisir Samba dans la liste. Sous Windows cela dpend du firewall install, voir sa notice d'utilisation. ZoneAlarm ne cre pas de problme 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 diffrents PC du rseau. Important : ne pas oublier d'autoriser le broadcast sur le rseau externe et le rseau interne dans les Options Avances de Firestarter : les deux cases doivent tre dcoches. PS: Pour les problmes avec Vista voir le titre III

II- Affecter un utilisateur ou un groupe d'utilisateurs avec Samba


Comment affecter un utilisateur, plusieurs utilisateurs ou un groupe d'utilisateurs un dossier partag avec Samba pour personnaliser le rseau et les accs aux dossiers suivant les utilisateurs autrement dit grer les accs aux diffrents dossiers suivant l'utilisateur. On cre les diffrents utilisateurs Samba et les ventuels groupe de partage o l'on veut runir certains utilisateurs comme indiqu dans le tuto prcdent, On cre les diffrents dossiers partager et on leur donne les droits 755: chmod -R 755 /path/nomdossier Pour les dossiers partags en groupe de partage on leur affecte comme groupe celui du groupe de partage et les droits 775. Et on mets les utilisateurs concerns dans le groupe de partage. Ce mode de fonctionnement du partage et des permissions peut tre amlior en utilisant la possibilit qu'offre Linux d'utiliser le bit "s" sur le groupe avec le setgid. Ensuite on dite le fichier /etc/samba/smb.conf et l'on rajoute la fin les sections correspondants aux diffrents dossiers partager et on donne les droits lecture et criture: Pour un dossier rserv un seul utilisateur [partage1nom] path = /path/partage1nom available = yes browseable = yes public = no writable = yes valid users = nom create mask = 0640 directory mask = 0750 comment = Rserv nom Pour un dossier rserv plusieurs utilisateurs [partage2nom] path = /path/partage2nom available = yes browseable = yes public = no writable = yes valid users = nom1 nom2 nom3 create mask = 0640 directory mask = 0750 comment = Rserv nom1, nom2, nom3

Pour un dossier rserv un groupe d'utilisateurs [partage3nom] path = /path/partage3nom available = yes browseable = yes public = no writable = yes valid users = +groupepartage create mask = 0640 directory mask = 0750 comment = Dossier du groupe groupepartage Pour voir les homes des diffrents utilisateurs (pour crire modifier l'option writable en yes et fixer les mask) [homes] comment = Home de %U browseable = no valid users = %S writable = no Pour avoir un dossier partag "pub" accs public il faut rajouter dans la section [global] les deux lignes: map to guest = bad user guest account = nobody et ensuite crer un dossier "pub" avec un chmod de 755 et avec les options du smb.conf ci-dessous: [pub] path = /path/pub public = yes browseable = yes guest ok =yes read only = yes Il y a un problme avec un serveur public quand la connexion est faite par un invit (guest) : Tous les fichiers crs par ce guest lui appartiennent et ne peuvent tre modifis que par lui. Le nom de guest est dfini par l'option guest account = xxxxx

Le guest account tant par dfaut nobody les fichiers appartiendront donc nobody. Seul root pourra changer le propritaire. Faire un serveur public n'est pas conseill de toute faon...

III Problmes avec Vista


Il y a des problmes avec Vista car Microsoft a modifi le protocole smb dans Vista. Pour que Vista puisse se connecter il faut rajouter dans le smb.conf dans la section [global] la ligne: map acl inherit = yes Les prochaines versions de Samba partir de la version 3.0.25 intgreront cela par dfaut. Les versions actuelles ont map acl inherit = no par dfaut ce qui cre des problmes, il faut donc activer ce paramtre pour que Vista fonctionne avec Samba. Il est possible que vous ayez d'autres problmes avec le nouvel OS de Microsoft Vista. Actuellement il existe une version de Samba la 3,0,25rc1 qui a intgr les problmes Vista, mais ce n'est qu'une release candidate et peut donc contenir des bugs. Cette version n'est pas intgre Ubuntu Feisty Fawn 7.04 qui embarque la version 3.0.24.

IV Optimisation rseau Ubuntu


Dans un rseau constitu essentiellement de PCs sous Ubuntu et recevant occasionnellement un ou plusieurs PCs sous Windows XP on doit d'optimiser le fonctionnement. On va optimiser de faon ce que le Raccourci/Serveurs Rseaux (Dapper et Edgy) ou Raccourcis/Rseaux ( partir de Feisty) suivant les versions d'ubuntu, affiche les PCs du rseau dans Rseaux Windows/GroupedeTravail. Nota: partir de Feisty, Raccourcis/Rseaux a la particularit d'afficher tous les Pcs dans la premire fentre en plus de la fentre Rseaux Windows/GroupedeTravail 1 - On choisit un des PC Ubuntu comme PC principal et ventuellement serveur rseau, et on ajoute dans son smb.conf dans la section [global] de faon que ce PC soit le local master et batte tous les autres OS avec un os level maximal de 255, les lignes: local master = yes preferred master = yes os level = 254 On rajoute dans les hosts allow la suite des Ip du rseau autorises l'Ip 127.0.1.1 ou plus simplement 127.0. de faon qu'il puisse s'afficher lui-mme. 2 - Sur les autres PCs Ubuntu on dfinit dans la mme section[global]: local master = no os level = x avec x compris entre 33 et 253 et diffrent pour chaque PC de faon que ces PCs battent Windows XP. 3 - D'autre part dans les sections des dossiers partags sur chaque PC, on vrifie que la ligne: browseable= yes existe, sinon on l'ajoute. 4 - Si vous avez plus d'une dizaine de PCs sur votre rseau, cela peut tre une bonne ide de rendre votre PC principal serveur WINs, cela diminuera le trafic broadcast et allgera la charge CPU des diffrents PCs connects du rseau. Pour cela on rajoute dans la section [global] du smb.conf du PC principal la ligne : wins support = yes et dans la section [global] du smb.conf des autres PCs sous Ubuntu la ligne : wins serveur = Ip du serveur principal et sur les PCs Windows on inscrit cette mme adresse pour la connexion rseau de ces PCs dans les options avances du protocole TCP/IP onglet WINs Rebooter tous les PCs aprs configuration. Nota: Le PC principal doit tre boot en premier et rester boot en permanence. Important : ne pas oublier d'autoriser le broadcast sur le rseau externe et le rseau interne dans les Options Avances de Firestarter : les deux cases doivent tre dcoches. Voil si vous avez suivi mes diffrents posts pas pas vous disposez d'un rseau Samba scuris accs contrl avec des PCs Ubuntu et/ou des PCs Windows XP Edition Familiale qui fonctionnera et sera utilisable comme rseau familial, rseau de petite entreprise ou d'coles pouvant comprendre jusqu' une vingtaine de PCs.Par contre si vous voulez avoir un rseau plus important jusqu' 200/300 clients ou plus avec gestion de domaine, c'est un autre problme et je vous conseille de laisser cela aux professionnels ou de vous munir d'un bon livre sur les rseaux Windows et sur Samba. Ce document crit par Michel Eudes est sous licence CC