Authentification des utilisateurs avec OpenLDAP + OpenSSH - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 07-12-2007 à 15:44:40
Je ne sais pas comment tu te connectes à ces serveurs, mais si c'est via SSH uniquement, as tu pensé à un ssh-agent (+ authentication par clé RSA ou DSA) ?
Marsh Posté le 07-12-2007 à 16:06:31
Oui, la connexion vers ces serveurs se fait via SSH uniquement.
En fait, je souhaite éviter d'avoir à rajouter les clés publiques des personnes qui pourront intervenir durant le cycle de vie du projet sur certains des serveurs.
Je viens de voir un patch qui était disponible pour OpenSSH => OpenSSH LDAP Public Key patch
Le but de ce patch serait de centraliser les clés publiques des utilisateurs sur un serveur LDAP plutôt que dans les home directory des serveurs (authorized_keys), ca a l'air pas mal comme solution ...
Marsh Posté le 09-12-2007 à 10:46:53
up
personne n'a mis en place une solution avec le patch openssh ldap public key ?
Marsh Posté le 09-12-2007 à 12:23:07
tsunamijf a écrit : up |
c'est tout expliqué dans le hors serie linux magazine de ce mois coi
Marsh Posté le 09-12-2007 à 13:37:27
tu parles du n° 100 ?
c'est un sujet disponible sur le CD ou bien un article papier ?
car je viens de parcourir la version "web papier" et je n'ai pas trouvé (difficile de deviner tous les articles en raison de la taille des polices) un article qui parle d'openssh avec ldap public key
merci
Marsh Posté le 09-12-2007 à 15:24:41
j'ai jeté un coup d'oeil dans un magazin de presse y a bien article concernant ce sujet
voila: http://ed-diamond.com/feuille_lmag100/damag-000038.jpg
Marsh Posté le 14-12-2007 à 08:57:07
Voilà,
L'authentification par clé publique avec OpenSSH et OpenLDAP fonctionne.
La clé publique est stockée dans l'annuaire LDAP et lorsqu'un utilisateur se connecte à un serveur lambda, celui-ci va chercher les informations sur l'utilisateur directement dans l'annuaire LDAP.
Maintenant, je me retrouve face à un autre problème qui je pense à une solution
Comment mettre en place avec OpenSSH (patché avec Lpk) et OpenLDAP pour autoriser un utilisateur à se connecter seulement sur certains serveurs du parc...
Car si je configure OpenSSH sur tous mes serveurs "clients" pour que l'authentification repose sur OpenLDAP, l'utilisateur pourra se connecter sur tous les serveurs, hors, je souhaite pouvoir contrôler les accès aux ressources.
quelqu'un aurait une idée ? une piste ?
Marsh Posté le 14-12-2007 à 11:06:59
tsunamijf a écrit : Voilà, |
man sshd_config -> AllowUsers
ça vous arrive de vous documenter avant de mettre des services en place ????
Marsh Posté le 14-12-2007 à 11:20:39
Ok pour cette option, elle répond à une partie de mes attentes, c'est à dire autoriser/interdire l'accès à des utilisateurs.
Je cherchais plutôt à autoriser/interdire l'accès à des serveurs grâce à OpenLDAP, mais je ne suis pas sur que cela soit possible ...
Avoir cette information par LDAP me permettrait de centraliser facilement cette information (savoir pour l'utilisateur X, qu'il peut se connecter sur les serveurs A,B et C).
Alors qu'avec AllowUsers, si un utilisateur dispose des autorisations pour se connecter sur 100 serveurs, il faudra renseigner AllowUsers pour les 100 serveurs ...
Marsh Posté le 14-12-2007 à 20:25:09
regarde le linuxmag n°100
Marsh Posté le 15-12-2007 à 00:52:03
dans ce linuxmag, ils montrent juste l'installation du patch pour openssh, y'a rien qui répond à mon besoin dans ce qu'ils proposent, ou alors je suis vraiment passé à côté ...
Marsh Posté le 15-12-2007 à 14:26:42
Pour apporter un début de réponse à ce problème ... j'ai trouvé le paramètre "host" qui peut être rajouté dans la définition d'un utilisateur dans LDAP.
exemple :
dn: cn=monuser,ou=users,dc=toto,dc=fr
objectclass: posixAccount
[...]
uid: ...
gid: ...
host = serveurA
host = serveurB
Avec l'attribut host, l'utilisateur pourra se connecter uniquement sur les serveurs déclarés (ici, serveurA et serveurB).
Je vais essayer de mettre en place cette configuration.
A priori, ca réponds à mon besoin.
Si vous avez des avis/suggestions sur cet attribut, je reste preneur
Marsh Posté le 18-06-2008 à 10:03:31
Bonjour all,
dis moi tsunamijf aurais tu un peu de temps pour parler de ce projet ? par mail ou autre
merci d'avance
Marsh Posté le 19-06-2008 à 10:20:55
j'essaye d'inserer ca avec la commande ldapadd -x -D "cn=god,dc=test,dc=org" -v -W -f /tmp/passwd.ldif :
Code :
|
j'ai essayé aussi avec host = 192.168.2.22
et ca me donne :
ldapadd: invalid format (line 16) entry: "uid=toto,ou=user,dc=test,dc=org"
et la ligne 16 c'est le premier host =
Marsh Posté le 19-06-2008 à 11:16:19
Dans ton .ldif, essaies de mettre que ces Objectclass dans cet ordre :
objectclass: top
objectclass: posixAccount
objectclass: account
objectclass: ldapPublicKey
Je crois me souvenir que l'attribut host n'est utilisable qu'avec l'objectclass posixAccount et/ou sans la présence de l'objectclass person ... à valider
Bien vérifier également que tes schémas sont définis dans ta conf slapd et qu'ils existent bien dans le répertoire de stockage des schémas.
Marsh Posté le 19-06-2008 à 11:17:18
Dans ton .ldif, essaies de mettre que ces Objectclass dans cet ordre :
objectclass: top
objectclass: posixAccount
objectclass: account
objectclass: ldapPublicKey
Je crois me souvenir que l'attribut host n'est utilisable qu'avec l'objectclass posixAccount et/ou sans la présence de l'objectclass person ... à valider
Bien vérifier également que tes schémas sont définis dans ta conf slapd et qu'ils existent bien dans le répertoire de stockage des schémas.
Marsh Posté le 19-06-2008 à 11:55:51
sur la doc du patcheur lpk de openssh
http://dev.inversepath.com/trac/openssh-lpk
objectclass: person
Marsh Posté le 19-06-2008 à 14:10:49
Oui mais dans son exemple, il n'utilise pas la clause "host".
Pour utiliser la clause host, il faut l'objectclass "account" (et non pas posixAccount comme je le pensais + haut)
Marsh Posté le 19-06-2008 à 16:47:32
j'arrive pas a integrer ce fichier ldap
ca me met une erreur :
adding new entry "uid=pelo,ou=user,dc=test,dc=org"
modify complete
ldap_add: Internal (implementation specific) error (80)
additional info: no structuralObjectClass operational attribute
Code :
|
Marsh Posté le 20-06-2008 à 10:42:38
je crois que j'ai réussi à trouver le bon ldif pour les comptes
Code :
|
il y a tout ce qui faut la non ?
Marsh Posté le 23-06-2008 à 09:36:04
je viens de faire un test avec un utilisateur qui existe dans mon annuaire ldap
May 22 04:11:56 srvtest3 sshd[6738]: pam_unix(sshd:session): session opened
for user root by (uid=0)
May 22 04:28:13 srvtest3 sshd[6803]: error: Could not get shadow information for tata
May 22 04:28:13 srvtest3 sshd[6803]: Accepted password for tata from 192.168.2.216 port 41815 ssh2
il passe totalement outre les attributs host, sshPublicKey
Marsh Posté le 23-06-2008 à 11:42:45
Il faut modifier les stratégies d'authentification de tes serveurs pour prendre en compte une authentification forcée sur ton annuaire ldap
Marsh Posté le 23-06-2008 à 11:45:15
donc pam ? /etc/pam.d/sshd ? faut compiler sshd+lpk avec le flag ldap enable ?
Marsh Posté le 07-12-2007 à 15:42:25
Bonjour,
Je suis actuellement à la recherche d'une solution qui permettrait de faire du SSO sous Linux pour ne pas avoir à s'authentifier à chaque fois sur un grand nombre de serveurs.
Si vous avez mis en place ce type de solutions, je suis preneur de votre retour d'expérience
Je pense par exemple à l'utilisation de Kerberos + SSH pour faire du SSO ...
Message édité par tsunamijf le 14-12-2007 à 10:18:44
---------------
PSN : julien_fr38