Je galère aussi...

Samba-LDAP sous Debian

Posté par Vince dans tutoriaux

LDAP (Lightweight Directory Access Protocol) est un protocole qui permet la gestion d’annuaires éléctroniques.

Il permet donc aux utilisateurs d’un domaine de se connecter aux annuaires afin de les consulter, d’y insérer, supprimer ou modifier des informations.

Depuis la version 3, LDAP propose des mécanismes de chiffrement sécurisé tel que SSL, et des mécanisme d’authentification sécurisé tel que SASL.

Installation

apt-get install slapd db4.2-util ldap-utils

Debconf se lance alors:

- Il nous demande d’abord d’entrer le nom du domaine(nom du domaine LDAP, totalement different de celui de samba).

remarque: Si nous mettons par exemple domaine.local, nous aurons dc=domaine,dc=local.

- Nom de l’organisation. On met ici le nom de l’entreprise.

- Mot de passe administrateur

Schémas Samba

LDAP fonctionne avec des schémas. Il faut donc le schéma approprié pour utiliser LDAP avec Samba. Il se trouve dals le package debian samba-doc

apt-get install samba-doc

On copie ensuite le schéma que l’on place dans le répertoire des schémas LDAP.

les schémas se trouve dans le répertoire /usr/share/doc/samba-doc/examples/LDAP, compresser en format .gz.

Commençons donc par decompresser celui qu’il nous faut:

gunzip /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz

Puis copions le ou il faut:

cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema /etc/ldap/schema/samba.schema

Configuration

Editons le fichier /etc/ldap/slapd.conf avec notre éditeur préféré:

Personnelement j’utilise vi:
vi /etc/ldap/slapd.conf

On inclue le schéma samba:
include /etc/ldap/schema/samba.schema

Créons maintenant un mot de passe crypté:
dev:/home/vince# slappasswd
New password:
Re-enter new password:
{SSHA}jaob937tPOB5+szih7s25pol2davmamPWA

Rajoutons maintenant ceci en desous de suffix “dc=domaine,dc=local”:
rootdn "cn=admin,dc=domaine,dc=local"
rootpw {SSHA}jaob937tPOB5+szih7s25pol2davmamPWA

Installation de Samba

On installe classiquement les packages samba:

apt-get install samba smbfs smbclient

Créons les partages:
mdir -p /home/netlogon
Ce répértoire va contenir les scripts de connexion des utilisateurs.
Ces enventuels scripts seront rédigés en .bat

mkdir -p /home/export/profile
Ce répétoire contiendra les profils Windows dee chaque utilisateurs(c:\Documents and settings\utilisateurs)

mkdir -p /home/partage
Partage publique accessible à tous les utilisateurs

mkdir -p /home/nom_utilisateur
Répertoire personnel de l’utilisateur sur le serveur

On donne les droits sur le répértoire:

chmod -R a+w /home/export
chmod a+w /home/partage

Refaisons maintenant le fichier /etc/samba/smb.conf

[global]
workgroup = notre_domaine
netbios name = mamachine
server string = Controleur de domaine samba
domain master = Yes
local master = Yes
domain logons = Yes
os level = 40
#passwd program = /usr/sbin/smbldap-passwd ?u %u
ldap passwd sync = Yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=admin,dc=domaine,dc=local
ldap suffix = dc=domaine,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
logon path = \\%L\profile\%U
logon drive = P:
logon home = \\%L\%U
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
case sensitive = No
default case = lower
preserve case = yes
short preserve case = Yes
dns proxy = No
wins support = Yes
hosts allow = 192.168.1. 127.
winbind use default domain = Yes
nt acl support = Yes
msdfs root = Yes

[netlogon]
path = /home/netlogon
writable = No
browseable = No
write list = Administrateur

[profile]
path = /home/export/profile
browseable = No
writeable = Yes
profile acls = yes
create mask = 0700
directory mask = 0700
#
[homes]
comment = Repertoire Personnel
browseable = No
writeable = Yes
#
[partage]
comment = Repertoire commun
browseable = Yes
writeable = Yes
public = No
path = /home/partage

Utilisation des commandes

créons le fichier /var/lib/samba/secrets.tdb: On fournit à samba le mot de passe du compte administrateur qui effectue les requêtes dans l’annuaire LDAP.

smbpasswd -w votremotdepasseroot

Relançons maintenant samba:
/etc/init.d/samba restart

Nous pouvons désormais créer l’archictecture de notre base LDAP:
smbldap-populate

Vous devez saisir deux fois votre mot de passe root si tout se passe bien !
Cette commande créée:
Les différentes OU (Organisation Unit) qui contiendront vos Machines, Users et Groups
Deux UID : root et nobody qui seront dans OU = Users
Plusieurs CN (Common Name): Les groupes qui seront dans OU = Groups

Copions dans un fichier texte quelconque la derniere ligne:
sambaDomainName=domaine,dc=domaine,dc=local

ou domaine est le nom du domaine renseigner à la line “workgroup=” dans le fichier /etc/samba/smb.conf.

Ajoutons maintenant un utilisateur:
smbldap-useradd -a -c "Nom Prenom" -m -P mdp

ou:
-a: l’utilisateur
-c: Le nom complet
-m: cée le répértoire personnel
-P: crée le mot de passe

Authentification Unix

Un système Linux peut aller chercher dans différents endroits pour authentifier des utilisateurs. Par défaut il s’agit du fichier /etc/passwd Cependant on peut lui en ajouter d’autres sources de données. On va donc lui indiquer notre annuaire LDAP.

NSS
NSS est un module qui permet d’interroger LDAP.
Installons le:
apt-get install libnss-ldap

Modifions le fichier /etc/libnss-ldap.conf comme ceci:
host 127.0.0.1

base dc=domaine,dc=local

uri ldap://127.0.0.1/

Remplaçons également dans ce fichier la ligne:
#bind_policy hard
par:
bind_policy soft

Authentification gràce à LDAP

Il suffit d’indiquer maintenant au système d’aller interroger notre annuaire LDAP
vi /etc/nsswitch.conf
Puis mofdifions le fichier comme suit:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat ldap
group: compat ldap
shadow: compat ldap

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

Il ne nous reste plus qu’a redemarrer les services:


/etc/init.d/slapd restart
/etc/init.d/samba restart


Tags :, , , ,
Faites tourner : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • del.icio.us
  • Netvouz
  • ThisNext
  • blogmarks
  • Scoopeo
Article similaire :

5 Commentaires pour “Samba-LDAP sous Debian”

  1. Anonyme dit:

    Samba-LDAP sous Debian…

    Comment installer et configurer le couple samba/LDAP…

  2. burningHat dit:

    Merci pour ce tutorial très bien expliqué… Juste une petite remarque :
    “Personnelement j’utilise vi:
    nano /etc/ldap/slapd.conf”

    Euhhh à mon avis il faudrait que tu mettes la commande adaptée ou que tu changes ton commentaire parce que c’est pas très cohérent sinon ;)

    @+

  3. Vince dit:

    oups!

    Pas vu! J’etais justement en train de dire à un collègue que je comprenais rien à nano!
    Du coup j’ai ecrit nano
    lol!

    Merci pour le commentaire ;)

  4. mbb dit:

    bonjour, je travaille depuis quelques jours sur le serveur LDAP et celui de Samba, afin de gérer un réseau d’une association, et j’ai rencontrer dernièrement quelques problèmes. j’ai pensé que si vous pouvez m’aider…
    voila, tout d’abord, le centre est équipé avec des machines windows XP, la machine serveur est ubnutu, et la documentation référence pour moi est ce site http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAP ou en pièce jointe en forma pdf. je suis arrivé a terminer toutes les instructions de cette documentation pour la configuration du serveur ldap et celui de samba avec SUCCÈS, sans avoir aucune erreur lors de l’installation, (tout va bien jusqu’à maintenant), passant à la configuration des machines clients windows, et c’est aussi av succès, (il me répond exactement comme c’est indiqué dans la documentation).
    mais arrivant à la dernière étape le redémarrage de la machine windows, et lorsque le système s’ouvre et me demande de choisir un utilisateur (autrement dit choisir une session) ce dernier n’affiche pas les sessions ajoutées (présentes) dans le serveur, il affiche seulement la session présente par défaut, alors qu’en principe, je dois trouvé toutes les sessions présentes dans le serveur pour en choisir une.
    ma question est: pour quoi je trouve pas les sessions présentes dans le serveur, comme choix de session au démarrage de windows?
    merci pour votre attention

  5. oizo dit:

    comment arrives tu à utiliser ’smbldap-populate’ sans avoir le message “Unable to open /etc/opt/IDEALX/smbldap-tools/smbldap.conf for reading !” du bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286218

    il ressemble a quoi ton fichier /etc/opt/IDEALX/smbldap-tools/smbldap.conf ?

Donne ton avis