Ce document me sert de mémo pour connecter un client Samba sur un domaine Samba / LDAP. J’ai effectué cette installation sur Debian Etch, mais il doit être possible d’adapter ce mémo pour d’autres distributions.<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour connecter un client Samba sur un domaine Samba / LDAP. J’ai effectué cette installation sur Debian Etch, mais il doit être possible d’adapter ce mémo pour d’autres distributions.</p>

<h2>Installation des paquets</h2>
<p class="spip">Installation :</p>

<p class="spip"><code class='spip_code' dir='ltr'>aptitude install samba samba-common ldap-utils </code></p>

<h2>Configuration de Samba</h2>
<p class="spip">Exemple de contenu du fichier « <strong class="spip">/etc/samba/smb.conf</strong> »</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[global]<br />
workgroup = tetras<br />
security=domain<br />
netbios name = ttlinux2<br />
domain master = no<br />
local master = no<br />
domain logons = no<br />
ldap passwd sync = Yes<br />
passdb backend = ldapsam:ldap://192.168.0.1/<br />
ldap admin dn = cn=admin,dc=tetras,dc=net<br />
ldap suffix = dc=tetras,dc=net<br />
ldap group suffix = ou=Groups<br />
ldap user suffix = ou=Users<br />
ldap machine suffix = ou=Computers<br />
ldap delete dn = Yes<br />
logon path =<br />
logon home =<br />
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192<br />
case sensitive = No<br />
default case = lower<br />
preserve case = yes<br />
short preserve case = Yes<br />
dos charset = 850<br />
unix charset = ISO8859-15<br />
dns proxy = No<br />
wins support = yes<br />
<br />
### A changer si vous n'utilisez pas ce réseau === ><br />
nt acl support = Yes<br />
msdfs root = Yes<br />
hide files = /desktop.ini/ntuser.ini/NTUSER.*/<br />
<br />
[Utilisateurs]<br />
comment = Repertoire commun<br />
browseable = Yes<br />
writeable = Yes<br />
public = no<br />
#write user = toto<br />
path = /Utilisateurs/Fichiers</code></div>
<h2>Connexion du client au domaine</h2>
<p class="spip">Indiquer à Samba le mot de passe pour accéder au serveur LDAP :</p>

<p class="spip"><code class='spip_code' dir='ltr'># smbpasswd -w mot_de_passe_ldap</code></p>

<p class="spip">Arrêter le serveur Samba :</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/samba stop</code></p>

<p class="spip">Rejoindre le domaine :</p>

<p class="spip"><code class='spip_code' dir='ltr'># net rpc join -U root</code></p>

<p class="spip">Démarrer le serveur Samba :</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/samba start</code></p>

<p class="spip">Vérifier que le poste client est bien visible sur le domaine :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># smbclient -L ttlinux1 -U root<br />
Password:<br />
Domain=[TETRAS] OS=[Unix] Server=[Samba 3.0.24]<br />
<br />
        Sharename       Type      Comment<br />
        ---------       ----      -------<br />
        IPC$            IPC       IPC Service ()<br />
Domain=[TETRAS] OS=[Unix] Server=[Samba 3.0.24]<br />
<br />
        Server               Comment<br />
        ---------            -------<br />
...<br />
        TTLINUX1<br />
        TTLINUX2<br />
        TTLINUX3<br />
<br />
        Workgroup            Master<br />
        ---------            -------<br />
        MSHOME               METINJECTION<br />
        TETRAS               TTLINUX1</code></div>
<p class="spip">Vérifier que les partages du poste clients sont visibles :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># smbclient -L ttlinux2 -U root<br />
Password:<br />
Domain=[TETRAS] OS=[Unix] Server=[Samba 3.0.24]<br />
<br />
        Sharename       Type      Comment<br />
        ---------       ----      -------<br />
        Utilisateurs    Disk      Repertoire commun<br />
        IPC$            IPC       IPC Service ()<br />
Domain=[TETRAS] OS=[Unix] Server=[Samba 3.0.24]<br />
<br />
        Server               Comment<br />
        ---------            -------<br />
        TTLINUX2<br />
<br />
        Workgroup            Master<br />
        ---------            -------<br />
        TETRAS </code></div>
<h2>Connexion au serveur LDAP</h2>
<h3>Configuration du fichier « /etc/nsswitch.conf »</h3>
<p class="spip">Ajouter « ldap » sur les 3 premières lignes du fichier :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>passwd:         compat ldap<br />
group:          compat ldap<br />
shadow:         compat ldap<br />
<br />
hosts:          files dns<br />
networks:       files<br />
<br />
protocols:      db files<br />
services:       db files<br />
ethers:         db files<br />
rpc:            db files<br />
<br />
netgroup:       nis</code></div>
<h3>Installation et configuration de libnss-ldap</h3>
<p class="spip">Installation :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install libnss-ldap</code></p>

<p class="spip">Configuration :</p>

<p class="spip"><code class='spip_code' dir='ltr'># dpkg-reconfigure libnss-ldap </code>
<br /></p>
<li> URI du serveur LDAP : ldap ://192.168.0.1 
<br /><li> Nom distinctif (DN) de la base de recherche : dc=tetras,dc=net
<br /><li> Version de LDAP à utiliser : 3  
<br /><li> La base LDAP demande-t-elle une identification : Non
<br /><li> Privilèges LDAP spécifiques pour le superutilisateur ? : Non
<br /><li> Rendre le fichier de configuration lisible et modifiable uniquement par son propriétaire ? : Oui
<p class="spip">Exemple de contenu du fichier « <strong class="spip">/etc/libnss-ldap.conf</strong> » :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>base dc=tetras,dc=net<br />
uri ldap://192.168.0.1<br />
ldap_version 3</code></div>
<p class="spip"><strong class="spip">Attention</strong> : Ce fichier doit être accessible en lecture seule par tout les utilisateurs :</p>

<p class="spip"><code class='spip_code' dir='ltr'># chmod 644 /etc/libnss-ldap.conf</code></p>

<h3>Vérification que les comptes LDAP sont bien reconnus</h3>
<p class="spip">Cette commande doit retourner :
<br /></p>
<li> La liste des utilisateurs locaux
<br /><li> La liste des utilisateurs du LDAP
<br /><li> La liste des machines du LDAP (commencent par un $)
<p class="spip"><code class='spip_code' dir='ltr'># getent passwd </code></p>

<p class="spip">Autre test d’interrogation du LDAP</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ id tony<br />
uid=1006(tony) gid=513(Domain Users) groupes=513(Domain Users),512(Domain Admins)</code></div>
<h3>Test de connexion au client samba avec un utilisateur du LDAP</h3>
<p class="spip">Avant de faire le test, il faut évidemment démarrer le client samba :</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/samba start</code></p>

<p class="spip">Ce test peut-être effectué depuis le client, le serveur ou une autre machine du réseau même situé dans un autre domaine :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># smbclient -L ttlinux2 -U bt<br />
Password:<br />
Domain=[TETRAS] OS=[Unix] Server=[Samba 3.0.24]<br />
....</code></div>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>14/05/08</td><td>Création suite à la réinstallation du serveur TTLINUX2</td></tr>
<tr class="row_odd"><td>0.2</td><td>31/05/08</td><td>Mise en ligne</td></tr>
</tbody>
</table>