Les demandes sont de plus en plus nombreuses sur Samba couplé à LDAP. C’est suite à une formation que j’ai donnée sur le sujet que je mets ce petit mémo en ligne (inspiré de plusieurs didacticiels sur le net).
Ce tutoriel a été réalisé sur Ubuntu 8.04 LTS avec le compte root activé :
sudo passwd root
A l’installation slapd cherche un nom de domaine, donc pensez à vérifier avant l’installation à l’aide de la commande hostname -f que vous avez bien un nom de domaine complet ou sinon, editez le fichier hosts en conséquences :
par exemple :
127.0.0.1 localhost
192.168.0.1 hôte.domaine.extension hôte
Ensuite vous pouvez procéder à l’installation
apt-get install slapd db4.2-util ldap-utils
et choisir le mot de passe de l’administrateur à l’invite
Si vous n’avez pas le ficher samba-doc d’installé, il vous le faut pour récupérer le schema samba
apt-get install samba-doc
Nous allons maintenant copier le shema dans le sous-répertoire des sxhemas de ldap :
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
Et générer un mot de passe crypté (en root) :
slappasswd
copiez le résultat et ouvrez votre fichier de configuration du serveur openladap /etc/ldap/slapd.conf
Décommentez la ligne rootdn et mémorisez la …
et copiez en dessous le résultat de slapasswd
rootdn "cn=admin,dc=domaine,dc=extension"
rootpw {SSHA}mot de passe crypté
Il nous faut maintenant inclure notre shema à la suite des autres schemas et pour cela rajouter à la suite des autres la ligne :
include /etc/ldap/schema/samba.schema
Il nous faut maintenant relancer notre serveur :
/etc/init.d/slapd restart
Nous pouvons maintenant y effectuer une recherche :
ldapsearch -x -b "dc=mondomaine,dc=extension"
Nous devons y trouver deux entrées :
dc=mondomaine,dc=extension
cn=admin
Si vous n’avez pas encore installé samba, il est temps de la faire :
apt-get install samba smbclient smbfs
et d’installer par la même occasion les smbldap-tools
apt-get install smbldap-tools
Voici un smb.conf minimal :
[global]
workgroup = votre domaine (sans l’extension)
wins support = yes
winbind use default domain =yes
domain master = yes
local master = yes
preferred master = yes
domain logons = yes
os level = 65
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = yes
encrypt passwords = true
ldap admin dn = cn=admin,dc=votre domaine,dc=extension
ldap suffix = dc=votre domaine,dc=extension
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
add machine script = /usr/sbin/smbldap-useradd -w "%u"
logon path = \\%L\profiles\%U\%m
logon script = logon.bat
logon drive = H:
logon home = \\%L\%U\winprofile\%m
[netlogon]
path = /var/lib/samba/netlogon
writable = no
browseable = no
[profiles]
path = /var/lib/samba/profiles
browseable =no
writable =yes
create mask = 0600
directory mask = 0700
[homes]
browseable= no
read only = no
Il nous faut maintenant indiquer le mot de passe de l’admin de l’annuaire LDAP à Samba :
smbpasswd -w votremotdepasse
et redémarrer samba :
/etc/init.d/samba restart
Copions maintenant les exemples des smbldap-tools à leur emplacement prévu :
zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
Il faut ensuite les modifier d’après les données de notre smb.conf et de notre slapd.conf…
Configuration de /etc/smbldap-tools/smbldap_bind.conf
Indiquer le nom et le mot de passe de l’administrateur ldap.
Dans ce fichier, le mot de passe est indiqué en clair. Il faut donc changer les droits de celui-ci par mesure de sécurité :
chmod 600 /etc/smbldap-tools/smbldap_bind.conf
Piour configurer le ficher /etc/smbldap-tools/smbldap.conf
il nous faut d’abord récupérer le SID du serveur samba avec la commande :
net getlocalsid
piour l’y copier à la ligne concernée.
Puis faire les modifications qui s’imposent.. Attention à ce que les lignes usersdn, coputersdn et groupsdn correspondent aux suffixes de votre smb.conf ! Vous pouvez commenter les lignes relatives aux certificats si vous n’en n’avez pas ainsi que la partie “SAMBA Configuration” si vous avez défini vos profils, logon path dans votre smb.conf .
On pourra ensuite initialiser l’annuaire avec la commande :
smbldap-populate
Il nous faut maintenant changer le mode d’authentification sur le serveur linux en modifiant le fichier /etc/nsswith.conf et les fichiers de /etc/pam.d/.
Après avoir téléchargé les paquets indispensables :
apt-get install libpam-ldap libnss-ldap
IL nous faut répondre à quelques questions :
LDAP server Uniform Resource Identifier: ldap://127.0.0.1
Ensuite y mettre nos informations et laisser les autres choix par défaut.
Nous allons maintenant nous servir d’un script automatique :
auth-client-config -a -p lac_ldap
qui se chargera également, entre autres, de créer un répertoire Home à chaque utilisateur de notre annuaire LDAP lorsqu’il se connectera pour la première fois sur notre machine.
Et voilà, notre configuration est terminée.
Nous pouvons vérifier que root se connecte bien aux partages samba :
smbclient -L localhost -U root
Il nous suffira ensuite de télécharger LAM, une interface web à LDAP :
apt-get install ldap-account-manager
De se connecter au http://hôte/lam (login : lam, password : lam)
et de configurer les profils conforméménet à nos suffixes pour pouvoir lister, ajouter, modifier les groupes et utilisateurs de notre annuaire LDAP.
Et de vérifier après l’ajout d’utilisateurs qu’ils soient bien pris en compte :
getent passwd
getent group
N.B. Il n’est pas nécessaire d’ajouter les machines qui seront automatiquement rajoutées au domaine par la commande add machine script
de votre smb.conf à la première demande d’authentification sur le domaine par root…