OVH Cloud OVH Cloud

Impossible de se connecter en local si serveur ldap indisponible

16 réponses
Avatar
Tony GALMICHE
Bonjour à tous,

Je viens de mettre en place un serveur openldap sous Debian Sarge qui
doit servir à l'authentification de postes Windows et Linux (contrôleur
de domaine)

Quand le serveur ldap est disponible, tout fonctionne correctement.

Mais j'aimerais pouvoir me connecter avec un compte local (ex : root)
sur un portable sous Debian Sid quand celui-ci n'est pas connecté au réseau.

Avec ma configuration actuelle, dés que j'ajoute ldap au fichier
"nsswitch.conf" de ma sid et quelque soit la configuration de pam, je ne
peux plus me connecter avec un utilisateur local (même root) quand le
serveur ldap n'est pas accessible.

J'ai passé la journée à éplucher des tonnes de documentation et à faire
de nombreux essais avec pam, mais sans succès.

Si vous avez une idée pour résoudre mon problème, je suis preneur.

Vous trouverez ci-dessous mes fichiers de configurations.

Merci d'avance.

Tony






common-account
- account required pam_unix.so
- account sufficient pam_ldap.so

common-auth :
- auth required pam_env.so
- auth sufficient pam_unix.so
- auth sufficient pam_ldap.so use_first_pass
- auth required pam_deny.so

common-password :
- password sufficient pam_unix.so use_authtok md5 shadow
- password sufficient pam_ldap.so use_authtok
- password required pam_deny.so

common-session :
- session required pam_limits.so
- session required pam_unix.so
- session optional pam_ldap.so

login :
- @include common-auth
- @include common-account
- @include common-session
- @include common-password

nsswitch.conf :
- passwd: compat ldap
- group: compat ldap
- shadow: compat ldap










--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

6 réponses

1 2
Avatar
Tony GALMICHE
Guillaume a écrit :
Tony GALMICHE wrote:
Guillaume a écrit :

Tony GALMICHE wrote:

Guillaume a écrit :

Tony GALMICHE wrote:

Bonjour à tous,

Je viens de mettre en place un serveur openldap sous Debian Sarge
qui doit servir à l'authentification de postes Windows et Linux
(contrôleur de domaine)

Quand le serveur ldap est disponible, tout fonctionne correctement.

Mais j'aimerais pouvoir me connecter avec un compte local (ex :
root) sur un portable sous Debian Sid quand celui-ci n'est pas
connecté au réseau.

Avec ma configuration actuelle, dés que j'ajoute ldap au fichier
"nsswitch.conf" de ma sid et quelque soit la configuration de
pam, je ne peux plus me connecter avec un utilisateur local (même
root) quand le serveur ldap n'est pas accessible.

J'ai passé la journée à éplucher des tonnes de documentation et à
faire de nombreux essais avec pam, mais sans succès.

Si vous avez une idée pour résoudre mon problème, je suis preneur.

Vous trouverez ci-dessous mes fichiers de configurations.

Merci d'avance.

Tony

common-account
- account required pam_unix.so
- account sufficient pam_ldap.so

common-auth :
- auth required pam_env.so
- auth sufficient pam_unix.so
- auth sufficient pam_ldap.so use_first_pass
- auth required pam_deny.so

common-password :
- password sufficient pam_unix.so use_authtok md5 shadow
- password sufficient pam_ldap.so use_authtok
- password required pam_deny.so

common-session :
- session required pam_limits.so
- session required pam_unix.so
- session optional pam_ldap.so

login :
- @include common-auth
- @include common-account
- @include common-session
- @include common-password

nsswitch.conf :
- passwd: compat ldap
- group: compat ldap
- shadow: compat ldap






Pardon... j'avais pas vu.....
Ca m'apprendra à lire 4 mails en même temps !!! LOL




C'est des choses qui arrivent :-)

Moi, je mets un "try_first_pass" au lieu de "use_first_pass"....




Je viens d'essayer mais sans succès

Je rajoute rien dans common-session
et je mets toujours la ligne "pam_ldap.so" avant celle "pam_unix.so"




Ca j'ai déjà essayé et plein d'autres combinaisons aussi.

En fait dés que je met ldap dans nsswitch.conf et même si je ne met
pas pam_ldap.so dans pam, je n'arrive plus à me connecter.

En complément, voici les messages que j'ai dans "/var/log/auth.log"
dés que le réseau est coupé et que je veux me connecter avec un
compte local :

Jul 5 16:44:00 localhost login[7270]: nss_ldap: could not connect
to any LDAP server as cn­min,dc=tetras,dc=net - Can't contact
LDAP server
Jul 5 16:44:00 localhost login[7270]: nss_ldap: failed to bind to
LDAP server ldap://192.0.0.3: Can't contact LDAP server
Jul 5 16:44:00 localhost login[7270]: nss_ldap: reconnecting to
LDAP server (sleeping 32 seconds)...

Merci pour la réponse.

Tony





Ok, ca marche depuis d'autres machines ???



Oui, avec les postes Windows, je n'ai pas de problème :-)



Les machines windows n'accèdent pas au LDAP....
Elles accèdent à Samba qui lui accède à LDAP


En effet, mais en tout cas, ça marche tout seul :-)

Mais en poste client sous Linux, je n'ai que mon portable sous Debian
Sid.



Ok

C'est pas ton daemon slapd qui n'écoute que sur l'interface loopback ??



Ce démon est uniquement sur le serveur, mais c'est avec mon client
que j'ai des problèmes.
-> Sur le client openldap (slapd) n'est pas installé ni même
ldap-client.



C'est normal...
Enfin, cela dit moi, je mets les LDAP clients pour des raisons de
management en général !!


Si tu pouvais préciser, ça m'intéresse étant donné que je débute en
gestion de comptes via ldap.

Mais je confirme que mon client fonctionne correctement quand il est
connecté au réseau et qu'il arrive à joindre le serveur ldap.

tu as mis ton password ldap dans "/etc/ldap.secret" et ce fichier
est bien en droit "600" ???



Ce fichier est également sur le serveur, mais pas sur le client.



La, je te garantis qu'il doit être sur TOUS LES CLIENTS linux....
Sinon, tu auras certaines fonctionnalités qui ne fonctionneront pas
sur les clients....

D'autres parts, as-tu configuré ton serveur LDAP pour qu'on puisse le
parcourir en lecture uniquement sans être authentifié ???


Je n'ai pas touché aux droits configurés par défaut, mais je rappel
qu'il fonctionne parfaitement quand le portable est connecté au réseau.
J'arrive à me connecter avec un compte disponible uniquement sur ldap et
j'arrive a mettre des droits sur des fichiers pour les utilisateurs ldap.

Essaie d'arrêter le daemon "nscd" aussi.... il fait des trucs
bizarres parfois lui...



J'ai même essayé de le supprimer (purgé le paquet nscd)



Ok

C'est tout ce qui me passe par la tête pour l'instant...



Merci quand même.

Tu me confirmes que tu arrives à te connecter avec un compte local
sur un client Linux même si le serveur ldap situé sur un autre poste
n'est pas accessible?


Oui, sans aucun soucis....

Enfin, c'est un peu plus long !!


En fait, en attendant vraiment longtemps (plusieurs minutes), la
connexion en root fini par passer avec certaines configurations, mais
attendre plusieurs minutes, c'est un peu long juste pour se connecter :-)
-> Tu attends combien de temps quand le serveur ldap n'est pas accessible ?

Encore merci pour la réponse.

Je continuerai mes tests lundi, car je part 3 jours aux RMLL :-)

A bientôt.

Tony


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Julien Louis
On Wed, Jul 05, 2006 at 09:58:07PM +0200, Tony GALMICHE wrote:
Je n'ai pas touché à ce paramètre, mais par défaut, les comptes ldap commences bien à 1000.



Pour pouvoir fonctionner, il faut modifier les fichiers de config manuellement,
sinon, ca ne peut pas fonctionner, certaines valeurs ne sont pas modifiées comme
par exemple ou checher les utilisateurs dans ton arbre LDAP, quel attribut
utiliser pour effectuer la recherche, etc. il faut les modifier à la main dans
les fichier de config.

--
Q: What's a WASP's idea of open-mindedness?
A: Dating a Canadian.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Guillaume
Tony GALMICHE wrote:
Guillaume a écrit :
Tony GALMICHE wrote:
Guillaume a écrit :

Tony GALMICHE wrote:

Guillaume a écrit :

Tony GALMICHE wrote:

Bonjour à tous,

Je viens de mettre en place un serveur openldap sous Debian Sarge
qui doit servir à l'authentification de postes Windows et Linux
(contrôleur de domaine)

Quand le serveur ldap est disponible, tout fonctionne correctement.

Mais j'aimerais pouvoir me connecter avec un compte local (ex :
root) sur un portable sous Debian Sid quand celui-ci n'est pas
connecté au réseau.

Avec ma configuration actuelle, dés que j'ajoute ldap au fichier
"nsswitch.conf" de ma sid et quelque soit la configuration de
pam, je ne peux plus me connecter avec un utilisateur local (même
root) quand le serveur ldap n'est pas accessible.

J'ai passé la journée à éplucher des tonnes de documentation et à
faire de nombreux essais avec pam, mais sans succès.

Si vous avez une idée pour résoudre mon problème, je suis preneur.

Vous trouverez ci-dessous mes fichiers de configurations.

Merci d'avance.

Tony

common-account
- account required pam_unix.so
- account sufficient pam_ldap.so

common-auth :
- auth required pam_env.so
- auth sufficient pam_unix.so
- auth sufficient pam_ldap.so use_first_pass
- auth required pam_deny.so

common-password :
- password sufficient pam_unix.so use_authtok md5 shadow
- password sufficient pam_ldap.so use_authtok
- password required pam_deny.so

common-session :
- session required pam_limits.so
- session required pam_unix.so
- session optional pam_ldap.so

login :
- @include common-auth
- @include common-account
- @include common-session
- @include common-password

nsswitch.conf :
- passwd: compat ldap
- group: compat ldap
- shadow: compat ldap






Pardon... j'avais pas vu.....
Ca m'apprendra à lire 4 mails en même temps !!! LOL




C'est des choses qui arrivent :-)

Moi, je mets un "try_first_pass" au lieu de "use_first_pass"....




Je viens d'essayer mais sans succès

Je rajoute rien dans common-session
et je mets toujours la ligne "pam_ldap.so" avant celle "pam_unix.so"




Ca j'ai déjà essayé et plein d'autres combinaisons aussi.

En fait dés que je met ldap dans nsswitch.conf et même si je ne met
pas pam_ldap.so dans pam, je n'arrive plus à me connecter.

En complément, voici les messages que j'ai dans "/var/log/auth.log"
dés que le réseau est coupé et que je veux me connecter avec un
compte local :

Jul 5 16:44:00 localhost login[7270]: nss_ldap: could not connect
to any LDAP server as cn­min,dc=tetras,dc=net - Can't contact
LDAP server
Jul 5 16:44:00 localhost login[7270]: nss_ldap: failed to bind to
LDAP server ldap://192.0.0.3: Can't contact LDAP server
Jul 5 16:44:00 localhost login[7270]: nss_ldap: reconnecting to
LDAP server (sleeping 32 seconds)...

Merci pour la réponse.

Tony





Ok, ca marche depuis d'autres machines ???



Oui, avec les postes Windows, je n'ai pas de problème :-)



Les machines windows n'accèdent pas au LDAP....
Elles accèdent à Samba qui lui accède à LDAP


En effet, mais en tout cas, ça marche tout seul :-)



Ok

Mais en poste client sous Linux, je n'ai que mon portable sous Debian
Sid.



Ok

C'est pas ton daemon slapd qui n'écoute que sur l'interface loopback ??



Ce démon est uniquement sur le serveur, mais c'est avec mon client
que j'ai des problèmes.
-> Sur le client openldap (slapd) n'est pas installé ni même
ldap-client.



C'est normal...
Enfin, cela dit moi, je mets les LDAP clients pour des raisons de
management en général !!


Si tu pouvais préciser, ça m'intéresse étant donné que je débute en
gestion de comptes via ldap.



Le changement des mots de passe utilisateurs en changeant la commande
"passwd", il faut que ton PC ldap client ait le mot de passe root de la
base pour faire ca...

Mais je confirme que mon client fonctionne correctement quand il est
connecté au réseau et qu'il arrive à joindre le serveur ldap.

tu as mis ton password ldap dans "/etc/ldap.secret" et ce fichier
est bien en droit "600" ???



Ce fichier est également sur le serveur, mais pas sur le client.



La, je te garantis qu'il doit être sur TOUS LES CLIENTS linux....
Sinon, tu auras certaines fonctionnalités qui ne fonctionneront pas
sur les clients....

D'autres parts, as-tu configuré ton serveur LDAP pour qu'on puisse le
parcourir en lecture uniquement sans être authentifié ???


Je n'ai pas touché aux droits configurés par défaut, mais je rappel
qu'il fonctionne parfaitement quand le portable est connecté au réseau.
J'arrive à me connecter avec un compte disponible uniquement sur ldap et
j'arrive a mettre des droits sur des fichiers pour les utilisateurs ldap.



Oui, c'est vrai....

j'en perdais presque de vue ca !!! ;-)
LOL

Essaie d'arrêter le daemon "nscd" aussi.... il fait des trucs
bizarres parfois lui...



J'ai même essayé de le supprimer (purgé le paquet nscd)



Ok

C'est tout ce qui me passe par la tête pour l'instant...



Merci quand même.

Tu me confirmes que tu arrives à te connecter avec un compte local
sur un client Linux même si le serveur ldap situé sur un autre poste
n'est pas accessible?


Oui, sans aucun soucis....

Enfin, c'est un peu plus long !!


En fait, en attendant vraiment longtemps (plusieurs minutes), la
connexion en root fini par passer avec certaines configurations, mais
attendre plusieurs minutes, c'est un peu long juste pour se connecter :-)
-> Tu attends combien de temps quand le serveur ldap n'est pas accessible ?



Pas plus de 30 secondes et je n'ai modifié aucun timeout par défaut !!

Encore merci pour la réponse.



De rien...

Si je peux t'aider.... j'ai galérer des heures quand j'ai mis ca en
place pour la première fois !!!

A tel point que j'ai une belle doc que je vais wikiiser un de ces jours....

Je continuerai mes tests lundi, car je part 3 jours aux RMLL :-)



Bon RMLL alors !! :-)

A bientôt.

Tony




A plus
Guillaume


--
Guillaume
E-mail:
Site perso: http://guillaume.free-4ever.net
Sites: http://www.free-4ever.net
http://wiki.free-4ever.net


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Guillaume
Julien Louis wrote:
On Wed, Jul 05, 2006 at 09:58:07PM +0200, Tony GALMICHE wrote:
Je n'ai pas touché à ce paramètre, mais par défaut, les comptes ldap commences bien à 1000.



Pour pouvoir fonctionner, il faut modifier les fichiers de config manuellement,
sinon, ca ne peut pas fonctionner, certaines valeurs ne sont pas modifiées comme
par exemple ou checher les utilisateurs dans ton arbre LDAP, quel attribut
utiliser pour effectuer la recherche, etc. il faut les modifier à la main dans
les fichier de config.




Il y a effectivement souvent des choses à éditer dans ce fichier....
Comme par exemple, si on est en LDAPs au lieu de LDAP...

Mais si on utilise les schemas classiques et les attributs "normaux",
les choses dont tu parles ne sont pas à toucher !!

A plus
GUillaume


--
Guillaume
E-mail:
Site perso: http://guillaume.free-4ever.net
Sites: http://www.free-4ever.net
http://wiki.free-4ever.net


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Tony GALMICHE
Bonjour à tous,

Tony GALMICHE a écrit :

Bonjour à tous,

Je viens de mettre en place un serveur openldap sous Debian Sarge qui
doit servir à l'authentification de postes Windows et Linux
(contrôleur de domaine)

Quand le serveur ldap est disponible, tout fonctionne correctement.

Mais j'aimerais pouvoir me connecter avec un compte local (ex : root)
sur un portable sous Debian Sid quand celui-ci n'est pas connecté au
réseau.

Avec ma configuration actuelle, dés que j'ajoute ldap au fichier
"nsswitch.conf" de ma sid et quelque soit la configuration de pam, je
ne peux plus me connecter avec un utilisateur local (même root) quand
le serveur ldap n'est pas accessible.

J'ai passé la journée à éplucher des tonnes de documentation et à
faire de nombreux essais avec pam, mais sans succès.

Si vous avez une idée pour résoudre mon problème, je suis preneur.



J'ai trouvé la source de mon problème :

Quand le serveur LDAP n'est pas joignable, et avec une configuration par
défaut, il faut attendre environ 5mn (exactement
(1+2+4+8+16+32+64)x2%4s) pour que le mot de passe root soit accepté.
En effet, le système recherche le mot de passe sur le serveur LDAP et au
bout de nombreuses tentatives fini par rechercher en local. Pour info,
voici un extrait des messages de « /var/log/auth.log » :
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: could not connect to any
LDAP server as cn­min,dc=mondomaine,dc=com - Can't contact LDAP server
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: failed to bind to LDAP
server ldap://192.168.0.1: Can't contact LDAP server
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: reconnecting to LDAP server
(sleeping 64 seconds)...

Pour éviter cette attente, et pour un ordinateur portable, il est
conseillé de modifier la ligne suivante dans « /etc/libnss-ldap.conf » :
Mettre « bind_policy soft » en dessous de « #bind_policy hard »

Merci à tous pour vos réponses qui m'ont encouragés à continuer de
chercher :-)

A bientôt.

Tony


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
julien
Tony GALMICHE a écrit :
Bonjour à tous,

Tony GALMICHE a écrit :

Bonjour à tous,

Je viens de mettre en place un serveur openldap sous Debian Sarge qui
doit servir à l'authentification de postes Windows et Linux
(contrôleur de domaine)

Quand le serveur ldap est disponible, tout fonctionne correctement.

Mais j'aimerais pouvoir me connecter avec un compte local (ex : root)
sur un portable sous Debian Sid quand celui-ci n'est pas connecté au
réseau.

Avec ma configuration actuelle, dés que j'ajoute ldap au fichier
"nsswitch.conf" de ma sid et quelque soit la configuration de pam, je
ne peux plus me connecter avec un utilisateur local (même root) quand
le serveur ldap n'est pas accessible.

J'ai passé la journée à éplucher des tonnes de documentation et à
faire de nombreux essais avec pam, mais sans succès.

Si vous avez une idée pour résoudre mon problème, je suis preneur.



J'ai trouvé la source de mon problème :

Quand le serveur LDAP n'est pas joignable, et avec une configuration
par défaut, il faut attendre environ 5mn (exactement
(1+2+4+8+16+32+64)x2%4s) pour que le mot de passe root soit accepté.
En effet, le système recherche le mot de passe sur le serveur LDAP et
au bout de nombreuses tentatives fini par rechercher en local. Pour
info, voici un extrait des messages de « /var/log/auth.log » :
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: could not connect to any
LDAP server as cn­min,dc=mondomaine,dc=com - Can't contact LDAP server
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: failed to bind to LDAP
server ldap://192.168.0.1: Can't contact LDAP server
- Jul 10 12:25:04 pgtest su[5052]: nss_ldap: reconnecting to LDAP
server (sleeping 64 seconds)...

Pour éviter cette attente, et pour un ordinateur portable, il est
conseillé de modifier la ligne suivante dans « /etc/libnss-ldap.conf » :
Mettre « bind_policy soft » en dessous de « #bind_policy hard »

Merci à tous pour vos réponses qui m'ont encouragés à continuer de
chercher :-)

A bientôt.

Tony





Désolé je viens seulement de voir ce mail (j'ai un rapport à présenter
bientôt...)
J'ai eu un problème similaire, lorsque slapd était crashé ou simplement
arrêté, il était impossible de ce connecter avec un compte '/etc/passwd'
même 'root', j'ai résolut le problème en ajoutant le paramètre
'ignore_authinfo_unavail' dans '/etc/pam.d/common-account' de tel sorte:

>>account required pam_ldap.so ignore_unknown_user
ignore_authinfo_unavail
>>account required pam_unix.so try_first_pass



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2