Vous êtes sur la page 1sur 14


Samba: Concepts et fonctionnement

Nous procdons, dans cette section, ltude du paquet nomm SAMBA. Nous nous attarderons entre autre sur les point suivants: Comment installer Samba ? Comment confi urer Samba ? !tiliser "inu# comme serveur de fic$ier pour les s%st&mes 'indo(s )#*+,,,*N-. .ccder au# fic$iers de 'indo(s)#*N-*+,,, partir de "inu#. Scurit de Samba.

/icrosoft et 0ntel ont initialement dvelopp un protocole nomm Server Message Block (SMB) pour permettre au# s%st&mes 'indo(s de parta er des ressources comme les disques, les imprimantes ou autres prip$riques. "inu# implante ce protocole r1ce lensemble de pro ramme que constitue le paquet Samba. 2n utilisant Samba, vous pouve3 transformer votre bo4te "inu# en client*serveur S/5. .utrement dit, vous pouve3 rendre disponible les disques et les imprimantes "inu# au# usa ers de 'indo(s )#, 'indo(s N-*+,,,, 6S*+ et inversement les serveurs S/5 tels 'indo(s)#*N-*+,,, peuvent rendre disponible les disques et imprimantes des usa ers "inu#. 0l est trop tard si vous pensie3 que /. 7ates et /. -orvalds ne se parle pas8

Installation de SAMBA
Si vous ave3 c$oisi dinstaller la compatibilit 96S*'indo(s lors de linstallation de :edora alors les paquets de Samba % sont d; installs. <ar contre, si vous ne lave3 pas install, il est tou;ours possible de le faire en utilisant la commande yum. <ar e#emple, pour installer le paquet Samba sur un s%st&me 0ntel #=>, nous pouvons e#cuter :

yum install samba*

Si vous nave3 pas le fic$ier ? smb.conf @ situ dans le rpertoire ? *etc*samba @ alors ;e vous conseille fortement de#cuter la commande prcdente.

Configuration de Samba: le fichier smb.conf

"orsque vous ave3 install le paquet Samba, un fic$ier nomm smb.conf a alement t install dans le rpertoire /etc/samba. Aoici un e#emple de ce que peut contenir le fic$ier smb.conf :

# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # ny line which starts with a ! (semi"colon) or a # (hash) # is a comment and is ignored. #n this example we will use a # # for commentry and a ! for parts of the config file that you # may wish to enable # # $%T&' (hene)er you modify this file you should run the command *testparm* # to chec+ that you ha)e not many any basic syntactic errors. # #,,,,,,,,,,,,,,,,,,,,,,, -lobal Settings ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, .global/ # wor+group , $T"0omain"$ame or (or+group"$ame wor+group , 1Y-2%34 # ser)er string is the e5ui)alent of the $T 0escription field ser)er string , Samba Ser)er # # # # # ! This option is important for security. #t allows you to restrict connections to machines which are on your local networ+. The following example restricts access to two 6 class networ+s and the *loopbac+* interface. 7or more examples of the syntax see the smb.conf man page hosts allow , 89:.8;<.8. 89:.8;<.:. 8:=.

# if you want to automatically load your printer list rather # than setting them up indi)idually then you>ll need this printcap name , ?etc?printcap load printers , yes # #t should not be necessary to spell out the print system type unless # yours is non"standard. 6urrently supported print systems include' # bsd@ sys)@ plp@ lprng@ aix@ hpux@ 5nx ! printing , bsd # 3ncomment this if you want a guest account@ you must add this to ?etc?passwd # otherwise the user *nobody* is used ! guest account , pcguest

# this tells Samba to use a separate log file for each machine # that connects log file , ?)ar?log?samba?log.Am # 4ut a capping on the siBe of the log files (in Cb). max log siBe , 5D # Security mode. 1ost people will want user le)el security. See # securityEle)el.txt for details. security , user # 3se password ser)er option only with security , ser)er ! password ser)er , F$T"Ser)er"$ameG # 4assword He)el allows matching of EnE characters of the password for # all combinations of upper and lower case. ! password le)el , < ! username le)el , < # You may wish to use password encryption. 4lease read # &$62Y4T#%$.txt@ (in95.txt and (in$T.txt in the Samba documentation. # 0o not enable this option unless you ha)e read those documents ! encrypt passwords , yes ! smb passwd file , ?etc?smbpasswd # The following are needed to allow password changing from (indows to # update the Hinux sytsem password also. # $%T&' 3se these with >encrypt passwords> and >smb passwd file> abo)e. # $%T&:' You do $%T need these to allow wor+stations to change only # the encrypted S1I passwords. They allow the 3nix password # to be +ept in sync with the S1I password. ! unix password sync , Yes ! passwd program , ?usr?bin?passwd Au ! passwd chat , J$ewJ3$#KJpasswordJ AnLn J2eTypeJnewJ3$#KJpasswordJ AnLn Jpasswd'JallJauthenticationJto+ensJupdatedJsuccessfullyJ # 3nix users can map to different S1I 3ser names ! username map , ?etc?smbusers # 3sing the following line enables you to customise your configuration # on a per machine basis. The Am gets replaced with the netbios name # of the machine that is connecting ! include , ?etc?smb.conf.Am # 1ost people will find that this option gi)es better performance. # See speed.txt and the manual pages for details soc+et options , T64E$%0&H Y S%E26MI37,<89: S%ES$0I37,<89: # 6onfigure Samba to use multiple interfaces # #f you ha)e multiple networ+ interfaces then you must list them # here. See the man page for details. ! interfaces , 89:.8;<.8:.:?:N 89:.8;<.8O.:?:N # 6onfigure remote browse list synchronisation here # re5uest announcement to@ or browse list sync from' # a specific host or from ? to a whole subnet (see below)

! remote browse sync , 89:.8;<.O.:5 89:.8;<.5.:55 # 6ause this host to announce itself to local subnets here ! remote announce , 89:.8;<.8.:55 89:.8;<.:.NN # Irowser 6ontrol %ptions' # set local master to no if you don>t want Samba to become a master # browser on your networ+. %therwise the normal election rules apply ! local master , no # %S He)el determines the precedence of this ser)er in master browser # elections. The default )alue should be reasonable ! os le)el , OO # 0omain 1aster specifies Samba to be the 0omain 1aster Irowser. This # allows Samba to collate browse lists between subnets. 0on>t use this # if you already ha)e a (indows $T domain controller doing this Pob ! domain master , yes # 4referred 1aster causes Samba to force a local browser election on startup # and gi)es it a slightly higher chance of winning the election ! preferred master , yes # 3se only if you ha)e an $T ser)er on your networ+ that has been # configured at install time to be a primary domain controller. ! domain controller , F$T"0omain"6ontroller"S1I$ameG # &nable this if you want Samba to be a domain logon ser)er for # (indows95 wor+stations. ! domain logons , yes # # # ! # ! if you enable domain logons then you may want a per"machine or per user logon script run a specific logon batch file per wor+station (machine) logon script , Am.bat run a specific logon batch file per username logon script , A3.bat

# (here to store ro)ing profiles (only for (in95 and (in$T) # AH substitutes for this ser)ers netbios name@ A3 is username # You must uncomment the .4rofiles/ share below ! logon path , LLAHL4rofilesLA3 # # # # # # # # # # # ! ll $etI#%S names must be resol)ed to #4 ddresses >$ame 2esol)e %rder> allows the named resolution mechanism to be specified the default order is *host lmhosts wins bcast*. *host* means use the unix system gethostbyname() function call that will use either ?etc?hosts %2 0$S or $#S depending on the settings of ?etc?host.config@ ?etc?nsswitch.conf and the ?etc?resol).conf file. *host* therefore is system configuration dependant. This parameter is most often of use to pre)ent 0$S loo+ups in order to resol)e $etI#%S names to #4 ddresses. 3se with care! The example below excludes use of name resolution for machines that are $%T on the local networ+ segment " %2 " are not deliberately to be +nown )ia lmhosts or )ia (#$S. name resol)e order , wins lmhosts bcast

# (indows #nternet $ame Ser)ing Support Section'

# (#$S Support " Tells the $1I0 component of Samba to enable it>s (#$S Ser)er ! wins support , yes # (#$S Ser)er " Tells the $1I0 components of Samba to be a (#$S 6lient # $ote' Samba can be either a (#$S Ser)er@ or a (#$S 6lient@ but $%T both ! wins ser)er , w.x.y.B # (#$S 4roxy " Tells Samba to answer name resolution 5ueries on # behalf of a non (#$S capable client@ for this to wor+ there must be # at least one (#$S Ser)er on the networ+. The default is $%. ! wins proxy , yes # 0$S 4roxy " tells Samba whether or not to try to resol)e $etI#%S names # )ia 0$S nsloo+ups. The built"in default for )ersions 8.9.8= is yes@ # this has been changed in )ersion 8.9.8< to no. dns proxy , no # # ! ! # ! # ! 6ase 4reser)ation can be handy " system default is EnoE $%T&' These can be set on a per share basis preser)e case , no short preser)e case , no 0efault case is normally upper case for all 0%S files default case , lower Ie )ery careful with case sensiti)ity " it can brea+ things! case sensiti)e , no

#,,,,,,,,,,,,,,,,,,,,,,,,,,,, Share 0efinitions ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, .homes/ comment , Qome 0irectories browseable , no writable , yes # 3n"comment the following and create the netlogon directory for 0omain Hogons ! .netlogon/ ! comment , $etwor+ Hogon Ser)ice ! path , ?home?netlogon ! guest o+ , yes ! writable , no ! share modes , no # 3n"comment the following to pro)ide a specific ro)ing profile share # the default is to use the user>s home directory !.4rofiles/ ! path , ?home?profiles ! browseable , no ! guest o+ , yes # $%T&' #f you ha)e a IS0"style print system there is no need to # specifically define each indi)idual printer .printers/ comment , ll 4rinters path , ?)ar?spool?samba browseable , no # Set public , yes to allow user >guest account> to print

guest o+ , no writable , no printable , yes # This one is useful for people to share files !.tmp/ ! comment , Temporary file space ! path , ?tmp ! read only , no ! public , yes # publicly accessible directory@ but read only@ except for people in # the *staff* group !.public/ ! comment , 4ublic Stuff ! path , ?home?samba ! public , yes ! writable , yes ! printable , no ! write list , Rstaff # %ther examples. # # pri)ate printer@ usable only by fred. Spool data will be placed in fred>s # home directory. $ote that fred must ha)e write access to the spool directory@ # where)er it is. !.fredsprn/ ! comment , 7red>s 4rinter ! )alid users , fred ! path , ?homes?fred ! printer , fredsEprinter ! public , no ! writable , no ! printable , yes # pri)ate directory@ usable only by fred. $ote that fred re5uires write # access to the directory. !.fredsdir/ ! comment , 7red>s Ser)ice ! path , ?usr?somewhere?pri)ate ! )alid users , fred ! public , no ! writable , yes ! printable , no # a ser)ice which has a different directory for each machine that connects # this allows you to tailor configurations to incoming machines. You could # also use the Au option to tailor it by user name. # The Am gets replaced with the machine name that is connecting. !.pchome/ ! comment , 46 0irectories ! path , ?usr?pc?Am ! public , no ! writable , yes # publicly accessible directory@ read?write to all users. $ote that all files


# created in the directory by users will be owned by the default user@ so # any user with access can delete any other user>s files. %b)iously this # directory must be writable by the default user. nother user could of course # be specified@ in which case all files would be owned by that user instead. !.public/ ! path , ?usr?somewhere?else?public ! public , yes ! only guest , yes ! writable , yes ! printable , no # The following two entries demonstrate how to share a directory so that two # users can place files there that will be owned by the specific users. #n this # setup@ the directory should be writable by both users and should ha)e the # stic+y bit set on it to pre)ent abuse. %b)iously this could be extended to # as many users as re5uired. !.myshare/ ! comment , 1ary>s and 7red>s stuff ! path , ?usr?somewhere?shared ! )alid users , mary fred ! public , no ! writable , yes ! printable , no ! create mas+ , D=;5

E premi&re vue, le fic$ier prcdent semble immense mais en fait ce nest que quelques sections qui sont importantes. Aoici les caractristiques essentielles: "es li nes dbutant par le caract&re di&3e FGH : Ce sont les commentaires et ne sont pas traits par Samba. "i nes commenIant par un pointJvir ule FKH Ce sont aussi des li nes traites comme des commentaires.

<ourquoi alors + caract&res pour reprsenter des commentaires ? Semble t-il parce que les dveloppeurs Samba voulait accomoder autant les usager Unix que Windows. On sait que les commentaires dans les fic iers ini sous Windows commencent tous par un ! .

"es li nes qui en lobe un mot entre + croc$ets MN: Ce sont les sections qui dfinissent les caractristiques de Samba. Aoici un e#emple tir du fic$ier smb.conf:
.homes/ comment , Qome 0irectories browseable , no writable , yes !.public/ ! comment , 4ublic Stuff ! path , ?home?samba ! public , yes ! writable , yes ! printable , no ! write list , Rstaff !ne section dfinissant les rpertoires ? maison @ des usa ers.

!ne section dfinissant un rpertoire ? public @ accessible par tous.

"es li nes du t%pe nom O valeur permettre de confi urer des param&tres pour Samba. .insi: 'orP roup O /Q7R6!< 9onne au param&tre Wor"group la valeur #$%&OU'. 2n rsum, la s%nta#e dune li ne est la suivante: <aram&tre Nom O la valeur
"es espaces blancs auc$e ou droite du si ne O sont i nors. -ous les autres espaces blancs sont si nificatifs..

"es espaces blancs devant le nom du param&tre sont nonJsi nificatifs.


*e fic ier smb.conf et ses param+tres

Si on enl&ve tous les commentaires du fic$ier smb.conf, on obtient essentiellement B sections principales. "a section ,global-, , omes- et la section ,printers-.

(.).) Section ,global"a section MglobalN sapplique toutes les autres sections. 2lle permet de dfinir la confi uration qui sappliquera toutes les autres sections. "a confi uration par dfaut est la suivante:

,globalwor"group . #$%&OU' server string . Samba Server printcap name . /etc/printcap load printers . yes log file . /var/log/samba/log./m ma" log si0e . 12 security . user soc"et options . 34'56O78*9$ dns proxy . no

Revo%ons ensemble les caractristiques des param&tres utiliss dans la section M lobalN.

,globalwor"group . #$%&OU' server string . Samba Server printcap name . /etc/printcap

Ce param&tre indique le roupe auquel appartiendra le serveur.

Cest la commande qui permet daffic$er un commentaire cTt du nom du serveur dans le voisina e rseau. <ermet de pointer sur le fic$ier qui contient la liste des imprimantes qui pourront Utre parta e plus tard.

load printers . yes

log file . /var/log/samba/log./m

ma" log si0e . 12 Aoir la note sur la pa e suivante. security . user

soc"et options . 34'56O78*9$

dns proxy . no


*:option S84U&;3$
Cette option affecte la rponse des clients envers Samba et constitue lune des plus importantes options du serveur samba qui se trouve dans le fic$ier smb.conf. Cette option permet de confi urer la scurit en rponse au protocole utilis. "es clients dcide, selon la valeur de cette option, comment le transfert du mot de passe et du nom dusa er sera effectu au serveur. <ar dfaut, la scurit est en mode user. Cette option est la plus commune pour parler une mac$ine 'indo(s )=*W<*Aista. 9ans les versions "es alternatives sont: securit% O s$are, securit% O server ou securit% Odomain. prcdentes FV +.,H, la seule et unique option de scurit est le mode Si vos <C utilise des comptes qui sont les mUmes que sur les mac$ines !ni#, s are. alors loption User est tout indique. Si vous utilise3 des comptes qui ne#istent pas sur votre mac$ine !ni#, alors utilise3 la scurit en mode s are. 6n vous su &re aussi dutiliser la scurit en mode s are si vous voule3 crer des parta es sans mot de passe F7uestH. Ce cas est souvent rencontr lorsquil sa it de parta er des imprimantes.

S84U&;3$ . S<9&8
"orsque les clients se connectent une ressource en mode s are, le mot de passe ainsi que le compte FusernameH ne sont pas ncessaire. "es clients envoient plutTt les informations daut$entification Fle mot de passeH pour c$aque ressource parta e au moment oX ils essaient de se connecter cette ressource. Comme les clients nont pas besoin denvo%er le nom dusa er FusernameH en mode s are, le serveur samba utilise plusieurs tec$niques pour dterminer le compte adquat qui sera utilis sous la mac$ine !ni#. Si loption guest only nest pas utilise, la liste des usa ers est alors vrifie par rapport au mot de passe entr. "e premier compte sur la mac$ine !ni# pour lequel le mot de passe correspond cet usa er sera utilis. Si le compte uest onl% est utilise ou quil n% a pas de nom dusa er qui peut Utre vrifi alors si la ressource parta est disponible pour le compte uest alors le compte uest sera utilis sinon lacc&s sera refus.

S84U&;3$ . US8&
Cest loption par dfaut dans les versions du serveur +.+ et suivantes. .vec une scurit de t%pe User, le client doit se branc er en envo%ant un nom dusa er et un mot de passe pour accder la ressource. "es mots de passe encr%pts peuvent alement Utre utiliss Fvoir loption 2ncr%pted pass(ordsH.

S84U&;3$ . S8&=8&
9ans ce mode, le serveur Samba tentera de valider le mot de passe et le nom dusa er en passant cette information un autre serveur Fcomme un serveur +,,,J+,,=H qui soccupera de cette validation. Si la validation c$oue, le mode user sera utilis. Note3 cependant que si les mots de passe sont encr%pts alors Samba ne pourra pas utiliser un autre mode de scurit automatiquement. 9u point de vue du client, le


mode Server et le mode user est le mUme. Ces modes affectent uniquement la faIon dont le serveur saut$entifie. 0ls ne c$an ent en rien ce que le client voit.

S84U&;3$ . 7O#9;6
Ce mode fonctionnera uniquement si la commande smbpass(d Fvoir man smbpass(dH a t utilise pour a;outer la mac$ine !ni# dans la liste des mac$ines appartenant au domaine dune mac$ine 'indo(s server. Ce mode sattend aussi ce que loption encrypted passwords soit utilise. 9ans ce mode, le serveur Samba essaie de valider la pair username*pass(ord en passant cet information un serveur 'indo(s Server de domaine primaire F<rimar% 9omain ControllerH ou un serveur 'indo(s Server bacPup F5acPup domain controllerH de la mUme faIon quun serveur 'indo(s pourrait le faire. Notez que le compte usa er doit e#ister sur la mac$ine !ni# de mUme que sur la mac$ine Windows pour permettre Samba dobtenir un compte dusager valid sur la machine Unix


(.).( *a section , omesSi cette section est a;oute dans le fic$ier smb.conf, les clients pourront alors avoir acc&s leur rpertoire maison sur la mac$ine !ni#. Cette opration est alors ralise en temps rel par le serveur Samba. "a section M$omesN peut dfinir les mUmes param&tres que tout autre service. Aoici un e#emple dune section M$omesN: .homes/ comment , Qome 0irectories writeable , yes "option (riteable est le contraire de loption read onl%. (riteable O no "es usa ers de ce service ne pourront pas crer ou modifier les fic$iers prsents dans ce rpertoire.

!n point important: Si loption uest access est spcifie dans la section M$omesN, tous les rpertoires maison seront visibles pour tous les clients S96S mot de passe. Cette option, de par sa nature non scuritaire, est dconseille mais si vous % tene3 alors a;oute3 aussi loption Read onl%

(.).> *a section ,printersCette section fonctionne comme la section M$omesN mais pour les imprimantes. Note3 que le service MprintersN doit Utre printable. .utrement dit, loption printable doit Utre %es. Si ce nest pas le cas, le fic$ier smb.conf ne pourra pas se c$ar er. Cest un cas derreur courant. !ne entre MprintersN t%pique: [printers] path = /usr/spool/public guest ok = yes printable = yes


(.).? *es autres sections

"es autres sections dfinissent les ressources qui seront parta es. :orme nrale:
MNomYdeYlaYsectionN "es options propres cette section iciZ M.utreYnomYdeYsectionN "es options propres cette section iciZ

<ar e#emple: [e veu# parta er le rpertoire *etc au# usa ers uest mais en ne leur permettant pas de crer ou de modifier des fic$iers dans ce rpertoire. MetcN commentORepertoire etc uest oP O %es (riteable O no

[aurais pu utiliser loption read only . yes aussi.