# [LDAP - SAMBA] Conseils mise en place et interaction

## X-Guardian

Salut,

Je cherche à mettre en place pour mon asso une authentification sécurisée leurs permettant d'accéder à leurs comptes depuis n'importe quel ordinateur, quel que soit le système.

De même, j'aimerais que les applications qu'ils utilisent puissent vérifier leur droit à partir d'un annuaire. (Si l'appli le permet bien sur  :Wink: )

Quels sont vos idées pour la mise en place, comment vous y prendriez-vous ?

Voici ce que j'ai fait pour le moment (qui a dit pas grand chose :p) :

J'ai 2 serveurs de disponible.

* L'un a OpenLDAP et BIND installés dessus (Plus de ldapdns dans portage), ainsi que postgreSQL avec sa BDD pour plus tard : 

On l'appellera SERVEUR_LDAP, 

* L'autre SAMBA avec smbldap, et aura plus tard d'autres outils/logiciels comme jabberd, ClamAV, postfix, ...  : 

Idem, son nom sera SERVEUR_SAMBA,

Cela marche plus ou moins. 

En fait pas terrible  :Very Happy: 

Mais j'arrive à faire quelques trucs  :Wink: 

1) Sur le SERVEUR_SAMBA, je crée des comptes/groupes unix/windows en passant par les outils smbldap. 

Ils sont bien enregistrés dans l'annuaire sur SERVEUR_LDAP. 

Par contre, les comptes unix ne marchent pas, même si les répertoires persos se créent sur SERVEUR_SAMBA.

Je dois donc avoir un problème du coté de l'identification unix (pam_ldap et nss_ldap sont installés, mes fichiers de conf de /etc/pam.d/ sont surement mal adaptés ^^ )

(Je ne sais pas d'où cela provient, j'ai retourné tous mes fichiers de conf, mais pour l'authentification Unix, il cherche toujours le serveur LDAP sur localhost ...)

2) Je n'arrive pas à faire enregistrer une machine sur le domaine, un message m'avertit que l'admin ou son mot de passe ne sont pas valide.

Je vous posterai dès que je le peux les fichiers de conf, ainsi que les messages d'erreur que j'obtiens.

Ce qui m'intéresse le plus c'est de savoir comment vous auriez organisé les serveurs et si vous connaissez une autre méthode que les outils smbldap pour faire les liens entre SAMBA et OpenLDAP.

Merci,

@+,

Guile.

----------

## X-Guardian

 Fichiers de conf du Serveur LDAP 

 *Quote:*   

> 
> 
>  /etc/openldap/ldap.conf 
> 
> BASE    dc=NOMDOMAIN, dc=FR
> ...

 

 *Quote:*   

> 
> 
>  /etc/openldap/slapd.conf 
> 
> include         /etc/openldap/schema/core.schema
> ...

 Last edited by X-Guardian on Tue Mar 20, 2007 2:04 pm; edited 2 times in total

----------

## Leander256

Il se fait tard (ou tôt), alors je n'ai pas de solution miracle à te proposer. Autant que je sache il n'y a que les outils smbldap fournis par idealx pour gérer un serveur Samba avec OpenLDAP, et je suppose que tu t'es basé sur leur Howto pour mettre en place tes serveurs.

Pour ton premier problème, est-ce que lors de la création du compte utilisateur tu fais bien un smbldap-useradd -a -c monutilisateur. Mais il est en effet plus probable que NSS ait un problème. As-tu précisé l'adresse IP du serveur grâce à la variable host du fichier /etc/ldap.conf?

Pour ton deuxième problème là ça se complique, il faudrait les logs (si possible détaillés, il y a plusieurs niveaux de "verbosité" pour Samba et OpenLDAP) pour savoir plus précisément lequel se plaint de quoi.

Voilà j'ai franchement pas l'impression d'aider beaucoup, mais je crois qu'il va falloir plus d'informations, c'est-à-dire tous les fichiers de config complets (mets-les dans des balises code si possible) et les logs de Samba et OpenLDAP pour que l'on puisse vraiment t'aider. Et pour avoir bataillé des semaines contre une telle config pour la faire marcher comme je le voulais, je te souhaite bon courage   :Wink:  (n'aies pas peur, je dois être tout simplement pas doué   :Razz: )

----------

## X-Guardian

Salut,

Ne t'en fait pas, j'ai pas peur, cela va faire un mois que je suis dessus ... heu ... pas à temps plein hein ... et je n'ai pas eu de net pendant 3 semaines  :Very Happy: 

(Merci FT/Orange au passage pour faire passer les gens en 8Mb/s sans vérifier si leur ligne peut supporter, et ne rien faire ensuite en pretextant àprès des expertises bidons que cela est de la faute du client ...)

Bon, je m'en vais chercher mes fichiers de conf et mes logs sur le serveur  :Wink: 

@+,

Guile.

----------

## X-Guardian

   Fichiers de conf du Serveur SAMBA 

 *Quote:*   

> 
> 
>  /etc/samba/smb.conf 
> 
> ###################################################
> ...

 Last edited by X-Guardian on Fri Mar 02, 2007 8:31 am; edited 1 time in total

----------

## X-Guardian

 *Quote:*   

> 
> 
>  /etc/ldap.conf 
> 
> HOST	     "IP_SERVEUR_LDAP"
> ...

 

----------

## X-Guardian

 *Quote:*   

> 
> 
>  /etc/nsswitch.conf 
> 
> passwd:      compat ldap
> ...

 

 *Quote:*   

> 
> 
>  /etc/nsswitch.ldap
> 
> passwd:		files ldap
> ...

 

----------

## X-Guardian

 *Quote:*   

> 
> 
>  /etc/pam.d/system-auth 
> 
> auth       	required	pam_env.so
> ...

 

----------

## X-Guardian

 *Quote:*   

> 
> 
>  /etc/smbldap/smbldap.conf 
> 
> ##############################################################################
> ...

 

 *Quote:*   

> 
> 
>  /etc/smbldap/smbldap_bind.conf 
> 
> slaveDN="cn=Manager,dc=NOMDOMAIN,dc=fr"
> ...

 

----------

## Tony Clifton

As-tu modifié la base des registres des postes windows pour joindre ton PDC samba  ?

----------

## Tony Clifton

Et sur les postes linux, est-ce que les commandes "ldapsearch" et "getent passwd" semblent fonctionner ?

----------

## X-Guardian

Salut,

J'ai fait quelques modifications :

- Pour les postes sous XP, j'ai changé l'une des valeurs indiqués, mais je n'arrive toujours pas à me connecter : "le chemin réseau est introuvable" ou quelque chose dans le genre.

- Pour les postes sous Linux, "getent passwd root" ne me donne qu'une seule ligne, et "ldapsearch" marche si je lui donne tous les paramètres de recherche.

Sinon, comment avez-vous mis en place votre mécanisme d'authentification ?

@+,

Guile.

----------

## Tony Clifton

 *X-Guardian wrote:*   

> - Pour les postes sous XP, j'ai changé l'une des valeurs indiqués, mais je n'arrive toujours pas à me connecter : "le chemin réseau est introuvable" ou quelque chose dans le genre.

 

Bah il n'y en a qu'une à modifier (enfin si mes souvenirs sont bons), c'est requiresignorseal qu'il faut mettre à 0 (toujours si mes souvenirs sont bon   :Smile:  ).

Essaye la config suivante :

Stoppe le serveur LDAP :

```
/etc/init.d/slapd stop
```

 */etc/openldap/slapd.conf wrote:*   

> include /etc/openldap/schema/core.schema
> 
> include /etc/openldap/schema/cosine.schema
> 
> include /etc/openldap/schema/inetorgperson.schema
> ...

 

 */etc/conf.d/slapd wrote:*   

> OPTS="-h 'ldaps:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"

 

Lance le serveur LDAP :

```
/etc/init.d/slapd start
```

 */etc/openldap/ldap.conf wrote:*   

> BASE dc=PACTHAINAUT, dc=FR
> 
> URI ldaps://SERVEUR_LDAP.NOMDOMAIN.FR:636/
> 
> TLS_REQCERT allow

 

Normalement le ldapsearch (tout court) devrait donné un résultat (sans afficher les mots de passe)

Tu me dis si c'est ok et on continue

----------

## X-Guardian

Salut,

Désolé pour la réponse tardive ... toujours autant de problème avec notre ligne adsl ...

Bon, j'ai réussi à connecter les clients sur mon domaine.

Mon erreur était assez simple, ne pas mettre de "." pour le WORKGROUP ... 

Pour le moment, c'est encore inutilisable, je n'arrive pas à créer de profil itinérant pour les utilisateurs.

- Soit le client m'indique que le profil existant n'est pas sécurisé.

Pourtant, le profil est créé à partir du poste client, avec les droits de l'utilisateur cible.

Le tout est déposé sur un partage du serveur, dont le repertoire est créé avec les droits de cet utilisateur.

- Soit, pour un nouvel utilisateur, il me répond qu'il ne peux accéder au partage (problème de droit), mais me créait bien le dossier utilisateur dans le partage, et je peux en tant que cet utilisateur créer/supprimer/modifier ...

Concernant ldapsearch :

Sans activer le SSL, il me répond : 

 *Quote:*   

> ldap_bind: Can't contact LDAP server (-1)

 

En "activant" le SSL, j'ai le droit à :

 *Quote:*   

> 
> 
> ldap_bind: Can't contact LDAP server (-1)
> 
> additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 
> ...

 

J'ai du soucis avec le certificat, du notament au fait que certaines lignes du PDF de IDEALX sont tronqués, du coup je n'arrivais pas à trouver comment il créait le .pem.

Au début, j'ai utilisé cette méthode, trouvé sur le net, mais j'obtiens le message d'erreur ci-dessus.

 *Quote:*   

> cd /etc/ssl && openssl req -config /etc/ssl/openssl.cnf -new -x509 -nodes -out ldap.pem -keyout /etc/openldap/ssl/ldap.pem -days 999999

 

Bon, là comme j'ai récupéré le net depuis 20 minutes, je vais y jeter un oeil dès que je le pourrais.

@+,

Guile.

----------

## Tony Clifton

Pour les certificats SSL c'est bon.

As-tu remplacé tes fichiers de configuration par ceux que je t'es suggéré ?

EDIT : quelles sont les droits sur les certificats ?

----------

## X-Guardian

Salut,

Les fichiers de conf me semblent bon.

(Heu ... En fait, je voulais éviter de mettre le vrai domaine, c'est pour cela que j'avais mis "NOMDOMAIN" dans les exemples ... désolé)

Les certificats sont en mode lecture/écriture pour root, et lecture pour les autres.

Voilà.

@+,

Guile.

----------

## Tony Clifton

 *X-Guardian wrote:*   

> Les fichiers de conf me semblent bon.

 

Si tu as conservé les fichiers que tu as posté, c'est normal que ça ne marche pas, car il y a plusieurs erreurs !

----------

## X-Guardian

Salut,

Heu ... zarb, il me semblait avoir répondu il y a déjà quelques jours ... zut, j'ai du oublier "d'envoyer" et j'ai fais autre chose ensuite ...

Enfin ...

Tony Clifton -> J'ai modifié pas mal les fichiers de conf depuis lors (en fait, je ne fais que cela ^^)

Je galère pas mal avec ssl, même si je ne vois pas toujours pourquoi ...

Les "ldapsearch" marchent très bien sur toutes les machines.

Par contre, Samba/smbldap ralent toujours autant pour la connexion due au SSL/TLS. 

Pas de soucis dès que je désactive la fonction des 2 cotés. (Mais ce n'est pas le but non plus)

Je vais voir pour poster logs/messages d'erreur/fichiers de conf dans la journée. Si on m'en laisse le temps ...

Edit : Voilà à titre d'exemple l'erreur que me retourne smbldap-populate :

 *Quote:*   

> 
> 
> erreur LDAP: Can't contact master ldap server (IO::Socket::INET: connect: Connexion refusée) at /usr/sbin//smbldap_tools.pm line 270.
> 
> 

 

Je précise bien que si je fais "ldapsearch" seul ou avec des options, cela marche sans problème.

Par contre si je force la connexion sécurisée avec les options "-zZ", alors il me répond :

 *Quote:*   

> 
> 
> ldap_start_tls: Can't contact LDAP server (-1)
> 
> 

 

@+,

Guile.

----------

## Tony Clifton

As-tu bien mis : "passdb backend = ldapsam:ldaps://"IP_SERVEUR_LDAP"/"

Vérifie que tu as bien compilé samba avec ldapsam (normalement oui puisqu'il marche sans SSL, mais j'avais eu des soucis avec certains ebuilds qui ne proposaient plus ce flag).

Et dernière vérif, as-tu bien fait le "smbpasswd -w passwd" ?

----------

## X-Guardian

Salut,

Exact, je n'avais pas mis le "s".

Seulement maintenant Samaba refuse de redémarrer, il n'arrive pas à correspondre avec LDAP :

 *Quote:*   

> 
> 
> Failed to issue the StartTLS instruction: Can't contact LDAP server
> 
> [2007/03/27 10:36:46, 1] lib/smbldap.c:another_ldap_try(1150)
> ...

 

Edit : 

autre problème lorsque je refais un "net getlocalsid" suite à une erreur vue dans le log : '/var/log/samba/smbd.log'

 *Quote:*   

> 
> 
> 2007/03/27 10:40:05, 0] lib/smbldap.c:smb_ldap_start_tls(612)
> 
>   Failed to issue the StartTLS instruction: Operations error
> ...

 

----------

## X-Guardian

Re,

Bon, en fait Samba démarre un peu comme il veut, mais continue tout le temps a me mettre la même ereur dans les logs :

 *Quote:*   

> 
> 
> Serv_Archives guardian # /etc/init.d/samba restart
> 
>  * samba -> stop: smbd ...                                                [ ok ]
> ...

 

Et ainsi de suite (je précise que je lance les commandes les unes à la suites des autres).

J'ai donc un soucis avec TLS (du moins c'est ce dont j'ai l'impression).

Même directement sur le serveur, la commande :

 *Quote:*   

> 
> 
> ldappasswd -x -h localhost -D "cn=Manager,dc=pacthainaut,dc=fr" -s MonPassword;) -W cn=samba,ou=DSA,dc=pacthainaut,dc=fr -W -d 255
> 
> 

 

me retourne une erreur :

 *Quote:*   

> 
> 
> Enter LDAP Password:
> 
> ldap_create
> ...

 

Avec "localhost", ou l'IP, ou le nom complet du serveur, suffixe ou non.

@+,

Guile.

----------

## Tony Clifton

 *X-Guardian wrote:*   

>  *Quote:*   
> 
> ldappasswd -x -h localhost -D "cn=Manager,dc=pacthainaut,dc=fr" -s MonPassword;) -W cn=samba,ou=DSA,dc=pacthainaut,dc=fr -W -d 255
> 
>  
> ...

 

Tu n'es pas en SSL !

envoie les fichiers de config suivant :

/etc/openldap/slapd.conf

/etc/openldap/ldap.conf

/etc/conf.d/slapd

/etc/ldap.conf

----------

## Leander256

Jute une petite remarque, de mémoire il me semble qu'on peut aussi établir une connexion sécurisée par le port 389 en utilisant TLS, ce qui fait qu'en fonction des capacités du client, le serveur utilisera ou non l'encryption sur la communication.

----------

## Tony Clifton

J'ai jamais essayé, mais oui ça doit effectivement être possible (comme sur un serveur mail)

----------

## X-Guardian

Salut,

Merci de vos réponses  :Wink: 

Je vous envoie tout cela dès que possible.

J'ai envie de finir ce projet, même si je compte bientôt quitter mon emploi :/

@+,

Guile.

----------

## X-Guardian

Re,

Voici les fichiers de conf du serveur :

/etc/conf.d/slapd

 *Quote:*   

> 
> 
> OPTS="-h 'ldaps:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
> 
> 

 

/etc/openldap/slapd.conf

 *Quote:*   

> 
> 
> include		/etc/openldap/schema/core.schema
> 
> include 	/etc/openldap/schema/cosine.schema
> ...

 

/etc/openldap/ldap.conf

 *Quote:*   

> 
> 
> BASE dc=pacthainaut, dc=fr
> 
> URI ldaps://Serv_BDD.pacthainaut.fr:636/
> ...

 

/etc/ldap.conf

 *Quote:*   

> 
> 
> BASE         dc=pacthainaut,dc=fr
> 
> URI          ldaps://Serv_BDD.pacthainaut.fr:636/
> ...

 

Voilou !  :Wink: 

@+,

Guile.

----------

## X-Guardian

Salut,

J'ai lu pas mal de truc sur le net, et apparemment, SSL refuserait les certificats auto-signés.

J'ai fait un test tout simple : ldapsearch -d 256, dont voici le message de sortie :

 *Quote:*   

> 
> 
> TLS certificate verification: depth: 1, err: 19, subject: /C=FR/ST=France/O=PACT DU HAINAUT/OU=DSA/CN=Serv_BDD.pacthainaut.fr/emailAddress=guardian@pacthainaut.fr, issuer: /C=FR/ST=France/O=PACT DU HAINAUT/OU=DSA/CN=Serv_BDD.pacthainaut.fr/emailAddress=guardian@pacthainaut.fr
> 
> TLS certificate verification: Error, self signed certificate in certificate chain
> ...

 

Que puis-je faire ?

@+,

Guile.

----------

## X-Guardian

Salut,

Ce que je vais dire peut paraitre débile, mais je ne l'avais pas vu comme cela, ni d'ailleurs sur les autres commentaires trouvés par-ci et par-là non plus.

J'ai enlevé tout ce qui concerné SSL dans mes fichiers de conf.

Pourtant j'avais encore des soucis lorsque je faisais un simple "ldapsearch" sur les machines clientes. (Impossible de binder le serveur)

Bizarrement,  il suffisait de faire un "ldapsearch -h IP_SERVEUR" et cela marchait.

Le fichier /etc/ldap.conf contenait bien l'adresse du serveur.

Pour remédier à ce problème, plusieurs personnes se créaient un fichier .ldaprc dans leur home avec quelques commandes comme l'ip du serveur, le suffixe, ...

Effectivement, cela marche, mais comme c'est précisait, les autres applis tel qure Samba, n'en tiennent pas compte.

Du coup, j'ai fait tourner un peu mon cerveau (et après je suis allé me coucher :p), et je me suis dis que le fichier /etc/ldap.conf n'était pas utilisé par les commandes ldap.

J'ai donc fait le test en mettant tout en commentaire dans ce fichier sur le serveur, et ldapsearch marchait sans problème.

Donc seul le fichier /etc/openldap/ldap.conf à l'air d'intéresser ldapsearch.

J'en ai donc fait une copie sur mes clients, et tout marche   :Shocked:  .

Bon, me reste plus qu'à trouver pour SSL et ce sera bon (mais je vais voir aussi pour SASL par la suite tant qu'à faire).

Si quelqu'un à une idée pour la création et sauvegarde des profils itinérants, qu'il me le dise, çà ne marche toujours pas pour moi. 

(différents messages d'erreur allant du "je ne trouve pas le chemin réseau", à "le profil existe mais n'est pas protégé", un truc comme çà)

@+,

Guile.

----------

## Tony Clifton

Les fichiers de config ont l'air OK  :Wink: 

Pour les commandes ldap, oui il n'y a que le fichier /etc/openldap/ldap.conf qui importe. Le fichier /etc/ldap.conf sert à l'authentification via ldap (faut que tu puisses authentifier tes utilisateurs ldap sur le serveur samba, enfin je crois  :Confused:  ).

----------

## X-Guardian

Salut,

J'arrive enfin à connecter les clients sous XP Pro au domaine.

J'ai du modifier ces clefs de registre sur chaques clients :

 *Quote:*   

> 
> 
> [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters]
> 
> "RequireSignOrSeal"=dword:00000000
> ...

 

La dernière n'est pas utilisé sur divers forums, pourtant sans elle, je n'arrive pas à connecter mes machines.

J'ai mis un .reg dans le dossier netlogon mais je ne suis pas sûr qu'il soit exécuté.

Pour le moment, je le lance à la main.

Il me reste encore pas mal de choses à faire :

* Créer un partage privé par groupe automatiquement : "/partages/prive/$GROUPE/$USER"

où les utilisateurs d'un même groupe peuvent naviguer dans leur dossier groupe et les dossiers utilisateurs de ces membres.

mais seul le propriétaire du dossier $USER peut faire des modifs (les autres peuvent lire et exécuter) => 750

* Créer un partage public par groupe automatiquement : "/partages/public/$GROUPE/$USER"

où les utilisateurs peuvent naviguer dans tous les dossiers groupe et les dossiers utilisateurs de ces membres.

mais seul le propriétaire du dossier $USER peut faire des modifs (les autres peuvent lire et exécuter) => 755

* Voir pourquoi les nouveaux utilisateurs sont mis automatiquement dans le groupe "Domain Admin" du LDAP.

Pourquoi pas dans "Domain Users" par défaut ??? 

J'ai eu beaucoup de difficultés au début pour avoir un profil itinérant utilisable ... bien faire attention aux droits et au propriétaire des différents répertoires :p

* Trouver comment, soit en faire des utilisateurs avec pouvoir, soit des admins, ou au contraire, des utilisateurs avec droits limités. 

J'imagine que cela vient justement des différents groupes existants dans le LDAP gràce à "smbldap-populate"

* Faire en sorte que le répertoire "profiles\%U" ne soit pas monté/visible par l'utilisateur. 

URGENT : Trouver une connexion internet qui ne coupe pas plusieurs fois par jours et pendant plusieurs heures ... (pas eu de net au boulot depuis hier midi, jusqu'à aujourd'hui 15hXX ...)

FT/Orange ne voyant toujours pas d'où vient le problème (tout comme la livebox qui ne se déconnecte pas toutes les 24h ... On en est à la deuxième en 2 mois ...). 

Si je pose ces questions ici, c'est que la connexion étant instable, je n'ai pas tout le loisir de parcourir le net, donc si vous avez quelques idées  :Wink: 

@+ et merci encore  :Smile: 

Guile.

----------

## Tony Clifton

 *X-Guardian wrote:*   

> J'ai mis un .reg dans le dossier netlogon mais je ne suis pas sûr qu'il soit exécuté.
> 
> Pour le moment, je le lance à la main.

 

Oui, ça ne sert à rien puisque tu n'as besoin de le lancer que lorsque tu joints un poste au domaine.

----------

