Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2984 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  PAM et verification d'existance d'un compte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PAM et verification d'existance d'un compte

n°996056
esox_ch
Posté le 29-12-2007 à 16:38:44  profilanswer
 

Bonjour,
 
Sauriez vous comment je peux contrôler dans PAM qu'un compte utilisateur existe dans le système? La raison est simple : Je veux que les personnes ayant un compte utilisateur sur le serveur puissent se logger en utilisant un mot de passe extrait d'un annuaire LDAP. Le côté LDAP est prêt et marche bien, il me manque seulement le contrôle de l'existence du compte utilisateur sur le serveur.
J'ai cru comprendre que c'est NSS qui s'occupe de ce genre de tâches mais je comprend pas vraiment comment l'appeler depuis PAM
 
Merci d'avance


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 29-12-2007 à 16:38:44  profilanswer
 

n°996098
splurf
Rm -Rf / && oops :o
Posté le 29-12-2007 à 19:04:47  profilanswer
 

Bonjour,
 
as tu installé libpam-ldap ?
as tu modifié /etc/nsswitch.conf /etc/libnss-ldsp.conf /etc/ldap/ldap.conf et /etc/pam.d/common-* ?

n°996211
esox_ch
Posté le 30-12-2007 à 11:56:57  profilanswer
 

Salut

 

J'ai installé pam-ldap. Je n'ai pas pu modifier nsswitch.conf car il n'existe pas (le serveur en question est un Xserve tournant sous Mac OS X leopard server).
J'ai installé NSS (grâce a Darwinport) mais ça m'a pas généré de nsswitch.conf ...
Je n'ai pas touché au ldap.conf .. Que vaudrait-il modifier?

 

Merci d'avance


Message édité par esox_ch le 30-12-2007 à 12:01:17
n°996214
fighting_f​alcon
Posté le 30-12-2007 à 12:06:02  profilanswer
 

NSS = Name Switch Services, cette partie permet "juste" de convertir un numéro (uid / gid) en nom, par exemple : 0 -> root ...
 
PAM = Pluggable Authentication Modules : cette partie gérer l'identification (validation d'un couple login/mot de passe)
 
Dans ton cas, certes tu auras besoin ensuite de NSS configuré pour LDAP mais dans un 1er temps (pour ton problème), ce n'est que PAM qui rentre en compte, et t'inquiètes pas que nativement, sans rien faire que de le configurer proprement pour qu'il sache communiquer avec ton serveur LDAP, PAM va d'office refuser un utilisateur dont le login n'est pas valide (s'il n'existe pas dans ta base LDAP par ex)
 
Donc, je ne connais pas Xserve mais sous Debian, PAM - LDAP le fichier de conf c'est /etc/pam_ldap.conf

n°996220
esox_ch
Posté le 30-12-2007 à 12:19:39  profilanswer
 

Salut,
 
Le truc est justement là, il y a seulement certains utilisateurs de la base LDAP qui doivent pouvoir être autorisés à entrer. Il faudrait donc que le compte existe sur le serveur ET sur LDAP.  
La raison pour laquelle je ne fais pas simplement un compte sur le serveur est le mot de passe : Les utilisateurs veulent pouvoir utiliser le même mot de passe de LDAP.

n°996294
fighting_f​alcon
Posté le 30-12-2007 à 16:51:12  profilanswer
 

y'a un truc que tu ne piges pas là
 
Il n'y AUCUN comptes sur ton serveur, TOUT est DANS ton LDAP ...
 
pour qu'ensuite sur ton serveur, en faisant un ls par exemple, ça t'affiche bien titi pour le propriétaire et non 10153, ça c'est NSS
 
Mais il ne faut SURTOUT PAS recréer tous les comptes sur le serveur !!!

n°996306
esox_ch
Posté le 30-12-2007 à 17:17:38  profilanswer
 

Bon, apparemment j'ai pas été clair :D
Ce que je tente désespérément de faire c'est implémenter la logique suivante pour les accès SSH sur ce serveur :
 
Certaines personnes (dont le choix n'a rien à voir avec des trucs trouvables sur LDAP) ayant un compte (et donc login/mdp) dans LDAP doivent pouvoir se logger en utilisant leur login/mdp LDAP.
Certaines personnes n'ayant pas un compte LDAP doivent pouvoir s'autentifier avec un login/mdp stocké quelque part (selon ce qui m'arrange).
 
En espérant que tu voies un peu mieux mon problème .. Merci

n°996529
fighting_f​alcon
Posté le 31-12-2007 à 14:56:52  profilanswer
 

oui je vois parfaitement :
 
je suis toto/titi
 
1- le compte toto/titi existe sur LDAP => j'ai le droit de me conecter à ton serveur via SSH
2 - le compte toto/titi existe en local sur le serveur => ok, je rentre
3 - le compte n'existe ni sur LDAP, ni sur le serveur => je rentre pas
 
c'est bien ça ?
 
si oui, alors c'est PAM qui s'occupe de tout ça en disant que l'auth LDAP est optionnelle, tout comme l'auth locale, et si les deux échouent alors tu as un gros "deny" obligatoire qui va faire planter l'identification
 
Donc tout ce que tu as à faire, c'est de configurer proprement l'identification PAM par LDAP

n°996553
esox_ch
Posté le 31-12-2007 à 15:45:56  profilanswer
 

Salut,
 
C'est presque ça : Il y a seulement un certain nombre de personnes du LDAP qui peuvent se connecter. Ca serai tdonc :
1- Le compte toto/titi existe sur LDAP, et est autorisé à se connecter . Le problème c'est que sais pas comment faire ce "Et est autorisé à se connecter"
 
Merci de prendre tout ce temps pour m'aider, j'apprecie vraiment


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°997305
fighting_f​alcon
Posté le 03-01-2008 à 13:53:31  profilanswer
 

dans ce cas là, tu sépares tes comptes autorisés à se connecter de ceux qui ne le sont pas (OU différentes) et tu configures PAM_LDAP pour qu'il n'aille taper que dans la bonne OU
 
du coup un utilisateur qui est dans l'OU "n'a pas le droit" ne sera jamais vu par PAM_LDAP et donc n'aura jamais accès à ton serveur

mood
Publicité
Posté le 03-01-2008 à 13:53:31  profilanswer
 

n°997503
esox_ch
Posté le 03-01-2008 à 20:00:51  profilanswer
 

Je dois être vraiment bouché parce que je comprend pas comment je peux le faire :s T'arrives à m'expliquer un peu plus (vraiment désolé)
 
merci beaucoup

n°997568
Bigon
Avis défavorable
Posté le 04-01-2008 à 01:02:20  profilanswer
 

Euh c'est un MacOSX... Ca fait longtemps que j'ai plus utilisé ca, mais tu as ps un outils de config qui parle d'annuaire ou qqch comme ca?

n°998374
esox_ch
Posté le 06-01-2008 à 10:46:40  profilanswer
 

Salut,
Si bien sur, LDAP est facilement configurable. Mon problème c'est que je cherche comment dire à PAM : "Controle si l'utilisateur X est présent sur le système" sans qu'il check le mot de passe..

n°998746
Bigon
Avis défavorable
Posté le 07-01-2008 à 01:08:47  profilanswer
 

c'est nss qui fait ca, je pense


Message édité par Bigon le 07-01-2008 à 01:09:21
n°998776
fighting_f​alcon
Posté le 07-01-2008 à 08:19:12  profilanswer
 

Je dois pas être clair ...
 
PAM est incapable de faire ce genre de contrôle "si l'utilisateur X est présent alors vérifie le mot de passe sinon au revoir" comme tu le voudrais ...
 
Une des solutions (ça doit pas être la seule, mais c'est celle qui me vient à l'idée), c'est, comme je te l'ai dit, de créer deux OU (Organisation Unit, un espèce de dossier quoi) dans ton LDAP, pour obtenir un truc du genre :
 

Citation :


- racine de ton ldap
  - ...
  - ...
  - ton entreprise
     - ...
     - tes utilisateurs
        - ...
        - utilisateurs ayant accès à ton serveur
          - toto
          - titi
        - tata


 
Tu configures ensuite ton PAM_LDAP pour qu'il n'aille taper que dans l'OU "ton entreprise/tes utilisateurs/utilisateurs ayant accès à ton serveur", ainsi il ne trouvera jamais l'utilisateur "tata" qui ne pourra donc jamais accéder à ton serveur
 
 
 
Bigon >
NSS c'est encore autre chose. Name Switch Service, c'est ce qui permet de faire la convertion "id numérique" <-> "texte humainement compréhensible"
Tu fais un "ls", NSS rentre en jeu, tu fais un "ls -n", il n'intervient pas

n°998856
esox_ch
Posté le 07-01-2008 à 10:15:05  profilanswer
 

Salut,
Alors j'ai un problème, car comme je l'ai dit plus haut, je ne peux pas toucher au serveur LDAP. Je peux biensur re-créer un autre annuaire LDAP mais je ne peux pas inserer les mdp des utilisateurs dans ce meme annuaire..
C'est quand même bizard qu'on puisse pas demander à ce qu'un utilisateur puisse se logger, quelque soit le mot de passe qu'il insère...

n°998936
fighting_f​alcon
Posté le 07-01-2008 à 13:50:51  profilanswer
 

et est ce que tu peux synchroniser les mots de passes de tes utilisateurs entre leur compte LDAP et leur compte sur ton serveur ?

n°999506
esox_ch
Posté le 08-01-2008 à 16:33:12  profilanswer
 

Là est tout le problème, non je ne peux pas et là est tout le problème

n°999608
fighting_f​alcon
Posté le 09-01-2008 à 08:35:15  profilanswer
 

alors là je sèche ...

n°999612
esox_ch
Posté le 09-01-2008 à 08:48:12  profilanswer
 

D'accord ... Merci beaucoup d'avoir passé tout ce temps à m'aider!
C'est quand même bizard qu'il n'y ait aucun module permettant de faire une sorte de "Si le username fourni est dans cette liste, alors OK , quelque soit le mot de passe" ... Enfin je vais chercher à faire autrement..

n°999615
o'gure
Modérateur
Multi grognon de B_L
Posté le 09-01-2008 à 09:02:38  profilanswer
 

En reprenant les sources d'un modules PAM ca ne doit pas être trop compliqué à implémenter je pense :??:
Il suffirait de remplacer la partie concernant la vérification du mot de passe par la vérification du nom dans une liste [:spamafote]
http://www.kernel.org/pub/linux/li [...] -PAM-html/
http://www.kernel.org/pub/linux/li [...] M_MWG.html


Message édité par o'gure le 09-01-2008 à 09:05:02

---------------
Relax. Take a deep breath !
n°999626
esox_ch
Posté le 09-01-2008 à 09:21:23  profilanswer
 

Oui l'idée m'avais traversé l'esprit. Mais étant une bille en C, j'aurais préféré pas devoir écrire moi même une des pierres angulaires de l'authentification sur mon serveur :D Mais merci pour les links

n°1000056
fighting_f​alcon
Posté le 10-01-2008 à 08:19:48  profilanswer
 

je pense que j'ai une solution pour toi, mais avant un coup de récap s'impose !!! ;)
 
Donc :
* tu as un serveur LDAP sur un serveur A avec comme utilisateurs toto, titi, tata, tutu (pour faire classique)
* les mots de passe des utilisateurs sont dans ce LDAP
* tu ne peux pas modifier la structure de ton LDAP
* tu ne peux pas synchroniser les mots de passe depuis ce LDAP
* tu as un serveur B sur lequel tu voudrais que les utilisateurs toto et tata accèdent mais pas titi et tutu
* et bien sur, pour que toto et tata accède à ton serveur B, il doivent s'identifier avec leur login/mot de passe qui sont stockés dans le LDAP du serveur A
* pour l'instant, pour chaque utilisateur LDAP qui doit pouvoir accéder à ton serveur B, tu crées sur le serveur B un compte utilisateur UNIX (passwd/shadow) "à la main" (ou par script, mais c'est toi qui indique quel compte créer, il n'y a pas une exportation automatique depuis LDAP)
 
Ton soucis n'est donc pas forcément de vérifier que l'utilisateur X a bien un compte sur ton serveur B pour le laisser se connecter sur B, mais plutôt de restreindre l'accès à ton serveur B à certains utilisateurs
 
J'ai bon ou pas ?

n°1000064
esox_ch
Posté le 10-01-2008 à 08:40:43  profilanswer
 

Tout a fait

n°1000073
fighting_f​alcon
Posté le 10-01-2008 à 08:58:00  profilanswer
 

ok ...
 
alors ma soluce :
Tu dois monter un identification via PAM sur ton LDAP de façon classique (cf tous les HOWTO que tu pourras trouver, et notamment l'excellent de dam1330 : http://forum.hardware.fr/forum2.ph [...] =0&nojs=0)
 
Tu configures donc pam_ldap et nss_ldap pour que les utilisateurs de ton LDAP puissent se logguer sur ton serveur, et qu'ils soient ensuite vus comme s'ils étaient des utilisateurs locaux de ton serveur.
 
Pour ensuite dire qu'un tel oui mais pas un tel, le module magique s'appelle : pam_listfile
 
syntaxe (dans /etc/pam.d/....) :

Code :
  1. auth       required     pam_listfile.so item=user sense=allow file=/etc/security/allowed_users onerr=fail


 
dans le fichier cité (/etc/security/allowed_users dans mon exemple, mais il n'est pas forcément là hein ;) ), tu listes, un par ligne, les utilisateurs que tu autorises sur ton serveur :
 

Code :
  1. toto
  2. tata


 
"toto" et "tata" étant les logins, tels que tu les retrouve dans ton LDAP
 
Et attention, pam_listfile est sensible à la casse : tata != Tata

n°1000080
esox_ch
Posté le 10-01-2008 à 09:08:43  profilanswer
 

Bon ... Un applaudissement s'impose je crois :D
Dès que j'ai un moment je l'essaie, mais en tout cas, je te remercie beaucoup pour tout ton aide.. J'étais à 2 doights d'envoyer un mail au chef en disant "C'est impossible, les utilisateurs devront choisir eux même leur password sur notre serveur"...  :D

n°1000090
fighting_f​alcon
Posté le 10-01-2008 à 09:21:57  profilanswer
 

arrête de lire de l'anglais ....
 
2 doigts, pas doights
 
 :whistle:  :D

n°1000095
esox_ch
Posté le 10-01-2008 à 09:32:47  profilanswer
 

Arg ... à force de vivre dans un milieu de non francophones, je perd le peu de français qu'ils étaient arrivés à m'inculquer aux petites classes... C'est limite chiant :D Dans 5 ans on me sortira "Mais vous parlez pas trop mal français quand même... Vous avez fait un stage dans l'hexagone?"

n°1000097
fighting_f​alcon
Posté le 10-01-2008 à 09:35:08  profilanswer
 

LOL

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  PAM et verification d'existance d'un compte

 

Sujets relatifs
Compte gmailprobleme compte squirrelmail
APACHE 2 sous DEBIAN vérification de code à la compilationLogin incorrect sous vsftpd (virtual user) - PAM
Samba en PDC sur machine IPCOP : compte machine non trouve...connexion avec compte de domaine windows sur debian
ou peut t-on crée un compte gratuitement . à par msn ?y-a t'il un logiciel pour gérer plusieur compte en meme temps ?
date creation d'un compte utilisateur ?Configuration de pam
Plus de sujets relatifs à : PAM et verification d'existance d'un compte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR