Kerberos Et LDAP

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

14/04/2021 Kerberos et LDAP

ubuntu-fr.org Documentation Forum Obtenir Ubuntu

Guides Documentation Manuel Ubuntu

Ubuntu 16.04 LTS » Guide du serveur Ubuntu » Authentification réseau »

Kerberos et LDAP Précédent Suivant

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.

Les exemples présentés ici utilisent MIT Kerberos et OpenLDAP.

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 :

sudo apt install krb5-kdc-ldap

2. Ensuite, décompressez le fichier kerberos.schema.gz :

sudo gzip -d /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz


sudo cp /usr/share/doc/krb5-kdc-ldap/kerberos.schema /etc/ldap/schema/

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

2. Créez un dossier temporaire pour recevoir les fichiers LDIF :

mkdir /tmp/ldif_output

3. Maintenant, servez-vous de slapcat pour convertir les fichiers de schéma :

slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s \ "cn={12}kerberos,cn=schema,cn=config" >


/tmp/cn=kerberos.ldif

Modifiez si nécessaire le nom et l'emplacement du fichier.

4. Modifiez le fichier /tmp/cn\=kerberos.ldif généré, en changeant les attributs suivants :

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

Et supprimez les lignes suivantes à la fin du fichier :

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.

5. Chargez le nouveau schéma avec ldapadd :

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /tmp/cn\=kerberos.ldif

6. Ajoutez un index pour l'attribut krb5principalname :

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:///

dn: olcDatabase={1}mdb,cn=config
add: olcDbIndex
olcDbIndex: krbPrincipalName eq,pres,sub

modifying entry "olcDatabase={1}mdb,cn=config"

7. Enfin, mettez à jour la liste de contrôle d'accès (ACL) :

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:///

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

modifying entry "olcDatabase={1}mdb,cn=config"

Voila, votre annuaire LDAP est maintenant prêt à servir de base de données de « principals » Kerberos.

Configuration du KDC primaire


Avec OpenLDAP opérationnel, il est temps de configurer le KDC.

1. Tout d'abord, installez les paquets nécessaires. Saisissez dans un terminal :

sudo apt install krb5-kdc krb5-admin-server krb5-kdc-ldap

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"

# this object needs to have read rights on


# the realm container, principal container and realm sub-trees
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"

# this object needs to have read and write rights on


# the realm container, principal container and realm sub-trees
ldap_service_password_file = /etc/krb5kdc/service.keyfile
ldap_servers = ldaps://ldap01.example.com ldaps://ldap02.example.com
ldap_conns_per_server = 5
}

Remplacez example.com, dc=example,dc=com, cn=admin,dc=example,dc=com, et ldap01.example.com par votre domaine, objet


LDAP et serveur LDAP de votre réseau, respectivement.

3. Ensuite, utilisez kdb5_ldap_util pour créer le domaine :

sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com create -subtrees \ dc=example,dc=com -r EXAMPLE.COM -s -H


ldap://ldap01.example.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 :

sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com stashsrvpw -f \ /etc/krb5kdc/service.keyfile


cn=admin,dc=example,dc=com

5. Copiez le certificat de l'AC depuis le serveur LDAP :

scp ldap01:/etc/ssl/certs/cacert.pem .
sudo cp cacert.pem /etc/ssl/certs

Et modifiez /etc/ldap/ldap.conf pour utiliser le certificat:

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.

6. Start the Kerberos KDC and admin server:

sudo systemctl start krb5-kdc.service


sudo systemctl start krb5-admin-server.service

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.

Configuration secondaire de KDC


Configurer un KDC secondaire en utilisant le moteur LDAP est semblable à une configuration utilisant la base de données Kerberos normale.

1. Tout d'abord, installez les paquets nécessaires. Saisissez dans un terminal :

sudo apt install krb5-kdc krb5-admin-server krb5-kdc-ldap

2. Ensuite, modifiez /etc/krb5.conf pour utiliser le moteur LDAP :

[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"

# this object needs to have read rights on


# the realm container, principal container and realm sub-trees
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"

# this object needs to have read and write rights on


# the realm container, principal container and realm sub-trees
ldap_service_password_file = /etc/krb5kdc/service.keyfile
ldap_servers = ldaps://ldap01.example.com ldaps://ldap02.example.com
ldap_conns_per_server = 5
}

3. Créez un fichier de dissimulation (stash) pour y stocker le mot de passe de liaison à LDAP :

sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com stashsrvpw -f \ /etc/krb5kdc/service.keyfile


cn=admin,dc=example,dc=com

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.

sudo scp /etc/krb5kdc/.k5.EXAMPLE.COM steve@kdc02.example.com:~


sudo mv .k5.EXAMPLE.COM /etc/krb5kdc/

De nouveau, remplacez EXAMPLE.COM par votre domaine réel.

5. De retour sur le KDC secondaire, (re)démarrez seulement le serveur ldap,

sudo systemctl restart slapd.service

6. Enfin, démarrez le démon krb5-kdc:

sudo systemctl start krb5-kdc.service

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.

3. Another useful link is the krb5.conf 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

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy