# [openldap] problèmes de mise en place

## reydelprusse

Bonjour,

c'est très simple, j'essaie de mettre en place un serveur OpenLDAP, je configure différents fichiers: /etc/openldap/slapd.conf, /etc/openldap/ldap.conf et mon fichier annuaire /var/lib/openldap-data/base.ldif.

j'ai mis en place Bind avec domtest.com qui marche.

Qu'est ce que je dois configurer de plus?

J'ai quelques difficultés au niveau du schema, je ne sais pas comment ça se configure.

merci de votre aide

----------

## reydelprusse

Est ce qu'il existe des commandes pour voir les erreurs dans les fichiers de configuration de openldap comme pour d'autres services.

merci

----------

## reydelprusse

Voilà mes fichiers de configuration pour openldap:

ldap.conf:

BASE 	dc=domtest, dc=com

URI	ldaps://serveurlinux.domtest.com:636/

TLs_REQCERT allow

-------------------------------------------------------------------

slapd.conf:

include	/etc/openldap/schema/core.schema

include	/etc/openldap/schema/cosine.schema

include	/etc/openldap/schema/inetorgperson.schema

include	/etc/openldap/schema/openldap.schema

include	/etc/openldap/schema/nis.schema

password-hash {md5}

TLSCertificateFile /etc/ssl/ldap.pem

TLSCertificateKeyFile /etc/openldap/ssl/ldap.pem

TLSCACertificateFile /etc/openldap/schema/ldap.pem

pidfile 	/var/run/openldap/slapd.pid

argsfile	/var/run/openldap/slapd.args

###################################

# BDB database definitions

###################################

database 	ldbm

suffix		"dc=domtest, dc=com"

rootdn		"cn=root, dc=domtest, dc=com"

rootpw		{md5}Xr4ilOzQ4pCOq3aQ0qbuaQ==

directory	/var/lib/openldap-data

index	objectClass	eq

-----------------------------------------------------------------------

base.ldif:

dn: dc=domtest, dc=com

objectClass: dcObject

dc=domtest

dn: cn=root, dc=domtest, dc=com

objectClass: organizationalRole

cn: root

----------

## reydelprusse

Bon j'ai pu démarrer le service slapd.

Mais je peux pas ajouter d'enregistrements:

écran

ldapadd -x -D "cn=steve,ou=users,dc=domtest,dc=com" -W -f /var/lib/openldap-ldbm/base.ldif

Enter LDAP Password:

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

----------

## babykart

ton user steve, est-ce qu'il a les droits d'écriture dans les ACL de la configuration d'openldap?

j'arrive un peu tard mais il y a une commande pratique pour voir si la config est bonne: donc coupe ton service slapd au préalable, fait tes modifs sur le fichier /etc/openldap/slapd.conf, et lance slapd en mode debug

```
# /usr/lib/openldap/slapd -f /etc/openldap/slapd.conf -d 666
```

si tout ce passe bien, un cntrl+c pour reprendre la main, et lancer le service

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

----------

## reydelprusse

J'ai essayé ta commande:

. pour slapd.conf = aucun problème

. pour base.ldif = il ne reconnaît aucun objet (dn, dc ...)

. pour ldap.conf = BASE et URI sont considérés comme faux!

je cherche pourquoi j'ai ces erreurs là, mais je vois pas.

pour base.ldif, est ce que ça peut venir des schemas?

----------

## babykart

il est normal que la création par .ldif ne marche pas vu que ta syntaxe est mauvaise:

```
dn: dc=domtest,dc=com

dc: domtest

objectClass: top

objectClass: dcObject

objectClass: dNSDomain
```

par ailleurs, il est inutile de créer ton user root vu qu'il est déjà renseigné en dur dans ton fichier /etc/openldap/slapd.conf...

même si tu ne le "voies" pas, il est bien là...

----------

## reydelprusse

Je ne peux plus arrêter slapd!!

----------

## babykart

ta config' ne doit pas être bonne...

pour arrêter le service:

```
# killall slapd

# /etc/init.d/slapd zap
```

----------

## reydelprusse

J'ai toujours le même problème, je ne peux pas me connecter au serveur.

si je fais 

smbldap-populate

erreur LDAP: Can't contact master ldap server (IO:Socket::INET: connect: Connection refused) at /usr/sbin//smbldap_tools.pm line 270

----------

## reydelprusse

Au niveau des ports, il n'y a rien. Seul named en utilise (tcp et udp).

netstat -laputen | grep slapd => il n'y a rien

----------

## babykart

quelle est ta ligne dans le fichier /etc/conf.d/slapd?

----------

## reydelprusse

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

----------

## babykart

 *reydelprusse wrote:*   

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

 

normal... avec cette ligne aucune écoute sur les ports TCP standards n'est ouverte...

pour que l'écoute se fasse en LDAP standard et LDAP+SSL la ligne suivante conviendra:

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

une fois relancer ton service tu fais un netstat -an qui devrait te faire apparaitre:

```
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN

unix  2      [ ACC ]     STREAM     LISTENING     8609   /var/run/openldap/slapd.sock
```

----------

## reydelprusse

Merci, slapd utilise bien les ports maintenant.

Mais mon problème demeure.

----------

## reydelprusse

si je fais ldapsearch -D "cn=root,dc=domtest,dc=com"

réponse: ldap_bind: Can't contact LDAP server (-1)

----------

## babykart

 *reydelprusse wrote:*   

> si je fais ldapsearch -D "cn=root,dc=domtest,dc=com"
> 
> réponse: ldap_bind: Can't contact LDAP server (-1)

 

si la configuration de ton fichier /etc/openldap/ldap.conf alors

```
# ldapsearch -D "cn=root,dc=domtest,dc=com" -W
```

ou

```
# ldapsearch -D "cn=root,dc=domtest,dc=com" -w secret
```

----------

## reydelprusse

Ca change rien à part qu'il me demande un mot de passe.

----------

## reydelprusse

Si je fais 

ldapadd -x -h 10.0.0.2 -D "cn=manager,dc=domtest,dc=com" -f smbldap-dsa.ldif -W

Réponse:

ldap_bind: Invalid credentials (49)

----------

## babykart

 *reydelprusse wrote:*   

> Ca change rien à part qu'il me demande un mot de passe.

 

bah s'il te demande un mot de passe, c'est que la connexion se fait correctement: à toi de rentrer le bon mot de passe...

----------

## reydelprusse

Le mot de passe, c'est celui que j'ai défini dans slapd.conf.

----------

## babykart

 *reydelprusse wrote:*   

> Le mot de passe, c'est celui que j'ai défini dans slapd.conf.

 

rien n'est moins sur..., à ta place je le mettrai en clair dans ton fichier /etc/openldap/slapd.conf, tu re-testes, et si cela marche, tu re-cryptes ton mot de passe...

----------

## reydelprusse

Je ne peux toujours pas joindre mon serveur, j'ai toujours le même problème.

----------

## reydelprusse

si je fais smbldap-populate:

cette ligne s'affiche:

Use of uninitialized value in substitution (s///) at /usr/sbin/smbldap_tools.pm line 135, <configfile> line 21

----------

## babykart

je ne comprends pas pourquoi tu essaies ce script si tu n'arrives pas à faire

```
# ldapsearch -D "cn=root,dc=domtest,dc=com" -W
```

par ailleurs, il me semble qu'il manque dans ton fichier /etc/openldap/slapd.conf quelque chose comme ça

```
 include                /etc/openldap/schema/samba.schema
```

----------

## reydelprusse

C'est toujours pareil.

----------

## reydelprusse

J'ai modifier ldap.conf:

URI     ldap://serveurlinux.domtest.com:389/

au lieu de 

URI     ldaps://.....

ldapsearch -D "cn=root,dc=domtest,dc=com" -w secret : ça marche

mais il me renvoie un utilisateur que j'avais essayé de créer:

dn: uid=testu,ou=users,dc=domtest,dc=com

...

Mais je peux pas faire ldapadd

----------

## babykart

 *reydelprusse wrote:*   

> C'est toujours pareil.

 

qu'est-ce qui est toujours pareil? 

arrives-tu à t'authentifier sur l'annuaire?

ou bien c'est ton script qui te génére des érreurs?

----------

## reydelprusse

IL y a différentes commandes qui "marchent":

ldapsearch -D "cn=root,dc=domtest,dc=com" -w secretJe peux entrer dans mon ldif et voir mon nom de domaine, mes ou, mes users, etc..

si je fais smbldap-useradd steve

il m'affiche Use of uninitialized value in substitution (s///) at /usr/sbin/openldap_tools.pm line 135, <CONFIGFILE> line 21

Si je recherche steve dans l'annuaire, ldapsearch -LLL (uid=steve)"

Il le trouve!!!

pareil si je veux changer le mot de passe d'un utilisateur:

smbldap-passwd steve

il m'affiche encore la ligne Use of uninitialized value ...

----------

## babykart

il s'agit du paquet smbldap-tools?

si oui, peus-tu donner ton fichier smbldap.conf...

----------

## reydelprusse

VOILA smbldap.conf:

SID="S-1-5-21....."

sambaDomain="domtest.com"

###################

# LDAP configuration

###################

slaveLDAP="10.0.0.2"

slavePort="389"

masterLDAP="10.0.0.2"

masterPort="389"

ldapTLS="0"

verify="require"

cafile="/etc/smbldap-tools/ca.pem

clientcert="/etc/smbldap-tools/smbldap-tools.pem"

clientkey="/etc/smbldap-tools/smbldap-tools.key"

suffix="dc=domtest,dc=com"

usersdn="ou=users,${suffix}"

computersdn="ou=computers,${suffix}"

groupsdn="ou=groups,${suffix}"

idmapdn="ou=idmap,${suffix}"

sambaUnixIdPooldn="sambaDomainName=domtest.com,${suffix}"

scope="sub"

hash_encrypt="SSHA"

crypt_salt_format="%s"

################################

# Unix Accounts Configuration

################################

userLoginShell="/bin/bash"

userhome="/home/%U"

userhomeDirectoryMode="700"

userGecos="System User"

defaultUserGid="513"

defaultComputerGID="515"

skeletonDir="/etc/skel"

defaultMaxPasswordAge="45"

################################

# Samba Configuration

################################

userSmbHome="\\serveurlinux\%U"

userProfile="\\serveulinux\profiles\%U"

userHomeDrive="H:"

userScript="script.bat"

mailDomain="domtest.com"

################################

# SMBLDAP-TOOLS Configuration

################################

with_smbpasswd="0"

smbpasswd="/usr/bin/smbpasswd"

slappasswd="/usr/sbin/slappasswd"

----------

## babykart

je ne pense pas que le problème vienne de là mais, dans la partie "LDAP configuration", tu as hash_encrypt="SSHA" alors que tu as, dans ton fichier /etc/openldap/slapd.conf, password-hash {md5}...

par ailleurs, tes fichiers /etc/smbldap-tools/smbldap-tools.* sont-ils éxistants?

autre chose, je ne sais si c'est juste une érreur de copier/coller

```
cafile="/etc/smbldap-tools/ca.pem 
```

mieux serait

```
cafile="/etc/smbldap-tools/ca.pem"
```

----------

## reydelprusse

cafile="..."  c'est juste une erreur de frappe.

Pour le cryptage du mot de passe, je n'en mets pas en fait, ni ssha ni md5, ça fonctionne bien.

L'erreur vient de smbldap-tools, mais je ne sais pas de quelle partie exactement.

Non les fichiers smbldap-tool.pem et smbldap-tools.key n'existent pas, 

c'est bien ces fichiers-là qu'il recherche, mais qu'est ce qu'ils contiennent?

----------

## babykart

ces fichiers sont les certificats...

donc, dans l'immédiat, commente les ces lignes ou génére les certificats...

----------

## reydelprusse

J'ai mis les lignes en commentaire mais j'ai toujours le même résultat.

Sinon j'ai un problème avec dhcp, voila mon fichier dhcpd.conf:

--------------------------------------- 

authoritative;

ddns-update-style on;

ddns-domainname "domtest.com";

default-lease-time 1200;

max-lease-time 1200;

ldap-server 10.0.0.2;

ldap-port 389;

subnet 10.0.0.0 netmask 255.0.0.0

{

range 10.0.0.5 10.0.0.10;

option subnet-mask 255.0.0.0;

option broadcast 10.255.255.255;

option domain-name-servers 10.0.0.2;

}

---------------------------------------

Je ne l'ai pas encore intégré à ldap, pour le schéma dhcp comment faut-il faire?

Autrement pour les scripts Perl, quels packages dois-je installer?

----------

## babykart

bon, pour smbldap-tools, je seche...   :Sad: 

pour net-misc/dhcp, tu peux facilement trouver sur le net des exemples de configuration, et pour la version ldap voici une doc': http://www.gentoofr.org/article-4.html

----------

## reydelprusse

Pour perl, il faut installer quoi exactement?

----------

## babykart

sois plus précis dans ta question stp...

----------

## reydelprusse

quels paquets?

 emerge ...

----------

## babykart

perl est normalement installé de base...

peut-être parles-tu du paquet dev-perl/perl-ldap?

désolé mais je ne comprends pas vraiment ce que tu veux...

----------

## reydelprusse

je voudrais juste faire des scripts perl et je voudrais savoir ce qu'il faut installer pour le faire, 

ou comme tu le dit il existe déjà ce qu'il faut.

En fait je veux faire un lien avec un Active Directory, si t'as des idées.

----------

## babykart

eh bien là je ne peux pas t'aider...

----------

## reydelprusse

J'ai autre problème: je n'arrive pas à installer pam_ldap!!!

si je fais emerge pam_ldap

il me dit que le fichier tar.gz n'est pas valide.

Je penses que tu ne pourra pas m'aider, mais au cas où.

----------

## babykart

j'ai la même érreur que toi: attendons le prochain emerge --sync...

----------

## reydelprusse

J suis en train de le faire : emerge --sync.

Est ce qu'on peut mettre à jour le système?

----------

## reydelprusse

Après emerge --sync

Il m'a dit que j'avais des fichiers à mettre à jour dans /etc et /etc/bind

Je viens d'installer pam_ldap!!!

----------

## babykart

pour ce faire, je te conseille d'utiliser dispatch-conf dont voici un petit howto...

----------

