Bonjour à tous,
En pleine migration d'une vieille installation samba3/ldap vers samba4AD/ldap/kerberos je galère pour faire communiquer kerberos et ldap.
Pour le moment je fais comme si j'étais sur une nouvelle installation et j'utilise la doc de Debian https://wiki.debian.org/LDAP/OpenLDAPSetup#Kerberos
J'ai vérifié plusieurs fois, refait plusieurs fois et à chaque fois au moment de faire un test avec kadmin.local ça déconne :
# kadmin.local
Authenticating as principal root/admin@MON.DOM with password.
kadmin.local: addprinc bob
No policy specified for bob@MON.DOM; defaulting to no policy
Enter password for principal "bob@MON.DOM":
Re-enter password for principal "bob@MON.DOM":
add_principal: Principal add failed: Insufficient access while creating "bobo@MON.DOM".
Dans les log de ldap j'ai
Sep 27 11:03:07 svdeb01 slapd[439]: => dn: [2] cn=krbcontainer,ou=kerberos,ou=services,dc=mon,dc=dom
Sep 27 11:03:07 svdeb01 slapd[439]: => dn: [5] ou=people,dc=mon,dc=dom
Sep 27 11:03:07 svdeb01 slapd[439]: => acl_get: [6] attr children
Sep 27 11:03:07 svdeb01 slapd[439]: => acl_mask: access to entry "cn=MON.DOM,cn=kerberos,ou=Services,dc=mon,dc=dom", attr "children" requested
Sep 27 11:03:07 svdeb01 slapd[439]: => acl_mask: to all values by "uid=kadmin,ou=kerberos,ou=services,dc=mon,dc=dom", (=0)
Sep 27 11:03:07 svdeb01 slapd[439]: <= check a_dn_pat: *
Sep 27 11:03:07 svdeb01 slapd[439]: <= acl_mask: [1] applying read(=rscxd) (stop)
Sep 27 11:03:07 svdeb01 slapd[439]: <= acl_mask: [1] mask: read(=rscxd)
Sep 27 11:03:07 svdeb01 slapd[439]: => slap_access_allowed: add access denied by read(=rscxd)
Sep 27 11:03:07 svdeb01 slapd[439]: => access_allowed: no more rules
Sep 27 11:03:07 svdeb01 slapd[439]: conn=1057 op=6 RESULT tag=105 err=50 text=no write access to parent
Mes ACL sont :
# ldapsearch -LLLQ -Y EXTERNAL -H ldapi:/// -o ldif-wrap=no -b cn=config -s one olcAccess ldif-wrap=no
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: olcDatabase={-1}frontend,cn=config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
olcAccess: {1}to dn.exact="" by * read
olcAccess: {2}to dn.base="cn=Subschema" by * read
dn: olcDatabase={0}config,cn=config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
dn: olcDatabase={1}mdb,cn=config
olcAccess: {0}to attrs=krbPrincipalKey by anonymous auth by dn.exact="uid=kdc,ou=kerberos,ou=Services,dc=mon,dc=dom" read by dn.exact="uid=kadmin,ou=kerberos,ou=Services,dc=mon,dc=dom" write by self write by * none
olcAccess: {1}to dn.subtree="cn=krbContainer,ou=kerberos,ou=Services,dc=mon,dc=dom" by dn.exact="uid=kdc,ou=kerberos,ou=Services,dc=mon,dc=dom" read by dn.exact="uid=kadmin,ou=kerberos,ou=Services,dc=mon,dc=dom" write by * none
olcAccess: {2}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {3}to attrs=shadowLastChange by self write by * read
olcAccess: {4}to dn.subtree="ou=People,dc=mon,dc=dom" by dn.exact="uid=kdc,dc=mon,dc=dom" read by dn.exact="uid=kadmin,dc=mon,dc=dom" write by * break
olcAccess: {5}to * by * read
A force de regarder les ACL je me perds. Est-ce que vous auriez une piste ?
Merci d'avance.
Philippe.
# Tranquil.it
Posté par Walter . Évalué à 1.
as tu regardé le site : https://dev.tranquil.it/wiki/Samba4
Ils ont une bonne documentation et en français.
[^] # Re: Tranquil.it
Posté par Philippe M (site web personnel) . Évalué à 2.
Merci pour le lien, j'avais déjà regardé et la partie Kerberos est survoler. Peut être qu'il n'est pas nécessaire d'en dire plus ?
Born to Kill EndUser !
[^] # Re: Tranquil.it
Posté par Walter . Évalué à 1.
non, avec leur doc, ça juste marche.
# supprimer LDAP de l'equation
Posté par NeoX . Évalué à 3.
samba4 fait tres bien la gestion AD,
il n'y a plus alors qu'à faire du Kerberos sur SAMBA4
pour des tests :
- tu as bien configuré le /etc/krb.conf pour aller chercher le domain controller samba4 ?
- tu as bien fait
kinit
avec ton login/mot de passe du domaine ?[^] # Re: supprimer LDAP de l'equation
Posté par Philippe M (site web personnel) . Évalué à 2.
C'est une des pistes pour contourner ldap mais avant il faut que je valide que toutes les appli utilisant ldap directement sont capable de communiquer avec un AD ou alors passer par radius.
Pour mes test :
Pour le moment je n'ai même pas paramétré/démarré samba4, j'en suis a avoir un annuaire LDAP correspondant à la structure souhaité et ensuite faire en sorte que kerberos communique correctement avec LDAP.
J'ai bien sûr continué à chercher et mon problème est vraiment une ACL qui empêche kerberos d'écrire dans ldap.
Born to Kill EndUser !
# Peut-être une idée
Posté par cg . Évalué à 2.
On dirait que
kadmin.local
veut écrire, or dans tes ACLs il n'y a que l'autorisation de lire pour le dn kadmin, si j'ai bien suivi :Peut-être peux-tu essayer avec
ldapsearch
etldapmodify
déjà, pour tester une lecture et une écriture sans avoirkadmin.local
dans l'équation ?[^] # Re: Peut-être une idée
Posté par Philippe M (site web personnel) . Évalué à 2.
L'ACL est à lire comme cela
kadmin.local se connecte avec le uid kadmin. Ldapsearch et ldapmodify marche correctement mais il n'utilise pas le compte kadmin, mais soit le compte root pour un accès local et config ou alors le compte admin défini dans la branche.
Born to Kill EndUser !
[^] # Re: Peut-être une idée
Posté par cg . Évalué à 2.
ah oui bien sûr, suis-je bête !
Avec ldapsearch tu peux utiliser le user
uid=kadmin,ou=kerberos,ou=Services,dc=mon,dc=dom
pour tester, non ?Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.