La configuration de Samba est une op�ration assez simple. Toutes les modifications apport�es � Samba ont lieu dans le fichier de configuration /etc/samba/smb.conf. Bien que le fichier par d�faut smb.conf soit bien document�, il n'aborde pas des sujets complexes tels que LDAP, Active Directory et les nombreuses impl�mentations de contr�leurs de domaines.
Les sections suivantes d�crivent les diff�rentes mani�res selon lesquelles un serveur Samba peut �tre configur�. Gardez bien � l'esprit vos besoins et les modifications devant �tre apport�es au fichier smb.conf pour effectuer une configuration r�ussie.
14.3.1. Serveur autonome
Un serveur autonome peut �tre le serveur d'un groupe de travail ou un membre de l'environnement d'un groupe de travail. Un serveur autonome n'est pas un contr�leur de domaine et ne joue aucun r�le dans un domaine. Les exemples suivants illustrent plusieurs configurations de s�curit� anonyme au niveau du partage et un exemple de configuration de s�curit� au niveau de l'utilisateur. Pour obtenir de plus amples informations sur les modes de s�curit� au niveau du partage ou au niveau de l'utilisateur, reportez-vous � la Section 14.4.
14.3.1.1. Anonyme en lecture-seule
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour permettre l'impl�mentation d'un partage de fichiers anonyme en lecture-seule. Le param�tre security = share rend un partage anonyme. Notez bien que les niveaux de s�curit� pour un seul serveur Samba ne peuvent pas �tre m�lang�. La directive de s�curit� (security) est un param�tre global pour Samba qui se trouve dans la section de configuration [global] du fichier smb.conf.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
security = share
[data]
comment = Documentation Samba Server
path = /export
read only = Yes
guest only = Yes
14.3.1.2. Anonyme en lecture/�criture
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour permettre l'impl�mentation d'un partage de fichiers anonyme en lecture/�criture. Pour permettre le partage anonyme de fichiers en lecture/�criture, donnez � la directive read only (lecture-seule) la valeur no. Les directives force user et force group sont �galement ajout�es pour appliquer les r�gles de propri�t� � tout fichier ajout� et sp�cifi� comme appartenant au partage.
Remarque
Bien qu'il soit possible d'avoir un serveur anonyme en lecture/�criture, un tel choix n'est pas recommand�. Tous fichiers plac�s dans l'espace de partage, ind�pendemment de l'utilisateur, sont assign�s � la combinaison utilisateur/groupe telle qu'elle est sp�cifi�e dans le fichier smb.conf par un utilisateur (force user) et un groupe (force group) g�n�riques.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
security = share
[data]
comment = Data
path = /export
force user = docsbot
force group = users
read only = No
guest ok = Yes
14.3.1.3. Serveur d'impression anonyme
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour impl�menter un serveur d'impression anonyme. Comme nous l'avons montr�, le fait de donner � browsable la valeur no, n'inclut pas l'imprimante dans la liste Voisinnage r�seau de Windows. Bien que n'apparaissant pas lors de la navigation, la configuration explicite de l'imprimante est possible. Gr�ce � la connexion � DOCS_SRV en utilisant NetBIOS, le client peut avoir acc�s � l'imprimante s'il fait �galement partie du groupe de travail DOCS. On suppose �galement que le client a install� le pilote d'impression local appropri� puisque la directive use client driver a la valeur Yes. Dans ce cas, le serveur Samba n'a aucune responsabilit� quant au partage de pilotes d'impression avec le client.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
security = share
printcap name = cups
disable spools= Yes
show add printer wizard = No
printing = cups
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = Yes
14.3.1.4. Fichier en lecture/�criture et serveur d'impression s�curis�s
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour impl�menter un serveur d'impression s�curis� en lecture/�criture. Le fait de donner � la directive security la valeur user force Samba � authentifier les connexions client. Remarquez bien que le partage [homes] n'a pas de directive force user ou force group, contrairement au partage [public]. Le partage [homes] utilise les informations relatives � l'utilisateur authentifi� pour la cr�ation de tout fichier, contrairement aux directives force user et force group dans [public].
[global]
workgroup = DOCS
netbios name = DOCS_SRV
security = user
printcap name = cups
disable spools = Yes
show add printer wizard = No
printing = cups
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
[public]
comment = Data
path = /export
force user = docsbot
force group = users
guest ok = Yes
[printers]
comment = All Printers
path = /var/spool/samba
printer admin = john, ed, @admins
create mask = 0600
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = Yes
14.3.2. Serveur membre d'un domaine
Un membre d'un domaine, bien qu'�tant semblable � un serveur autonome, est connect� � un contr�leur de domaine (soit Windows, soit Samba) et soumis aux r�gles de s�curit� de ce domaine. Le serveur du d�partement d'une entreprise ex�cutant Samba et ayant un compte machine sur contr�leur de domaine principal (ou PDC, Primary Domain Controller) est un exemple de serveur membre d'un domaine. Tous les clients du d�partement continuent � s'authentifier aupr�s du PDC et les profiles du bureau ainsi que les fichiers des politiques r�seau sont inclus. La diff�rence est que le serveur du d�partement a la capacit� de contr�ler les partages au niveau de l'impression et du r�seau.
14.3.2.1. Serveur membre du domaine Active Directory
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour impl�menter un serveur membre du domaine Active Directory. Dans notre exemple, Samba non seulement authentifie les utilisateurs pour les services ex�cut�s localement, mais il est �galement un client de Active Directory. Assurez-vous que le param�tre de votre zone (realm) kerberos appara�t bien tout en lettres majuscules (par exemple, realm = EXAMPLE.COM). �tant donn� que Windows 2000/2003 a besoin de Kerberos pour l'authentification de Active Directory, la directive realm est n�cessaire. Si Active Directory et Kerberos sont ex�cut�s sur des serveurs diff�rents, il se peut que la directive password server soit n�cessaire pour permettre la distinction entre les deux.
[global]
realm = EXAMPLE.COM
security = ADS
encrypt passwords = yes
# Optional. Use only if Samba cannot determine the Kerberos server automatically.
password server = kerberos.example.com
Pour qu'un serveur membre fasse partie d'un domaine Active Directory, il est n�cessaire d'effectuer les �tapes suivantes�:
Configuration du fichier smb.conf sur le serveur membre
Configuration de Kerberos, y compris le fichier /etc/krb5.conf, sur le serveur membre
Cr�ation du compte machine sur le serveur du domaine Active Directory
Association du serveur membre au domaine Active Directory
Pour cr�er le compte machine et faire partie de Active Directory de Windows 2000/2003, Kerberos doit tout d'abord �tre initialis� pour le serveur membre souhaitant faire partie du domaine Active Directory. Pour cr�er un ticket administratif pour Kerberos, tapez la commande suivante en �tant connect� en tant que super-utilisateur (ou root) sur le serveur membre�:
La commande kinit est un script d'initialisation de Kerberos qui r�f�rence le compte administrateur de Active Directory et la zone Kerberos (realm). �tant donn� que Active Directory a besoin de tickets Kerberos, kinit obtient et met en cache un ticket d'�mission de tickets (ou TGT, ticket-granting ticket) Kerberos pour l'authentification client/serveur. Pour obtenir de plus amples informations sur Kerberos, le fichier /etc/krb5.conf et la commande kinit, reportez-vous au Chapitre 19.
Pour faire partie d'un serveur Active Directory (windows1.example.com), tapez la commande suivante en �tant connect� en tant que super-utilisateur (ou root) sur le serveur membre�:
root# net ads join -S windows1.example.com -U administrator%password
�tant donn� que la machine windows1 a �t� trouv�e automatiquement dans la zone Kerberos appropri�e (la commande kinit a abouti), la commande net �tablit la connexion avec le serveur Active Directory utilisant le compte administrateur et le mot de passe requis. Ainsi, le compte machine est cr�� sur le serveur Active Directory et les permissions sont accord�es pour que le membre du domaine Samba puisse faire partie du domaine.
Remarque
�tant donn� que security = ads est utilis�, et non pas security = user, il n'est pas n�cessaire d'utiliser un mot de passe secondaire (backend) tel que smbpasswd. Des clients plus anciens ne prenant pas en charge security = ads sont authentifi�s comme si security = domain avait �t� configur�. Ce changement ne touche pas les fonctionnalit�s et autorise des utilisateurs locaux qui n�taient pas inclus auparavant dans le domaine.
14.3.2.2. Serveur membre d'un domaine bas� sur Windows NT4
Le fichier smb.conf suivant montre un extrait du fichier de configuration n�cessaire pour impl�menter un serveur membre d'un domaine bas� sur Windows NT4. Devenir un serveur membre d'un domaine bas� sur Windows NT4 revient en fait comme � se connecter � un Active Directory. La diff�rence essentielle r�side dans le fait que les domaines bas�s sur NT4 n'utilisent pas Kerberos dans leur m�thode d'authentification, ce qui simplifie le fichier smb.conf. Dans ce cas, le serveur membre de Samba joue le r�le d'une machine interm�diare vers le serveur de domaine bas� sur NT4.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
security = domain
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
[public]
comment = Data
path = /export
force user = docsbot
force group = users
guest ok = Yes
Le fait d'avoir Samba comme un serveur membre d'un domaine peut �tre utile dans de nombreuses situations. Dans certains cas le serveur Samba peut �tre utilis� � d'autres fins que le partage de fichiers et d'impression. Il peut s'av�rer utile de transformer Samba en serveur membre d'un domaine, dans des situations o� des applications exclusivement Linux doivent �tre utilis�es dans l'environnement du domaine. Il est utile pour les administrateurs d'effectuer un suivi de toutes les machines faisant partie du domaine, m�me s'il n'est pas bas� sur Windows. Dans le cas o� le mat�riel du serveur bas� sur Windows deviendrait obsol�te, il est relativement facile de modifier le fichier smb.conf pour convertir le serveur en PDC bas� sur Samba. Si les serveurs bas�s sur Windows NT sont mis � niveau vers Windows 2000/2003, le fichier smb.conf est facilement modifiable pour inclure les changements d'infrastructure.dans Active Directory, si n�cessaire.
Important
Apr�s avoir configur� le fichier smb.conf, int�grez le domaine avant de d�marrer Samba en tapant la commande suivante en �tant connect� en tant que super-utilisateur�:
root# net rpc join -U administrator%password
Notez bien que l'option -S, qui pr�cise le nom d'h�te du serveur de domaine, ne doit pas obligatoirement �tre sp�cifi�e dans la commande net rpc join. Samba utilise le nom d'h�te sp�cifi� par la directive workgroup dans le fichier smb.conf plut�t que de demander � ce qu'il soit sp�cifi� explicitement.
14.3.3. Contr�leur de domaine
Un contr�leur de domaine dans Windows NT joue essentiellement le m�me r�le qu'un service d'information r�seau (ou NIS, Network Information Service) dans un environnement Linux. Les contr�leurs de domaine et les serveurs NIS h�bergent tous les deux des bases de donn�es d'informations utilisateurs/groupes sur les h�tes, ainsi que sur les services apparent�s. Les contr�leurs de domaine sont principalement utilis�s pour la s�curit�, y compris l'authentification des utilisateurs acc�dant aux ressources du domaine. Le service qui maintient l'int�grit� de la base de donn�es relative aux utilisateurs/groupes s'appelle gestionnaire des comptes de s�curit� (ou SAM, Security Account Manager). La base de donn�es de SAM est stock�e de mani�re diff�rente dans des syst�mes Windows et Linux bas�s sur Samba, si bien que la r�plication de SAM ne peut se faire et que les plates-formes ne peuvent pas �tre m�lang�es dans un environnement PDC/BDC.
Dans un environnement Samba, il ne peut y avoir qu'un seul PDC et aucun ou plusieurs BDC.
Important
Samba ne peut pas exister dans l'environnement d'un contr�leur de domaine m�lang� Samba/Windows (Samba ne peut pas �tre un BDC d'un PDC Windows ou vice versa). Autrement, les PDC et BDC de Samba peuvent coexister.
14.3.3.1. Contr�leur de domaine principal (PDC, Primary Domain Controller) utilisant tdbsam
L'impl�mentation la plus simple et la plus courante d'un PDC Samba utilise le backend de la base de donn�es de mot de passe nomm� tdbsam. Con�u dans l'intention de remplacer le backend smbpasswd d�sormais un peu pass�, tdbsam est dot� de nombreuses am�liorations qui sont examin�es en revue de mani�re d�taill�e dans la Section 14.5. La directive passdb backend contr�le le backend sp�cifique devant �tre utilis� pour le PDC.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
passdb backend = tdbsam
security = user
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usermod -G %g %u
add machine script = \
/usr/sbin/useradd -s /bin/false -d /dev/null \
-g machines %u
# The following specifies the default logon script
# Per user logon scripts can be specified in the user
# account using pdbedit
logon script = logon.bat
# This sets the default profile path.
# Set per user paths with pdbedit
logon path = \\%L\Profiles\%U
logon drive = H:
logon home = \\%L\%U
domain logons = Yes
os level = 35
preferred master = Yes
domain master = Yes
idmap uid = 15000-20000
idmap gid = 15000-20000
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
writable = Yes
[public]
comment = Data
path = /export
force user = docsbot
force group = users
guest ok = Yes
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon/scripts
admin users = ed, john, sam
guest ok = No
browseable = No
writable = No
# For profiles to work, create a user directory under the
# path shown. mkdir -p /var/lib/samba/profiles/john
[Profiles]
comment = Roaming Profile Share
path = /var/lib/samba/profiles
read only = No
browseable = No
guest ok = Yes
profile acls = Yes
# Other resource shares
...
...
Remarque
Si vous avez besoin de plus d'un contr�leur de domaine ou avez plus de 250 utilisateurs, n'utilisez pas un backend d'authentification tdbsam. Dans ces cas particuliers, il est plut�t recommand� d'utiliser LDAP.
14.3.3.2. Contr�leur de domaine principal (PDC, Primary Domain Controller) utilisant LDAP
L'impl�mentation la plus performante et la plus flexible d'un PDC Samba se manifeste par sa capacit� � avoir un backend pour les mots de passe avec LDAP, qui est est tr�s modulable. Les serveurs de base de donn�s LDAP peuvent �tre utilis�s � des fins de redondance et de fail-over en raison de leur r�plication sur le BDC Samba. Les groupes de PDC et BDC de LDAP dot�s d'une capacit� de r�partition de charge (load balancing) sont parfaits pour un environnement d'entreprise. D'autre part, les configurations LDAP sont par essence complexes � configurer et � maintenir. Si SSL doit �tre incorpor� � LDAP, le degr� de complexit� est aussit�t multipli�. Malgr� tout, avec une planification pr�cise et prudente, LDAP repr�sente une solution id�ale pour des environnements d'entreprise.
Pr�tez attention � la directive passdb backend ainsi qu'aux sp�cifications de suffixe avec LDAP. Bien que la configuration de Samba pour LDAP soit relativement simple, l'installation de OpenLDAP elle n'est pas si simple. LDAP devrait �tre install� et configur� avant que toute configuration de Samba n'ait lieu. Remarquez �galement que Samba et LDAP ne doivent pas forc�ment �tre sur le m�me serveur pour pouvoir fonctionner. Il est d'ailleurs fortement recommand� de les s�parer dans un environnement d'entreprise.
[global]
workgroup = DOCS
netbios name = DOCS_SRV
passdb backend = ldapsam:ldap://ldap.example.com
username map = /etc/samba/smbusers
security = user
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usermod -G %g %u
add machine script = \
/usr/sbin/useradd -s /bin/false -d /dev/null \
-g machines %u
# The following specifies the default logon script
# Per user logon scripts can be specified in the
# user account using pdbedit
logon script = scripts\logon.bat
# This sets the default profile path.
# Set per user paths with pdbedit
logon path = \\%L\Profiles\%U
logon drive = H:
logon home = \\%L\%U
domain logons = Yes
os level = 35
preferred master = Yes
domain master = Yes
ldap suffix = dc=example,dc=com
ldap machine suffix = ou=People
ldap user suffix = ou=People
ldap group suffix = ou=Group
ldap idmap suffix = ou=People
ldap admin dn = cn=Manager
ldap ssl = no
ldap passwd sync = yes
idmap uid = 15000-20000
idmap gid = 15000-20000
...
# Other resource shares
...
...
Remarque
L'impl�mentation de LDAP dans ce fichier smb.conf suppose qu'un serveur LDAP op�rationnel a �t� install� avec succ�s sur ldap.example.com.
Un BDC est une partie int�grale de toute solution Samba/LDAP en entreprise. Les fichiers smb.conf existant entre le PDC et le BDC sont quasiment identiques, � l'exception de la directive domain master. Assurez-vous que la valeur du PDC est bien Yes et que celle du BDC est No. Si vous avez plusieurs BDC pour un PDC, la directive os level est utile pour d�finir la priorit� d'�lection du BDC. Plus la valeur est �lev�e, plus la priorit� du serveur est �lev�e pour les connexions clients.
Remarque
Un BDC peut soit utiliser la base de donn�es LDAP du PDC, soit avoir sa propre base de donn�es LDAP. Cette exemple utilise la base de donn�es LDAP du PDC comme on le voit dans la directive passdb backend.
[global] workgroup = DOCS
netbios name = DOCS_SRV2
passdb backend = ldapsam:ldap://ldap.example.com
username map = /etc/samba/smbusers
security = user
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usermod -G %g %u
add machine script = \
/usr/sbin/useradd -s /bin/false -d /dev/null \
-g machines %u
# The following specifies the default logon script
# Per user logon scripts can be specified in the
# user account using pdbedit
logon script = scripts\logon.bat
# This sets the default profile path.
# Set per user paths with pdbedit
logon path = \\%L\Profiles\%U
logon drive = H:
logon home = \\%L\%U
domain logons = Yes
os level = 35
preferred master = Yes
domain master = No
ldap suffix = dc=example,dc=com
ldap machine suffix = ou=People
ldap user suffix = ou=People
ldap group suffix = ou=Group
ldap idmap suffix = ou=People
ldap admin dn = cn=Manager
ldap ssl = no
ldap passwd sync = yes
idmap uid = 15000-20000
idmap gid = 15000-20000
...
# Other resource shares
...
...
14.3.3.4. Contr�leur de domaine principal (PDC, Primary Domain Controller) avec Active Directory
Bien que Samba puisse �tre membre d'un Active Directory, il ne peut pas fonctionner en tant que contr�leur de domaine Active Directory.