Kerberos Et LDAP
Kerberos Et LDAP
Kerberos Et LDAP
La plupart des gens n'utiliseront pas Kerberos directement, une fois qu'un utilisateur est authentifié
(Kerberos), nous avons besoin de comprendre ce que cet utilisateur peut faire (autorisation). Et ce serait la tâche de programmes comme LDAP.
Répliquer une bases de données de « principals » Kerberos entre deux serveurs peut être compliqué, et cela ajoute une base de données
supplémentaire d'utilisateurs à votre réseau. Heureusement, MIT Kerberos peut être configuré pour utiliser un annuaire LDAP comme base de
données de « principals ». Ce section couvre la configuration de serveurs Kerberos primaire et secondaire pour utiliser OpenLDAP pour cette base
de données.
Configuration OpenLDAP
Configuration du KDC primaire
Configuration secondaire de KDC
Ressources
Configuration OpenLDAP
Tout d'abord, le schéma nécessaire doit être chargé sur un serveur OpenLDAP qui dispose d'une connectivité réseau avec les centres de distribution
de clés primaires et secondaires (KDC). La suite de cette section considère que vous disposez aussi d'une réplication LDAP configurée entre au
moins deux serveurs. Pour plus de détails concernant la configuration de OpenLDAP, voir Serveur OpenLDAP.
Il est également nécessaire de configurer OpenLDAP pour les connexions TLS et SSL, de sorte que le trafic entre les serveurs KDC et LDAP soit
chiffré. Voir TLS pour plus de détails.
cn=admin,cn=config est un utilisateur que nous avons créé avec les droits pour éditer la base de données ldap. De nombreuses fois, il est
le RootDN. Modifiez sa valeur en fonction de vos réglages.
1. Pour charger le schéma dans LDAP, installez le paquet krb5-kdc-ldap sur le serveur LDAP. Saisissez dans un terminal :
3. Le schéma Kerberos doit être ajouté à l'arborescence cn=config. La procédure pour ajouter un nouveau schéma à slapd est également
expliquée dans Modification de la base de données de configuration slapd.
1. Créez d'abord un fichier de configuration schema_convert.conf, ou tout autre nom vous convenant, avec les données suivantes :
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/kerberos.schema
mkdir /tmp/ldif_output
dn: cn=kerberos,cn=schema,cn=config
https://guide.ubuntu-fr.org/server/kerberos-ldap.html 1/5
14/04/2021 Kerberos et LDAP
...
cn: kerberos
structuralObjectClass: olcSchemaConfig
entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc
creatorsName: cn=config
createTimestamp: 20090111203515Z
entryCSN: 20090111203515.326445Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20090111203515Z
Les valeurs des attributs peuvent varier, assurez-vous simplement qu'ils soient supprimés.
dn: olcDatabase={1}mdb,cn=config
add: olcDbIndex
olcDbIndex: krbPrincipalName eq,pres,sub
dn: olcDatabase={1}mdb,cn=config
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey by
dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
-
add: olcAccess
olcAccess: to dn.base="" by * read
-
add: olcAccess
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
Voila, votre annuaire LDAP est maintenant prêt à servir de base de données de « principals » Kerberos.
2. Maintenant, modifiez /etc/krb5.conf en ajoutant les options suivantes dans les sections appropriées :
[libdefaults]
default_realm = EXAMPLE.COM
...
[realms]
EXAMPLE.COM = {
kdc = kdc01.example.com
kdc = kdc02.example.com
admin_server = kdc01.example.com
admin_server = kdc02.example.com
default_domain = example.com
database_module = openldap_ldapconf
}
...
[domain_realm]
.example.com = EXAMPLE.COM
...
https://guide.ubuntu-fr.org/server/kerberos-ldap.html 2/5
14/04/2021 Kerberos et LDAP
[dbdefaults]
ldap_kerberos_container_dn = cn=krbContainer,dc=example,dc=com
[dbmodules]
openldap_ldapconf = {
db_library = kldap
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
4. Créez un fichier de dissimulation (stash) du mot de passe utilisé pour la liaison au serveur LDAP. Ce mot de passe est utilisé par les options
ldap_kdc_dn et ldap_kadmin_dn du fichier /etc/krb5.conf :
scp ldap01:/etc/ssl/certs/cacert.pem .
sudo cp cacert.pem /etc/ssl/certs
TLS_CACERT /etc/ssl/certs/cacert.pem
Le certificat devra également être copié vers le KDC secondaire, afin de permettre la connexion aux serveurs LDAP en utilisant LDAPS.
Vous pouvez maintenant ajouter des utilisateurs Kerberos à la base de données LDAP et ils seront copiés aux autres serveurs LDAP configurés pour
la réplication. Pour ajouter un utilisateur se servant de l'utilitaire kadmin.local, entrez :
sudo kadmin.local
Authenticating as principal root/admin@EXAMPLE.COM with password.
kadmin.local: addprinc -x dn="uid=steve,ou=people,dc=example,dc=com" steve
WARNING: no policy specified for steve@EXAMPLE.COM; defaulting to no policy
Enter password for principal "steve@EXAMPLE.COM":
Re-enter password for principal "steve@EXAMPLE.COM":
Principal "steve@EXAMPLE.COM" created.
Les attributs krbPrincipalName, krbPrincipalKey, krbLastPwdChange, et krbExtraData devraient maintenant être ajoutés à l'objet utilisateur
uid=steve,ou=people,dc=example,dc=com. Utilisez kinit et klist pour tester si l'utilisateur reçoit effectivement un ticket.
Si l'objet utilisateur est déjà créé, l'option-x dn = "..." est nécessaire pour ajouter les attributs de Kerberos. Autrement, un nouvel objet
utilisateur sera créé dans les sous-domaines.
[libdefaults]
default_realm = EXAMPLE.COM
https://guide.ubuntu-fr.org/server/kerberos-ldap.html 3/5
14/04/2021 Kerberos et LDAP
...
[realms]
EXAMPLE.COM = {
kdc = kdc01.example.com
kdc = kdc02.example.com
admin_server = kdc01.example.com
admin_server = kdc02.example.com
default_domain = example.com
database_module = openldap_ldapconf
}
...
[domain_realm]
.example.com = EXAMPLE.COM
...
[dbdefaults]
ldap_kerberos_container_dn = dc=example,dc=com
[dbmodules]
openldap_ldapconf = {
db_library = kldap
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
3. Créez un fichier de dissimulation (stash) pour y stocker le mot de passe de liaison à LDAP :
4. Maintenant, sur le KDC principal, copiez le fichier de dissimulation de la clé maitresse/etc/krb5kdc/.k5.EXAMPLE.COM sur le KDC
secondaire. Assurez-vous de copier le fichier via une connexion chiffrée telle que scp, ou via des supports physiques.
7. Vérifiez que les deux serveurs ldap (et Kerberos par extension) sont synchronisés.
Vous avez maintenant des KDCs redondants sur votre réseau, et avec des serveurs LDAP redondants, vous devriez être en mesure de continuer à
authentifier les utilisateurs si un serveur LDAP, un serveur Kerberos, ou un serveur LDAP et un serveur Kerberos deviennent indisponibles.
Ressources
1. Le Guide d'administration de Kerberos contient des détails supplémentaires.
2. For more information on kdb5_ldap_util see Section 5.6 and the kdb5_ldap_util man page.
4. Vous pouvez également consulter la page de wiki Ubuntu sur Kerberos et LDAP.
Précédent Suivant
Le contenu de ce document est disponible sous licence libre, voir Légal pour plus de détails.
Pour savoir comment contribuer, reportez-vous à la page du wiki anglais de l'Equipe de Documentation Ubuntu ainsi que la page de l'équipe de traduction francophone.
Pour signaler un problème sur cette documentation, visitez la page des bogues de la Documentation francophone Ubuntu-fr.
https://guide.ubuntu-fr.org/server/kerberos-ldap.html 4/5
14/04/2021 Kerberos et LDAP
https://guide.ubuntu-fr.org/server/kerberos-ldap.html 5/5