« Samba avec une authentification sur un CPD NT » : différence entre les versions
Aucun résumé des modifications |
|||
(6 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Installation de samba avec une authentification sur un CPD NT4.0 ou 2000 = | = Installation de samba avec une authentification sur un CPD NT4.0 ou 2000 = | ||
Ligne 13 : | Ligne 12 : | ||
Il est bien connu que les systèmes Microsoft et Unix ont une façon différente de gérer leur base d'utilisateurs. Une difficulté est alors rencontrée lorsque l'on veut intégrer un serveur Samba dans un réseau de machines NT. En théorie il faudrait créer sur le serveur samba les comptes systèmes correspondant aux comptes du domaine mais aussi les comptes Samba. Pourquoi ne pas simplifier la tâche en faisant en sorte de n'administrer qu'une seule base de compte. | Il est bien connu que les systèmes Microsoft et Unix ont une façon différente de gérer leur base d'utilisateurs. Une difficulté est alors rencontrée lorsque l'on veut intégrer un serveur Samba dans un réseau de machines NT. En théorie il faudrait créer sur le serveur samba les comptes systèmes correspondant aux comptes du domaine mais aussi les comptes Samba. Pourquoi ne pas simplifier la tâche en faisant en sorte de n'administrer qu'une seule base de compte. | ||
Pour cela, on utilise < | Pour cela, on utilise <tt>winbind</tt>. <tt>Winbind</tt> est un système client-serveur qui permet entre autre d'introduire facilement des serveurs Samba dans un domaine où se trouvent déjà des CPD (CPD ou PDC : contrôleur primaire de domaine) NT. Comment ? Il se charge en fait de récupérer la base des utilisateurs sur le CPD NT et procède à une authentification de celui-ci. | ||
== Installer Samba == | == Installer Samba == | ||
Ligne 19 : | Ligne 18 : | ||
La première étape consiste, d'abord, à installer Samba. Si vous avez une version de Samba déjà installée alors désinstallez-là, car nous avons besoin de fonctionnalités qui ne se trouvent pas dans les versions livrées avec la plupart des distributions. | La première étape consiste, d'abord, à installer Samba. Si vous avez une version de Samba déjà installée alors désinstallez-là, car nous avons besoin de fonctionnalités qui ne se trouvent pas dans les versions livrées avec la plupart des distributions. | ||
<div class="note">Sur une distribution à base de RPM (RedHat, Mandrake ou SuSE), pour voir si une version de samba est installée, tapez la commande : <code><nowiki># rpm -q samba</nowiki></ | <div class="note">Sur une distribution à base de RPM (RedHat, Mandrake ou SuSE), pour voir si une version de samba est installée, tapez la commande : <div class="code"><nowiki># rpm -q samba</nowiki></div>. S'il existe déjà une version de Samba sur votre système alors supprimez-là avec la commande <div class="code"><nowiki># rpm -e samba</nowiki></div>.</div> | ||
Une fois que vous avez bien désinstallé Samba, il va falloir récupérer les sources de la dernière version. La version utilisée ici est 2.2.8. | Une fois que vous avez bien désinstallé Samba, il va falloir récupérer les sources de la dernière version. La version utilisée ici est 2.2.8. | ||
Ligne 27 : | Ligne 26 : | ||
<div class="code">cd samba-2.2.8a<br /> # cd sources <br /> # ./configure --enable-cups --with-smbwrapper --with-dce-dfs --with-smbmount --with-pam --with-pam_smbpass --with-syslog --with-quotas --with-libsmbclient --with-acl-support --with-winbind --with-winbind-auth-challenge</div> | <div class="code">cd samba-2.2.8a<br /> # cd sources <br /> # ./configure --enable-cups --with-smbwrapper --with-dce-dfs --with-smbmount --with-pam --with-pam_smbpass --with-syslog --with-quotas --with-libsmbclient --with-acl-support --with-winbind --with-winbind-auth-challenge</div> | ||
Pour savoir ce que signifient ces options, vous pouvez taper la commande <code>./configure --help</ | Pour savoir ce que signifient ces options, vous pouvez taper la commande <div class="code">./configure --help</div>, cette commande vous retournera une liste des différentes options possibles avec une description. | ||
Si la commande <code>./configure .....</ | Si la commande <div class="code">./configure .....</div> retourne une erreur, tentez d'analyser ce qui est dit pour trouver l'erreur. Si vous n'avez pas d'erreurs ce qui est probablement le cas, vous pouvez compiler et installer Samba. Pour ce faire : | ||
<div class="code"> # make <br /> # make install<br /> # make installbin<br /> # make installman<br /> </div> | <div class="code"> # make <br /> # make install<br /> # make installbin<br /> # make installman<br /> </div> | ||
Voilà, samba est normalement bien installé. Les fichiers se trouvent dans < | Voilà, samba est normalement bien installé. Les fichiers se trouvent dans <tt>/usr/local/samba</tt>. Il va falloir maintenant créer un script d'initialisation pour les trois démons <tt>smbd</tt>, <tt>nmbd</tt> et <tt>winbindd</tt>. Vous trouverez un script en annexe qui fonctionne très bien sur Redhat, inspirez-vous en sur les autres distributions. Vérifier notamment que les chemins (''path'') sont corrects par rapport à votre configuration. | ||
[smb.txt Le script en question]. | [smb.txt Le script en question]. | ||
<div class="note"> Sur une RedHat ou Mandrake, copiez le script dans < | <div class="note"> Sur une RedHat ou Mandrake, copiez le script dans <tt>/etc/init.d</tt>, rendez-le exécutable : <div class="code">chmod +x /etc/init.d/smb</div>, puis activez les services samba au démarrage : <div class="code">chkconfig --add smb</div>. Enfin, démarrez pour cette session : <div class="code">/etc/init.d/smb start</div>. </div> | ||
== Configurer samba == | == Configurer samba == | ||
Avant de lancer samba il va falloir éditer le fichier de configuration et les autres fichiers nécessaires au bon fonctionnement de la paire samba/winbind. Je vous présente, à titre indicatif au niveau des partages, mon < | Avant de lancer samba il va falloir éditer le fichier de configuration et les autres fichiers nécessaires au bon fonctionnement de la paire samba/winbind. Je vous présente, à titre indicatif au niveau des partages, mon <tt>smb.conf</tt>. A noter que ce fichier doit se trouver dans le répertoire <tt>/usr/local/samba/lib</tt>. | ||
<div class="code"> [global] <br /><br /> #Chaîne de description du serveur samba <br /> server string = SambaBSD-2.2.8 <br /><br /> #Définit le nom netbios principale du serveur samba <br /> netbios name = SambaB <br /><br /> # Définit le groupe netbios de machines auquel<br /> # le serveur appartient ici le nom du domaine.<br /> workgroup = | <div class="code"> [global] <br /><br /> #Chaîne de description du serveur samba <br /> server string = SambaBSD-2.2.8 <br /><br /> #Définit le nom netbios principale du serveur samba <br /> netbios name = SambaB <br /><br /> # Définit le groupe netbios de machines auquel<br /> # le serveur appartient ici le nom du domaine.<br /> workgroup = bidule <br /><br /> # Nom et emplacement du fichier journal de samba. Les variables<br /> # standards de samba peuvent être utilisées. <br /> log file = /var/log/samba/%m.log <br /><br /> # Taille maximale des fichiers log. <br /> max log size = 100 <br /><br /> # Samba fait parité d'un domaine windows <br /> security = domain <br /> <br /> # Cette option sert à indiquer le CPD ici le caractère de<br /> # substitution * ordonne à samba de rechercher le CPD lui-meme. <br /> password server = * <br /><br /> # Comme son nom l'indique cette option sert à crypter les mots de<br /> # passe, il faudra au préalable appliquer un patch sur les stations<br /> # NT ce patch peut être trouvé dans le répertoire doc de samba il sert<br /> # à activer les plaintextpassword sous NT<br /> encrypt passwords = yes <br /><br /> # Chemin du fichier de mot de passe de samba <br /> smb passwd file = /usr/local/samba/bin/smbpasswd <br /><br /> # les lignes suivantes sont utiles pour pouvoir changer le mot de passe<br /> # et ajouter des utilisateurs à partir de serveurs windows.A utiliser avec<br /> # "encrypt passwd" et "smb passwd file" <br /> unix password sync = yes <br /> passwd program = /usr/bin/passwd <br /> passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentification*tokens*updated*successfully* <br /> add user script = /usr/sbin/useradd %u -g smbusers <br /> delete user script = /usr/sbin/userdel %u <br /> allow trusted domains = yes <br /><br /> # Support de l'ACL Microsoft <br /> nt acl support = yes <br /><br /> # Séparateur winbind. Avec + les utilisateurs auront la forme<br /> # domaine+nom_d'utilisateur.<br /> # les séparateurs peuvent etre + ou /. Toutes les options qui<br /> # suivent sont indispensables pour le bon fonctionnement de<br /> # winbind <br /> winbind separator = + <br /> winbind cache time = 10 <br /> template shell = /bin/bash <br /> template homedir = /home/%D/%U <br /> winbind uid = 10000-20000 <br /> winbind gid = 10000-20000 <br /><br /> socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 <br /><br /> #Si egale à yes, samba tentera de devenir explorateur principal<br /> #du sous-réseau local. <br /> local master = no <br /><br /> # Fixe le niveau de l'os de samba lors de l'élection de<br /> # l'explorateur local principal. <br /> os level = 33 <br /><br /> #Si égale à yes,samba tentera alors de devenir explorateur<br /> # principal de domaine du groupe de travail. <br /> domain master = no <br /><br /> # Samba utilisera le bit de l'explorateur principal favori pour devenir<br /> # explorateur local principale si cette valeur est égale à yes. <br /> preferred master = no <br /><br /> # Ici on indique le serveur wins du réseau. <br /> wins server = x.x.x.x <br /><br /> # égale a yes, samba conservera la casse fourni par le client<br /> # sans convertir par la classe par defaut.<br /> preserve case = yes <br /> # Si egale à yes, samba distinguera les majuscules des<br /> # minuscules lors de l'utilisation des fichiers. <br /> case sensitive = no <br /><br /> # Ce premier partage va servir à créer un répertoire personnel<br /> # pour l'utilisateur du domaine qui viendra se connecter. <br /> [homes] <br /> comment = Home Directory <br /> browseable = no <br /> writable = yes <br /> valid users = %S <br /> create mode = 0664 <br /> directory mode = 0775 <br /><br /> [public] <br /> path = /partage/public <br /> public = yes <br /> only guest = yes <br /> writable = yes <br /> printable = no <br /> </div> | ||
== Le fichier nsswitch.conf == | == Le fichier nsswitch.conf == | ||
Nous avons donc maintenant un fichier < | Nous avons donc maintenant un fichier <tt>smb.conf</tt> opérationnel, il ne nous reste plus qu'à nous tourner vers winbind car nous avons terminé la partie dédiée purement à samba. Pour que winbind fonctionne correctement avec samba il va falloir éditer quelques fichiers. | ||
Tout d'abord éditez le fichier < | Tout d'abord éditez le fichier <tt>/etc/nsswitch.conf</tt>, dans ce fichier vous allez devoir ajouter winbind à la ligne <tt>groupe</tt> et <tt>user</tt> : | ||
<div class="code"> passwd: files nisplus winbind <br /> shadow: files nisplus <br /> group: files nisplus winbind </div> | <div class="code"> passwd: files nisplus winbind <br /> shadow: files nisplus <br /> group: files nisplus winbind </div> | ||
Vérifiez ensuite que vous disposez bien des librairies nécessaires < | Vérifiez ensuite que vous disposez bien des librairies nécessaires <tt>/lib/libnss_winbind.so</tt> et <tt>/lib/libnss_windbind.so.2</tt>, ces librairies se trouvent, si elles ne sont pas installées, dans les sources de samba. Si la librairie <tt>libnss_winbind.so.2</tt> n'existe pas mais que l'autre est présente alors exécutez la commande suivante: <div class="code"><nowiki># ln -s /lib/nss_winbind.so /lib/libnss_winbind.so.2</nowiki></div>. | ||
== Configurer pam.d == | == Configurer pam.d == | ||
Maintenant la dernière étape.Il va falloir éditer quelques fichiersoups se trouvant dans le répertoire <code>/etc/pam.d</ | Maintenant la dernière étape.Il va falloir éditer quelques fichiersoups se trouvant dans le répertoire <div class="code">/etc/pam.d</div>. Ce sont ces fichiers qui définissent la sécurité des authentifications. Je vous montre ci-après les trois fichiers qu'il faut modifier afin que samba utilise le CPD pour authentifier et afin que l'on puisse se logguer sur une Linux box avec un compte NT. | ||
Le fichier < | Le fichier <tt>/etc/pam.d/samba</tt> | ||
<div class="code"> #%PAM-1.0 <br /> #auth required pam_nologin.so <br /> #auth required pam_stack.so service=system-auth <br /> auth required /lib/security/pam_winbind.so <br /> auth required /lib/security/pam_pwdb.so nullok shadow <br /> account required /lib/security/pam_winbind.so <br /> account required /lib/security/pam_pwdb.so <br /> #account required pam_stack.so service=system-auth <br /> session required pam_stack.so service=system-auth <br /> password required pam_stack.so service=system-auth <br /> </div> | <div class="code"> #%PAM-1.0 <br /> #auth required pam_nologin.so <br /> #auth required pam_stack.so service=system-auth <br /> auth required /lib/security/pam_winbind.so <br /> auth required /lib/security/pam_pwdb.so nullok shadow <br /> account required /lib/security/pam_winbind.so <br /> account required /lib/security/pam_pwdb.so <br /> #account required pam_stack.so service=system-auth <br /> session required pam_stack.so service=system-auth <br /> password required pam_stack.so service=system-auth <br /> </div> | ||
Le fichier < | Le fichier <tt>/etc/pam.d/auth-config</tt> | ||
<div class="code"> #%PAM-1.0 <br /> #auth sufficient /lib/security/pam_rootok.so<br /> #auth required /lib/security/pam_stack.so service=system-auth <br /> #account required /lib/security/pam_permit.so<br /> #session optional /lib/security/pam_xauth.so<br /> #session required /lib/security/pam_permit.so<br /> auth required /lib/security/pam_securetty.so<br /> auth required /lib/security/pam_nologin.so<br /> auth sufficient /lib/security/pam_winbind.so <br /> auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok <br /> account required /lib/security/pam_winbind.so </div> | <div class="code"> #%PAM-1.0 <br /> #auth sufficient /lib/security/pam_rootok.so<br /> #auth required /lib/security/pam_stack.so service=system-auth <br /> #account required /lib/security/pam_permit.so<br /> #session optional /lib/security/pam_xauth.so<br /> #session required /lib/security/pam_permit.so<br /> auth required /lib/security/pam_securetty.so<br /> auth required /lib/security/pam_nologin.so<br /> auth sufficient /lib/security/pam_winbind.so <br /> auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok <br /> account required /lib/security/pam_winbind.so </div> | ||
Et enfin le fichier < | Et enfin le fichier <tt>/etc/pam.d/login</tt> | ||
<div class="code"> #%PAM-1.0 <br /> auth required /lib/security/pam_securetty.so<br /> auth sufficient /lib/security/pam_winbind.so<br /> auth sufficient /lib/security/pam_unix.so use_first_pass<br /> auth required /lib/security/pam_stack.so service=system-auth<br /> auth required /lib/security/pam_nologin.so<br /> account sufficient /lib/security/pam_stack.so service=system-auth<br /> account sufficient /lib/security/pam_winbind.so<br /> password required /lib/security/pam_stack.so service=system-auth<br /> </div> | <div class="code"> #%PAM-1.0 <br /> auth required /lib/security/pam_securetty.so<br /> auth sufficient /lib/security/pam_winbind.so<br /> auth sufficient /lib/security/pam_unix.so use_first_pass<br /> auth required /lib/security/pam_stack.so service=system-auth<br /> auth required /lib/security/pam_nologin.so<br /> account sufficient /lib/security/pam_stack.so service=system-auth<br /> account sufficient /lib/security/pam_winbind.so<br /> password required /lib/security/pam_stack.so service=system-auth<br /> </div> | ||
Vous pouvez éditer d'autres fichier < | Vous pouvez éditer d'autres fichier <tt>pam.d</tt> afin que les applications voulues utilisent winbind pour s'authentifier. | ||
== Adjoindre le serveur au domaine == | == Adjoindre le serveur au domaine == | ||
Ligne 79 : | Ligne 78 : | ||
<div class="code"><nowiki># /usr/local/samba/bin/smbpasswd -j nom_du_domaine -r nom_cpd -U administrateur%motdepasse</nowiki></div> | <div class="code"><nowiki># /usr/local/samba/bin/smbpasswd -j nom_du_domaine -r nom_cpd -U administrateur%motdepasse</nowiki></div> | ||
<code>administrateur%motdepasse</ | ou désormais: | ||
<div class="code"><nowiki># net join -w nom_du_domaine -S nom_cpd -Uadministrateur%motdepasse</nowiki></div> | |||
<tt>administrateur%motdepasse</tt> étant un compte autorisé à joindre des machines au domaine. Après avoir tapé cette commande cela devrait vous retourner quelque chose comme : <div class="code">Domain toto joined</div>. | |||
== Test == | == Test == | ||
Ligne 93 : | Ligne 95 : | ||
<div class="code"><nowiki>#/etc/init.d/smb start</nowiki></div><div class="note">Si vous n'utilisez pas une distribution "RedHat" ou "Mandrake", adaptez le script fourni, ainsi que la procédure de lancement</div> | <div class="code"><nowiki>#/etc/init.d/smb start</nowiki></div><div class="note">Si vous n'utilisez pas une distribution "RedHat" ou "Mandrake", adaptez le script fourni, ainsi que la procédure de lancement</div> | ||
Vous devriez voir les trois démons < | Vous devriez voir les trois démons <tt>nmbd</tt>, <tt>smbd</tt> et <tt>winbindd</tt>, se lancer. Pour vérifier s'ils sont bien lancés, vous pouvez taper la commande : | ||
<div class="code"><nowiki># ps -ae | grep -E "(smbd|nmbd|winbindd)"</nowiki></div> | <div class="code"><nowiki># ps -ae | grep -E "(smbd|nmbd|winbindd)"</nowiki></div> | ||
Ligne 101 : | Ligne 103 : | ||
Le premier test que l'on peut faire consiste à taper la commande : | Le premier test que l'on peut faire consiste à taper la commande : | ||
<div class="code"><nowiki>#wbinfo - | <div class="code"><nowiki>#wbinfo -u </nowiki></div> | ||
Cette commande devrait nous retourner les différents utilisateurs sur le CPD. | Cette commande devrait nous retourner les différents utilisateurs sur le CPD. | ||
Ligne 116 : | Ligne 118 : | ||
Vous pouvez normalement maintenant accéder au serveur samba en utilisant vos logins NT et sans avoir besoin d'administrer deux bases de comptes. | Vous pouvez normalement maintenant accéder au serveur samba en utilisant vos logins NT et sans avoir besoin d'administrer deux bases de comptes. | ||
<br/> | |||
<br/> | |||
'''<b>[[Réseau|@ Retour à la rubrique Réseau]]</b>''' | |||
<br/> | |||
<div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par IrOnUx le 15/04/2003.</div> | <div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par IrOnUx le 15/04/2003.</div> | ||
Ligne 122 : | Ligne 129 : | ||
Copyright © 15/04/2003, IrOnUx | Copyright © 15/04/2003, IrOnUx | ||
{{CC-BY-NC-SA}} | {{CC-BY-NC-SA}} | ||
[[Catégorie:Réseau]] |
Dernière version du 16 décembre 2023 à 17:49
Installation de samba avec une authentification sur un CPD NT4.0 ou 2000
Mise en garde
La configuration présentée a été réalisée sur une Redhat 7.3, il ne devrait pas y avoir beaucoup de changement avec les versions plus récentes. Je ne peux par contre pas certifier cette configuration sur d'autres distributions, n'ayant pas fait les tests. Vous devez au préalable avoir lu la doc pour configurer samba en tant que PDC, BDC.
Le problème
Il est bien connu que les systèmes Microsoft et Unix ont une façon différente de gérer leur base d'utilisateurs. Une difficulté est alors rencontrée lorsque l'on veut intégrer un serveur Samba dans un réseau de machines NT. En théorie il faudrait créer sur le serveur samba les comptes systèmes correspondant aux comptes du domaine mais aussi les comptes Samba. Pourquoi ne pas simplifier la tâche en faisant en sorte de n'administrer qu'une seule base de compte.
Pour cela, on utilise winbind. Winbind est un système client-serveur qui permet entre autre d'introduire facilement des serveurs Samba dans un domaine où se trouvent déjà des CPD (CPD ou PDC : contrôleur primaire de domaine) NT. Comment ? Il se charge en fait de récupérer la base des utilisateurs sur le CPD NT et procède à une authentification de celui-ci.
Installer Samba
La première étape consiste, d'abord, à installer Samba. Si vous avez une version de Samba déjà installée alors désinstallez-là, car nous avons besoin de fonctionnalités qui ne se trouvent pas dans les versions livrées avec la plupart des distributions.
Une fois que vous avez bien désinstallé Samba, il va falloir récupérer les sources de la dernière version. La version utilisée ici est 2.2.8.
Tout d'abord, décompressez l'archive dans un répertoire. On va maintenant installer Samba:
# cd sources
# ./configure --enable-cups --with-smbwrapper --with-dce-dfs --with-smbmount --with-pam --with-pam_smbpass --with-syslog --with-quotas --with-libsmbclient --with-acl-support --with-winbind --with-winbind-auth-challenge
Pour savoir ce que signifient ces options, vous pouvez taper la commande
, cette commande vous retournera une liste des différentes options possibles avec une description. Si la commande
retourne une erreur, tentez d'analyser ce qui est dit pour trouver l'erreur. Si vous n'avez pas d'erreurs ce qui est probablement le cas, vous pouvez compiler et installer Samba. Pour ce faire :
# make install
# make installbin
# make installman
Voilà, samba est normalement bien installé. Les fichiers se trouvent dans /usr/local/samba. Il va falloir maintenant créer un script d'initialisation pour les trois démons smbd, nmbd et winbindd. Vous trouverez un script en annexe qui fonctionne très bien sur Redhat, inspirez-vous en sur les autres distributions. Vérifier notamment que les chemins (path) sont corrects par rapport à votre configuration.
[smb.txt Le script en question].
Configurer samba
Avant de lancer samba il va falloir éditer le fichier de configuration et les autres fichiers nécessaires au bon fonctionnement de la paire samba/winbind. Je vous présente, à titre indicatif au niveau des partages, mon smb.conf. A noter que ce fichier doit se trouver dans le répertoire /usr/local/samba/lib.
#Chaîne de description du serveur samba
server string = SambaBSD-2.2.8
#Définit le nom netbios principale du serveur samba
netbios name = SambaB
# Définit le groupe netbios de machines auquel
# le serveur appartient ici le nom du domaine.
workgroup = bidule
# Nom et emplacement du fichier journal de samba. Les variables
# standards de samba peuvent être utilisées.
log file = /var/log/samba/%m.log
# Taille maximale des fichiers log.
max log size = 100
# Samba fait parité d'un domaine windows
security = domain
# Cette option sert à indiquer le CPD ici le caractère de
# substitution * ordonne à samba de rechercher le CPD lui-meme.
password server = *
# Comme son nom l'indique cette option sert à crypter les mots de
# passe, il faudra au préalable appliquer un patch sur les stations
# NT ce patch peut être trouvé dans le répertoire doc de samba il sert
# à activer les plaintextpassword sous NT
encrypt passwords = yes
# Chemin du fichier de mot de passe de samba
smb passwd file = /usr/local/samba/bin/smbpasswd
# les lignes suivantes sont utiles pour pouvoir changer le mot de passe
# et ajouter des utilisateurs à partir de serveurs windows.A utiliser avec
# "encrypt passwd" et "smb passwd file"
unix password sync = yes
passwd program = /usr/bin/passwd
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentification*tokens*updated*successfully*
add user script = /usr/sbin/useradd %u -g smbusers
delete user script = /usr/sbin/userdel %u
allow trusted domains = yes
# Support de l'ACL Microsoft
nt acl support = yes
# Séparateur winbind. Avec + les utilisateurs auront la forme
# domaine+nom_d'utilisateur.
# les séparateurs peuvent etre + ou /. Toutes les options qui
# suivent sont indispensables pour le bon fonctionnement de
# winbind
winbind separator = +
winbind cache time = 10
template shell = /bin/bash
template homedir = /home/%D/%U
winbind uid = 10000-20000
winbind gid = 10000-20000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#Si egale à yes, samba tentera de devenir explorateur principal
#du sous-réseau local.
local master = no
# Fixe le niveau de l'os de samba lors de l'élection de
# l'explorateur local principal.
os level = 33
#Si égale à yes,samba tentera alors de devenir explorateur
# principal de domaine du groupe de travail.
domain master = no
# Samba utilisera le bit de l'explorateur principal favori pour devenir
# explorateur local principale si cette valeur est égale à yes.
preferred master = no
# Ici on indique le serveur wins du réseau.
wins server = x.x.x.x
# égale a yes, samba conservera la casse fourni par le client
# sans convertir par la classe par defaut.
preserve case = yes
# Si egale à yes, samba distinguera les majuscules des
# minuscules lors de l'utilisation des fichiers.
case sensitive = no
# Ce premier partage va servir à créer un répertoire personnel
# pour l'utilisateur du domaine qui viendra se connecter.
[homes]
comment = Home Directory
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[public]
path = /partage/public
public = yes
only guest = yes
writable = yes
printable = no
Le fichier nsswitch.conf
Nous avons donc maintenant un fichier smb.conf opérationnel, il ne nous reste plus qu'à nous tourner vers winbind car nous avons terminé la partie dédiée purement à samba. Pour que winbind fonctionne correctement avec samba il va falloir éditer quelques fichiers.
Tout d'abord éditez le fichier /etc/nsswitch.conf, dans ce fichier vous allez devoir ajouter winbind à la ligne groupe et user :
shadow: files nisplus
group: files nisplus winbind
Vérifiez ensuite que vous disposez bien des librairies nécessaires /lib/libnss_winbind.so et /lib/libnss_windbind.so.2, ces librairies se trouvent, si elles ne sont pas installées, dans les sources de samba. Si la librairie libnss_winbind.so.2 n'existe pas mais que l'autre est présente alors exécutez la commande suivante:
.
Configurer pam.d
Maintenant la dernière étape.Il va falloir éditer quelques fichiersoups se trouvant dans le répertoire
. Ce sont ces fichiers qui définissent la sécurité des authentifications. Je vous montre ci-après les trois fichiers qu'il faut modifier afin que samba utilise le CPD pour authentifier et afin que l'on puisse se logguer sur une Linux box avec un compte NT.
Le fichier /etc/pam.d/samba
#auth required pam_nologin.so
#auth required pam_stack.so service=system-auth
auth required /lib/security/pam_winbind.so
auth required /lib/security/pam_pwdb.so nullok shadow
account required /lib/security/pam_winbind.so
account required /lib/security/pam_pwdb.so
#account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
Le fichier /etc/pam.d/auth-config
#auth sufficient /lib/security/pam_rootok.so
#auth required /lib/security/pam_stack.so service=system-auth
#account required /lib/security/pam_permit.so
#session optional /lib/security/pam_xauth.so
#session required /lib/security/pam_permit.so
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok
account required /lib/security/pam_winbind.so
Et enfin le fichier /etc/pam.d/login
auth required /lib/security/pam_securetty.so
auth sufficient /lib/security/pam_winbind.so
auth sufficient /lib/security/pam_unix.so use_first_pass
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account sufficient /lib/security/pam_stack.so service=system-auth
account sufficient /lib/security/pam_winbind.so
password required /lib/security/pam_stack.so service=system-auth
Vous pouvez éditer d'autres fichier pam.d afin que les applications voulues utilisent winbind pour s'authentifier.
Adjoindre le serveur au domaine
Il nous faut maintenant joindre notre serveur samba au domaine, vous devez pour cela taper la commande:
ou désormais:
administrateur%motdepasse étant un compte autorisé à joindre des machines au domaine. Après avoir tapé cette commande cela devrait vous retourner quelque chose comme :
.
Test
Voila nous allons maintenant lancer samba avec le script donné en annexe. Editez ce script, vérifiez si les chemins correspondent avec votre configuration. Coller ce script dans le répertoire /etc/rc.d/init.d et rendez-le exécutable.
Pour démarrer samba, exécutez tout simplement la commande :
ou alors :
Vous devriez voir les trois démons nmbd, smbd et winbindd, se lancer. Pour vérifier s'ils sont bien lancés, vous pouvez taper la commande :
Si la commande vous retourne 3 lignes, c'est que les 3 démons sont bien lancés.
Le premier test que l'on peut faire consiste à taper la commande :
Cette commande devrait nous retourner les différents utilisateurs sur le CPD.
Vérifiez que l'authentification se fait bien en tapant la commande :
Si tout cela fonctionne bien, vérifiez avec les commandes :
# getent group
que winbind arrive bien à récupérer les noms d'utilisateurs sur le CPD NT.
Vous pouvez normalement maintenant accéder au serveur samba en utilisant vos logins NT et sans avoir besoin d'administrer deux bases de comptes.
Copyright
Copyright © 15/04/2003, IrOnUx
![]() ![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |