[Samba] heimdal/AD documentation
Pascal Levy
pascal.levy at univ-paris3.fr
Mon Oct 13 14:00:58 GMT 2008
as i promise last week, a incomplete documentation about configuring a trust
beetween a heimdal kdc and a windows AD domain
really sorry for non-french speakers
of course, i'm very interresting in any feedback...
Pascal
configuration
- le realm Kerberos est DEMO.LOCAL
- le realm du domaine AD est ad.demo.local
La configuration du KDC lui même ne présente pas de difficulté particulière.
Nous utilisons un KDC Heimdal sur un serveur FreeBSD 6.2. Le service de nom
de domaine est utilisé pour localiser les services du KDC, rendant la
configuration des postes clients minimale (utile surtout pour les postes non
windows). Les enregistrements spécifiques créés pour Kerberos :
kerberos IN CNAME ns0
_kerberos._udp IN SRV 01 00 88 kerberos
_kerberos._tcp IN SRV 01 00 88 kerberos
_kpasswd._udp IN SRV 01 00 464 kerberos
_kerberos-adm._tcp IN SRV 01 00 749 kerberos
_kerberos IN TXT DEMO.LOCAL
Attention : Kerberos est très sensible à deux choses : la synchronisation
(nécessité d'utiliser ntp pour synchroniser les horloges des machines
impliquéees) et la résolution de nom. l'utilisation d'un CNAME pour le
serveur ne pose pas de problème, mais la résolution inverse (PTR) doit
absolument être configurée de manière adéquate.
Pour le détail de l'installation du KDC, suivre l'excellent article du
handbook FreeBSD.
Mise en place de la relation de confiance :
La confiance entre les deux realms Kerberos repose sur un principal partagé
avec une clef commune.
- côté Windows :
dans Outils d'administrations > Domaines et approbations Active Directory
Sur le domaine AD (ici ad.demo.local) clic droit et propriété, puis onglet
approbations, cliquer sur nouvelle approbation.
Suivre l'assistant, grosso modo, on peut tout laisser par défaut. Le mot de
passe choisi est particulièrement important : la sécurité de la relation
d'approbation repose sur lui... Par contre, il n'aura à être rentré que deux
fois à la création des clefs et n'a même pas besoin d'être conservé.
- côté Unix :
se connecter à l'application d'administration du realm en faisant par
exemple :
# kadmin -l
créer la clef de confiance :
kadmin> ank krbtgt/AD.DEMO.LOCAL at DEMO.LOCAL
... avec le même mot de passe utilisé sous Windows. Un prinicipal suffit ici,
puisque l'approbation doit être unilatérale. Toute la difficulté consiste
dans la gestion catastrophique des types de clefs par Windows. Le plus simple
consiste à laisser Heimdal créer ses clefs avec les types par défaut et à
supprimer ensuite celles qui sont en trop pour ne laisser que le minimum. Ce
que supporte les différentes versions successives de Windows 2000 à 2003
n'est pas très clair. La seule solution raisonnable, à moins d'être sur de
son fait est de ne laisser que le type des-cbc-crc.
Pour voir le détail d'un principal et les types de clefs qu'il contient :
kadmin> get krbtgt/AD.DEMO.LOCAL
regarder la dernière ligne :
Keytypes(salttype[(salt-value)]): des3-cbc-sha1(pw-salt), des-cbc-md5
(pw-salt), des-cbc-md4(pw-salt), des-cbc-crc(pw-salt)
supprimer les types qui nous embêtent (enfin, qui embêtent l'AD...) avec par
exemple :
kadmin> del_enctype krbtgt/AD.DEMO.LOCAL des3-cbc-sha1
etc, jusqu'à ne garder plus que
Keytypes(salttype[(salt-value)]): des-cbc-crc(pw-salt)
La relation de confiance devrait maintenant être fonctionnelle.
configuration des postes Windows :
Windows devrait savoir (dans certaines versions seulement...) utiliser DNS
pour retrouver le KDC (enregistrement SRV) mais de toute façon pas le realm
(enregistrement TXT). Il faut donc intervenir sur chaque machine, à commencer
par le pdc lui même avec un outil qui se trouve dans les supports tools de
Windows 2003 serveur, à trouver sur le CD et installer séparément. Ensuite :
ksetup /addkdc DEMO.LOCAL kerberos.bsg.local
mappage des utilisateurs
Pour que les utilisateurs puissent accéder aux ressources du domaine, l'AD
doit pouvoir trouver un compte qui corresponde. Il faut réaliser un mappage
entre les principals Kerberos et les comptes du domaine. Le mappage peut être
réalisé globalement avec
ksetup /mapuser * *
ou par utilisateur dans l'interface de gestion des comptes de l'AD. Activer
les "fonctions avancées" et faire un clic droit sur l'utilisateur et "mappage
des utilisateurs"
on devrait maintenant pouvoir se logger sur un poste du domaine en utilisant
le domaine Kerberos...
quelques outils utiles...
sur unix :
acquérir un ticket initial sur un KDC
# kinit principal at REALM
lister les tickets kerberos avec le détails (notamment les fameux
enctypes...)
# klist -v
se connecter sur un partage en utilisant le ticket kerberos :
# smbclient -k //serveur/partage
on peut aussi accèder au ldap du contrôlleur de domaine :
ldapsearch -H ldap://dc.ad.bsg.local -b "dc=ad,dc=bsg,dc=local"
sur Windows :
il faut installer le ressource Kit Windows (à télécharger sur microsoft.com)
pour utiliser klist.exe et ktray.exe (nom exact ?) qui permettent de voir les
tickets acquis dans une session Windows.
--
Pascal Levy
Ingénieur réseaux & ressources informatiques
Bibliothèque InterUniversitaire Sainte Geneviève
tél. : (33) 1 44 41 97 53
Bibliothèque InterUniversitaire de Langues Orientales
tél. : (33) 1 44 77 95 00
pascal.levy at univ-paris3.fr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://lists.samba.org/archive/samba/attachments/20081013/34b3e30d/attachment.bin
More information about the samba
mailing list