1

Voilà, j'essaie de mettre en place un petit serveur OpenLDAP perso sur une Debian testing (Etch)
il marche quand je ne cherche pas à utiliser la couche SSL, mais ça ne marche pas quand j'utilise SSL
Dans mon fichier de configuration, j'ai
/etc/ldap/slapd.conf
#certificats :)
TLSCipherSuite          HIGH:MEDIUM:+SSLv2
TLSCACertificateFile    /etc/ldap/ssl/CA.cert
TLSCertificateFile      /etc/ldap/ssl/serveur.cert
TLSVerifyClient         never
TLSCertificateKeyFile   /etc/ldap/ssl/serveur.key

/etc/ldap/ldap.conf
BASE dc=mon,dc=domaine,dc=org
URI ldaps://parallels.mon.domaine.org:636
TLS_CACERT      /etc/ldap/ssl/CA.cert
TLS_REQCERT     demand

Dans mon /etc/init.d/slapd
reason="`start-stop-daemon --start --quiet --oknodo \
                        --pidfile "$SLAPD_PIDFILE" \
                        --exec /usr/sbin/slapd -- -h 'ldap:/// ldaps:///' $SLAPD_OPTIONS 2>&1`"



Quand je fais
ldapsearch -H ldap://parallels.mon.domaine.org -x -b "dc=mon,dc=domaine,dc=org" -LLL -D "cn=admin,dc=mon,dc=domaine,dc=org" -w monsuperpassword -v
Ca marche, j'ai bien des réponses, mais quand je fais
ldapsearch -H ldaps://parallels.mon.domaine.org -x -b "dc=mon,dc=domaine,dc=org" -LLL -D "cn=admin,dc=mon,dc=domaine,dc=org" -w monsuperpassword -v
il me dit qu'il ne peut pas se connecter au serveur
ldap_initialize( ldaps://parallels.mon.domaine.org )
ldap_bind: Can't contact LDAP server (-1)


tsss
A priori, sur la Etch, OpenLDAP est fourni compilé avec OpenSSL (contrairement à la Sarge), mais je ne sais pas comment le vérifier.
Comme le package slapd nécessite OpenSSL, je suppose quand même que c'est bon.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

2

OpenSSL est bien configuré ? Génère un bon certificat ?
le port par défaut associé à ldaps est le bon ? (ce n'est pas le même que pour ldap normal)
avatar

3

Euh pour la bonne configuration d'OpenSSL, c'est dur à dire grin j'espère que oui cheeky

j'ai suivi à la lettre ce qu'ils disaient de faire dans http://www-id.imag.fr/~svarrett/download/polys/Tutorial_LDAP_HTML/node4.html#SECTION00041200000000000000

En fait, j'ai un peu l'impression que c'est plutôt un problème de port (lui dire d'écouter le port 636 et non 389), mais normalement pour lui dire d'écouter le 636 c'est le -h 'http://ldap:/// http://ldaps:///' du /etc/init.d/slapd qui le fait (et la ligne est bien appellée, j'ai vérifié)

Bon, va falloir que je refasse des tests chez moi,là plus rien ne marche sad Il doit s'emmêler les pinceaux (changement d'adresse IP quand je suis au boulot)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

Finalement, j'ai reformaté ma machine (c'est une machine virtuelle, et j'ai un script qui me réinstalle quasiment tout) et ça remarche trifus
pourtant, les fichiers de configuration étaient les mêmes, je ne vois pas ce qui ne marchaient pas.
Et au passage, j'ai pu résoudre mon problème, c'était effectivement le certificat SSL qui n'était pas correct, quand on me demandait mon nom,j'ai mis mon nom au lieu du nom de la machine triso

va falloir que je comprenne maintenant pourquoi les requêtes marchent en ligne de commande mais pas dans le carnet d'adresse :/
(oui, les deux sont sur le même port, et le carnet d'adresse marche en non crypté ; ptêt qu'il faut du TLS pour ldap et le carnet d'adresse n'offre que du SSL v2 ?

pourtant j'ai l'option TLSCipherSuite HIGH:MEDIUM:+SSLv2 activée ...)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

5

Bon, je sens que je vais avoir encore qqes questions ... #triange#

Quand je veux créer un nouveau posixAccount, il me demande le uidNumber et le gidNumber.
Mon souci, c'est qu'a priori ils ne sont pas définis vu qu'on veut les créer confus

note : l'authentification LDAP n'est pas encore installée pour les comptes linux, je pensais créer une entrée LDAP de type posixaccount avant de me lancer là-dedans smile
Devrais-je commencer par faire cette authentification ?

Après une rapide recherche, j'ai l'impression que oui :/
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

6

Non pas forcément
Par contre, tu dois définir une entrée à la racine de ton annuaire... Chez nous, on a à la racine un truc qui se rapproche de :
dc=mon,dcentreprise,dc=fr

- ou=People
- ou=Groups
- ou=Worksations
- globalMyEntreprise=Informations

globalMyEntreprise=Informations n'est pas un compte utilisateur ou de quoi que ce soit, c'est une entrée de données qui contient des attributs tels que
nextUidNumber
nextGidNumber
nextSambaSIDNumber
baseDirectory
...

globalMyEnterprise est le discriminant d'une classe globalMyEnterpriseInfo définie manuellement (on peut aussi utiliser sambaDomainName des classes SambaDomain et SambaUnixIdPool si on décide de travailler avec un domaine SaMBa géré avec LDAP, les attributs demandés se recoupend).

Cette entrée permet de contenir la valeur de l'auto-incrément des uid et des gid de l'annuaire. Habituellement, on définit ça ainsi :
- Les entrées utilisateur de l'annuaire ont un uid supérieur à 10000 (sauf root, bien sûr).
- Le script de création d'utilisateur(s) va piocher la valeur qui se trouve dans Informations/nextUidNumber, l'affecter au nouvel utilisateur et incrémenter (tout est manuel, c'est pour ça qu'il vaut mieux passer par des scripts) la valeur nextUidNumber
- Les entrées de groupes de l'annuaire ont un gid supérieur à 10000 (sauf root)
- Le script de création de groupe va piocher la valeur qui... (même topo)

Ajout et suppressions d'utilisateurs dans un groupe :
Comme tu as pu le voir, rien n'est automatique avec LDAP (sauf les dépendances d'attributs en fonction des classes héritées ainsi que les dépendances de classes). Il n'y a aucun test d'unicité sauf sur le dn, et la mise à jour des attributs croisés ne se fait pas toute seule.
Résultat, lorsque tu fais dépendre l'utilisateur Lambda (uid=10000) du groupe 10006, il faut aussi que tu affectes au groupe ou=Groups,gid=10006 une valeur correspondant à son dn, son uid ou son uidNumber (ça, c'est un choix personnel, nous on est parti sur l'uid comme discriminant).
Et ne pas oublier aussi lorsque tu supprimes un utilisateur de supprimer son entrée du groupe correspondant.


Bon courage grin
avatar

7

Erf

bon, bah je vais avoir de quoi m'occuper tripo
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

8

Ca avance un peu, mais l'authentification ne marche toujours pas cry

quand je fais
su flanby8 quand je suis en root, ça marche
mais la même chose quand je suis déjà loggué en autre chose que root ne marche pas. On dirait donc que c'est le mot de passe qui déconne :/
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

9

tes mots de passes sont cryptés ?
avatar

10

l'attribut en question est userPassword et il est crypté avec sha1

{SHA}VS5+hA1zqbxNJS16I2cZduHmLII==

mais j'ai également essayé en clair, en md5 et sans mot de passe

l'utilisateur concerné n'existe que dans la base LDAP, pas dans les fichiers passwd
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

11

Et l'utilisateur en question a un shell affecté au niveau de ses attributs Posix ? (je ne sais plus s'il est capable de se débrouiller sans)
A quoi ressemble nss.conf ?
avatar

12

Euh a priori il n'a pas de shell.
mais ce qui est bizarre, c'est que à partir du login root, je peux me logguer avec ce compte (vu qu'il ne demande pas le password)

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' 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



@(#)$Id: ldap.conf,v 2.47 2006/05/15 08:13:44 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#

# Your LDAP server. Must be resolvable without using LDAP.
# The distinguished name of the search base.
base ou=users,dc=plop,dc=dyndns,dc=org

# Another way to specify your LDAP server is to provide an
uri ldap://parallels.plop.dyndns.org/

# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3

# The distinguished name to bind to the server with.
# Optional: default is to bind anonymously.
# Please do not put double quotes around it as they
# would be included literally.
binddn cn=admin,dc=plop,dc=dyndns,dc=org

# The credentials to bind with. 
# Optional: default is no credential.
bindpw monsuperpassword
rootbinddn cn=admin,dc=plop,dc=dyndns,dc=org
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

13

Tu utilises quoi comme navigateur LDAP ? Si tu as LDAP Browser, tu peux faire un test de mot de passe...
Et si tu lances openldap en mode debug (slapd -d9), tu as quoi comme log ?
Edit : et est-ce que tu arrives à binder l'annuaire en utilisant ton utilisateur flanby8 ?
avatar

14

bon, dans les fichiers /etc/pam.d/common-auth, common-session, common-passwd et common-account, j'ai mis des lignes du genre
"auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required pam_unix.so nullok_secure
auth [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore authinfo_unavail=ignore] /lib/security/pam_ldap.so"

et maintenant, il me demande le mot de passe puis le mot de passe LDAP (et ça n'a pas l'air de lui plaire cheeky)
je vais essayer de faire slapd -d9 smile
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

15

sur ma machine j'ai ça pour /etc/pam.d/system-auth
auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        sufficient    /lib/security/pam_ldap.so use_first_pass
auth        required      /lib/security/pam_deny.so

account     required      /lib/security/pam_unix.so
account     sufficient    /lib/security/pam_ldap.so

password    required      /lib/security/pam_cracklib.so retry=3 type=
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 shadow
password    sufficient    /lib/security/pam_ldap.so use_authtok
password    required      /lib/security/pam_deny.so

session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so
session     optional      /lib/security/pam_ldap.so

Si ça peut t'aider... (là, ça authentifie avec ldap en local mais pas en session ssh)
avatar

16

bon, j'ai fait un slapd -d 9, et voilà ce que ça donne
(je le poste surtout pour moi en fait, flemme d'ouvrir textedit grin)

login du type parallels:~# su flanby8
daemon: activity on 1 descriptor
daemon: activity on: 16r
daemon: read activity on 16
connection_get(16): got connid=4
connection_read(16): checking for input on id=4
ber_get_next
ber_get_next: tag 0x30 len 5 contents:
ber_get_next
ber_get_next on fd 16 failed errno=0 (Success)
connection_read(16): input error=-2 id=4, closing.
connection_closing: readying conn=4 sd=16 for close
connection_close: deferring conn=4 sd=16
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
daemon: activity on 1 descriptor
daemon: waked
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_unbind
connection_resched: attempting closing conn=4 sd=16
connection_close: conn=4 sd=16
daemon: removing 16
daemon: activity on 1 descriptor
>>> slap_listener(ldap:///)daemon: listen=9, new connection on 16
daemon: added 16r (active) listener=(nil)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
daemon: activity on 1 descriptor
daemon: activity on: 16r
daemon: read activity on 16
connection_get(16): got connid=5
connection_read(16): checking for input on id=5
ber_get_next
ber_get_next: tag 0x30 len 57 contents:
ber_get_next
ber_get_next on fd 16 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>, <cn=admin,dc=19pouces,dc=dyndns,dc=org>
do_bind: version=3 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org" method=128
bdb_dn2entry("cn=admin,dc=19pouces,dc=dyndns,dc=org")
do_bind: v3 bind: "cn=admin,dc=19pouces,dc=dyndns,dc=org" to "cn=admin,dc=19pouces,dc=dyndns,dc=org"
send_ldap_result: conn=5 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 16
daemon: activity on 1 descriptor
daemon: activity on: 16r
daemon: read activity on 16
connection_get(16): got connid=5
connection_read(16): checking for input on id=5
ber_get_next
ber_get_next: tag 0x30 len 218 contents:
ber_get_next
ber_get_next on fd 16 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>, <ou=users,dc=19pouces,dc=dyndns,dc=org>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=5 op=1 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org"
=> bdb_search
bdb_dn2entry("ou=users,dc=19pouces,dc=dyndns,dc=org")
search_candidates: base="ou=users,dc=19pouces,dc=dyndns,dc=org" (0x00000004) scope=2
=> bdb_dn2idl("ou=users,dc=19pouces,dc=dyndns,dc=org")
<= bdb_dn2idl: id=9 first=4 last=20
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read 8 candidates
<= bdb_equality_candidates: id=8, first=10, last=20
=> bdb_equality_candidates (uidNumber)
<= bdb_equality_candidates: (uidNumber) index_param failed (18)
bdb_search_candidates: id=7 first=10 last=20
bdb_search: 10 does not match filter
bdb_search: 15 does not match filter
bdb_search: 16 does not match filter
bdb_search: 17 does not match filter
bdb_search: 18 does not match filter
bdb_search: 19 does not match filter
=> send_search_entry: conn 5 dn="cn=flanby8,ou=users,dc=19pouces,dc=dyndns,dc=org"
ber_flush: 277 bytes to sd 16
<= send_search_entry: conn 5 exit.
send_ldap_result: conn=5 op=1 p=3
send_ldap_response: msgid=2 tag=101 err=0
ber_flush: 14 bytes to sd 16

login de type parallels:/root$ su flanby8


daemon: activity on 1 descriptor
>>> slap_listener(ldap:///)daemon: listen=9, new connection on 17
daemon: added 17r (active) listener=(nil)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
daemon: activity on 1 descriptor
daemon: activity on: 17r
daemon: read activity on 17
connection_get(17): got connid=6
connection_read(17): checking for input on id=6
ber_get_next
ber_get_next: tag 0x30 len 57 contents:
ber_get_next
ber_get_next on fd 17 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>, <cn=admin,dc=19pouces,dc=dyndns,dc=org>
do_bind: version=3 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org" method=128
bdb_dn2entry("cn=admin,dc=19pouces,dc=dyndns,dc=org")
do_bind: v3 bind: "cn=admin,dc=19pouces,dc=dyndns,dc=org" to "cn=admin,dc=19pouces,dc=dyndns,dc=org"
send_ldap_result: conn=6 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 17
daemon: activity on 1 descriptor
daemon: activity on: 17r
daemon: read activity on 17
connection_get(17): got connid=6
connection_read(17): checking for input on id=6
ber_get_next
ber_get_next: tag 0x30 len 218 contents:
ber_get_next
ber_get_next on fd 17 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>, <ou=users,dc=19pouces,dc=dyndns,dc=org>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=6 op=1 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org"
=> bdb_search
bdb_dn2entry("ou=users,dc=19pouces,dc=dyndns,dc=org")
search_candidates: base="ou=users,dc=19pouces,dc=dyndns,dc=org" (0x00000004) scope=2
=> bdb_dn2idl("ou=users,dc=19pouces,dc=dyndns,dc=org")
<= bdb_dn2idl: id=9 first=4 last=20
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read 8 candidates
<= bdb_equality_candidates: id=8, first=10, last=20
=> bdb_equality_candidates (uidNumber)
<= bdb_equality_candidates: (uidNumber) index_param failed (18)
bdb_search_candidates: id=7 first=10 last=20
bdb_search: 10 does not match filter
bdb_search: 15 does not match filter
bdb_search: 16 does not match filter
bdb_search: 17 does not match filter
bdb_search: 18 does not match filter
bdb_search: 19 does not match filter
=> send_search_entry: conn 6 dn="cn=flanby8,ou=users,dc=19pouces,dc=dyndns,dc=org"
ber_flush: 277 bytes to sd 17
<= send_search_entry: conn 6 exit.
send_ldap_result: conn=6 op=1 p=3
send_ldap_response: msgid=2 tag=101 err=0
ber_flush: 14 bytes to sd 17
daemon: activity on 1 descriptor
daemon: activity on: 17r
daemon: read activity on 17
connection_get(17): got connid=6
connection_read(17): checking for input on id=6
ber_get_next
ber_get_next: tag 0x30 len 214 contents:
ber_get_next
ber_get_next on fd 17 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>, <ou=users,dc=19pouces,dc=dyndns,dc=org>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=6 op=2 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org"
=> bdb_search
bdb_dn2entry("ou=users,dc=19pouces,dc=dyndns,dc=org")
search_candidates: base="ou=users,dc=19pouces,dc=dyndns,dc=org" (0x00000004) scope=2
=> bdb_dn2idl("ou=users,dc=19pouces,dc=dyndns,dc=org")
<= bdb_dn2idl: id=9 first=4 last=20
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read 8 candidates
<= bdb_equality_candidates: id=8, first=10, last=20
=> bdb_equality_candidates (uid)
<= bdb_equality_candidates: (uid) index_param failed (18)
bdb_search_candidates: id=7 first=10 last=20
bdb_search: 10 does not match filter
bdb_search: 15 does not match filter
bdb_search: 16 does not match filter
bdb_search: 17 does not match filter
bdb_search: 18 does not match filter
bdb_search: 19 does not match filter
=> send_search_entry: conn 6 dn="cn=flanby8,ou=users,dc=19pouces,dc=dyndns,dc=org"
ber_flush: 277 bytes to sd 17
<= send_search_entry: conn 6 exit.
send_ldap_result: conn=6 op=2 p=3
send_ldap_response: msgid=3 tag=101 err=0
ber_flush: 14 bytes to sd 17
daemon: activity on 1 descriptor
>>> slap_listener(ldap:///)daemon: listen=9, new connection on 18
daemon: added 18r (active) listener=(nil)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
daemon: activity on 1 descriptor
daemon: activity on: 18r
daemon: read activity on 18
connection_get(18): got connid=7
connection_read(18): checking for input on id=7
ber_get_next
ber_get_next: tag 0x30 len 57 contents:
ber_get_next
ber_get_next on fd 18 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>, <cn=admin,dc=19pouces,dc=dyndns,dc=org>
do_bind: version=3 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org" method=128
bdb_dn2entry("cn=admin,dc=19pouces,dc=dyndns,dc=org")
do_bind: v3 bind: "cn=admin,dc=19pouces,dc=dyndns,dc=org" to "cn=admin,dc=19pouces,dc=dyndns,dc=org"
send_ldap_result: conn=7 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 18
daemon: activity on 1 descriptor
daemon: activity on: 18r
daemon: read activity on 18
connection_get(18): got connid=7
connection_read(18): checking for input on id=7
ber_get_next
ber_get_next: tag 0x30 len 77 contents:
ber_get_next
ber_get_next on fd 18 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>, <ou=users,dc=19pouces,dc=dyndns,dc=org>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=7 op=1 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org"
=> bdb_search
bdb_dn2entry("ou=users,dc=19pouces,dc=dyndns,dc=org")
search_candidates: base="ou=users,dc=19pouces,dc=dyndns,dc=org" (0x00000004) scope=2
=> bdb_dn2idl("ou=users,dc=19pouces,dc=dyndns,dc=org")
<= bdb_dn2idl: id=9 first=4 last=20
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (uid)
<= bdb_equality_candidates: (uid) index_param failed (18)
bdb_search_candidates: id=9 first=4 last=20
bdb_search: 4 does not match filter
bdb_search: 9 does not match filter
bdb_search: 10 does not match filter
bdb_search: 15 does not match filter
bdb_search: 16 does not match filter
bdb_search: 17 does not match filter
bdb_search: 18 does not match filter
bdb_search: 19 does not match filter
=> send_search_entry: conn 7 dn="cn=flanby8,ou=users,dc=19pouces,dc=dyndns,dc=org"
ber_flush: 318 bytes to sd 18
<= send_search_entry: conn 7 exit.
send_ldap_result: conn=7 op=1 p=3
send_ldap_response: msgid=2 tag=101 err=0
ber_flush: 14 bytes to sd 18
daemon: activity on 1 descriptor
daemon: activity on: 18r
daemon: read activity on 18
connection_get(18): got connid=7
connection_read(18): checking for input on id=7
ber_get_next
ber_get_next: tag 0x30 len 57 contents:
ber_get_next
ber_get_next on fd 18 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <cn=admin,dc=19pouces,dc=dyndns,dc=org>, <cn=admin,dc=19pouces,dc=dyndns,dc=org>
do_bind: version=3 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org" method=128
bdb_dn2entry("cn=admin,dc=19pouces,dc=dyndns,dc=org")
do_bind: v3 bind: "cn=admin,dc=19pouces,dc=dyndns,dc=org" to "cn=admin,dc=19pouces,dc=dyndns,dc=org"
send_ldap_result: conn=7 op=2 p=3
send_ldap_response: msgid=3 tag=97 err=0
ber_flush: 14 bytes to sd 18
daemon: activity on 1 descriptor
daemon: activity on: 17r
daemon: read activity on 17
connection_get(17): got connid=6
connection_read(17): checking for input on id=6
ber_get_next
ber_get_next: tag 0x30 len 214 contents:
ber_get_next
ber_get_next on fd 17 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>
<<< dnPrettyNormal: <ou=users,dc=19pouces,dc=dyndns,dc=org>, <ou=users,dc=19pouces,dc=dyndns,dc=org>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=6 op=3 dn="cn=admin,dc=19pouces,dc=dyndns,dc=org"
=> bdb_search
bdb_dn2entry("ou=users,dc=19pouces,dc=dyndns,dc=org")
search_candidates: base="ou=users,dc=19pouces,dc=dyndns,dc=org" (0x00000004) scope=2
=> bdb_dn2idl("ou=users,dc=19pouces,dc=dyndns,dc=org")
<= bdb_dn2idl: id=9 first=4 last=20
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (objectClass)
=> key_read
<= bdb_index_read 8 candidates
<= bdb_equality_candidates: id=8, first=10, last=20
=> bdb_equality_candidates (uid)
<= bdb_equality_candidates: (uid) index_param failed (18)
bdb_search_candidates: id=7 first=10 last=20
bdb_search: 10 does not match filter
bdb_search: 15 does not match filter
bdb_search: 16 does not match filter
bdb_search: 17 does not match filter
bdb_search: 18 does not match filter
bdb_search: 19 does not match filter
=> send_search_entry: conn 6 dn="cn=flanby8,ou=users,dc=19pouces,dc=dyndns,dc=org"
ber_flush: 277 bytes to sd 17
<= send_search_entry: conn 6 exit.
send_ldap_result: conn=6 op=3 p=3
send_ldap_response: msgid=4 tag=101 err=0
ber_flush: 14 bytes to sd 17


et quand il me demande le password ldap ...

daemon: read activity on 18
connection_get(18): got connid=7
connection_read(18): checking for input on id=7
ber_get_next
ber_get_next: tag 0x30 len 5 contents:
ber_get_next
ber_get_next on fd 18 failed errno=0 (Success)
connection_read(18): input error=-2 id=7, closing.
connection_closing: readying conn=7 sd=18 for close
connection_close: deferring conn=7 sd=18
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
daemon: activity on 1 descriptor
daemon: waked
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: select: listen=8 active_threads=0 tvp=NULL
daemon: select: listen=9 active_threads=0 tvp=NULL
do_unbind
connection_resched: attempting closing conn=7 sd=18
connection_close: conn=7 sd=18
daemon: removing 18
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

17

x_x comment ça se fait que tu aies des logs aussi longs avec du -d9 grin (en fait, il n'y avait que la dernière partie qui m'intéressait... a priori, tout se passe bien là)
edit : (arg j'ai changé ma phrase en cours de route, au début c'était "que tes logs soient aussi courts" grin)
avatar

18

Nil (./17) :
x_x comment ça se fait que tes des logs aussi longs avec du -d9 grin (en fait, il n'y avait que la dernière partie qui m'intéressait... a priori, tout se passe bien là)

eeek

je vais essayer avec exactement la même config que toi
je n'ai pas cracklib, ça pourrait venir de là ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

19

Alors là aucune idée grin
avatar

20

bon, avec ta config, j'ai toujours
parallels:/root$ su flanby8
Password: 
su : Authentication failure

#Grrrr25#
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

21

Bon faut voir maintenant comment se passe un bind normal
(ah et n'oublie pas de redémarrer le serveur après chaque modif des fichiers de conf, je crois que pam ne se recharge qu'au démarrage)
avatar

22

le bind n'a pas l'air ok :/ faut que je regarde ce qu'il se passe ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

23

Bon, en fait j'ai trouvé love

il faut utiliser la méthode crypt pour coder les password, et pas md5 ou sha1 triso

merci de ton aide ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

24

Ah mince oui, c'est vrai (j'ai du installer Mcrypt et les fonctions associées pour bosser comme il faut en php=
avatar

25

et je viens de tester en ssh, ça marche oui

par contre, faut que je trouve comment faire pour qu'un script php puisse créer un utilisateur et surtout son dossier /home ainsi que définir l'utilisateur comme propriétaire de son /home
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

26

ldapadd, stou grin (si tu veux, je te balance demain ma bibliothèque perso de fonctions...)
avatar

27

Oui, mais si le dossier utilisateur n'est pas créé, ll se passe quoi ? hum


edit : sh: cd: /home/flanby10: Aucun fichier ou répertoire de ce type
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

28

mkdir /home/flanby10 trioui

dehors

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

29

Ben oué grin (exactement comme quand tu fais "su apache" dans une configuration de base grin)
(Chez nous, on ne crée pas [pas encore] de home directory. Il est renseigné à titre indicatif, c'est tout).
avatar

30

erf :/
j'aimerais bien que ça crée également le /home sad c'est con de faire une belle page web pour gérer toutes les options s'il faut lancer un script à la main juste après triso
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant