Kerberos nous l'avons vu, est un protocole complexe, qui fait intervenir pas mal de concepts. Les mettre en œuvre dans une démarche plus pragmatique, n'est pas superflu.
Nous disposons d'un réseau IP 192.168.0.0/24, dans lequel un domaine DNS « en bois » a été créé : maison.mrs
. Un serveur DNS est donc en mesure d'effectuer toutes les recherches directes dans ce domaine ainsi que les recherches inverses associées. Kerberos aime bien que les DNS soient propres.
Tous les hôtes qui entreront en jeu fonctionneront sous Debian Squeeze (serveurs) ou Ubuntu Karmic (clients).
L'exactitude est la politesse des rois, aussi ne faut-il pas s'étonner que l'exactitude temporelle revête au royaume de kerberos une importance particulière. Plus de 300 secondes (5 minutes) de divergence avec le serveur et c'est le bannissement définitif. Il est donc primordial de disposer, au sein du royaume, d'une horloge de référence, et tous les membres du royaumes doivent être synchronisés avec. Pour que ça marche, il ne faut pas que les horloges des protagonistes dérivent entre elles de plus de 300 secondes.
Dans notre réseau IP 192.168.0.0/24, nous disposons d'un serveur de temps (NTP) qui fera une horloge de référence tout à fait acceptable.
Dans ce réseau, un hôte kerberos.maison.mrs
va héberger le « serveur » kerberos. Installation du paquet krb5-admin-server
:
kerberos:~# aptitude install krb5-admin-server Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Lecture de l'information d'état étendu Initialisation de l'état des paquets... Fait Lecture des descriptions de tâches... Fait Les NOUVEAUX paquets suivants vont être installés : bind9-host{a} geoip-database{a} krb5-admin-server krb5-config{a} krb5-kdc{a} krb5-user{a} libbind9-50{a} libcap2{a} libdns53{a} libgeoip1{a} libgssrpc4{a} libisc50{a} libisccc50{a} libisccfg50{a} libkadm5clnt-mit7{a} libkadm5srv-mit7{a} libkdb5-4{a} liblwres50{a} 0 paquets mis à jour, 18 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de télécharger 2 491ko d'archives. Après dépaquetage, 6 451ko seront utilisés. Voulez-vous continuer ? [Y/n/?]
L'installation va poser quelques questions d'apparence anodine, mais lourdes de conséquences cependant. Comme nous allons revenir sur les fichiers de configuration, nous verrons cela plus tard.
Pour l'instant, les dépendances du paquet krb5-admin-server
offrent un intérêt plus immédiat :
krb5-config
est un paquet que nous retrouverons sur tous les protagonistes de la plateforme, il va déterminer principalement la topologie du royaume kerberos ;krb5-user
contient des outils d'utilisation de kerberos. Apriori à mettre entre les mains de tous les clients qui ont besoin de l'authentification kerberos ;krb5-kdc
contient la partie dite kdc
(Key Distribution Center), deux des trois têtes du cerbère (AS et TGS). Ce paquet devra être installé sur d'éventuels serveurs kerberos esclaves, très utiles en production, mais inutiles ici, pour nos tests.Les autres dépendances sont des bibliothèques associées ou des outils associés à DNS (kerberos aime NTP et DNS).
En réalité, la paquet le plus important est ici krb5-kdc
. krb5-admin-server
n'apporte, comme son nom semble l'indiquer, que des outils d'administration locale de l'usine kerberos.
N'oublions pas de nous assurer, par un moyen quelconque (ntpdate+cron, ntpd), que l'horloge de cet hôte reste raisonnablement synchronisée avec notre référence de temps. Rappelez-vous, pas plus de 300 secondes de dérive…
Ici, juste une station de travail sur laquelle nous installons krb5-user
. Par dépendance, krb5-config
viendra avec.
krb5-user
fournira les outils qui permettront :
Dans ce scénario, l'hôte client s'appèlera pchris.maison.mrs
et fonctionnera sous Ubuntu Karmic Koala.
Ce serveur est destiné à fournir des services dont l'accès sera autorisé ou non, en fonction des accréditations que ses clients pourront obtenir du KDC. Dans cet exemple, nous installerons un serveur http (apache) dont l'accès sera soumis à authentification via kerberos.
Le paquet krb5-user
sera installé dessus également par commodité, mais ce n'est pas une obligation.
Dans ce scénario, le serveur s'appèlera apache-krb.maison.mrs
, il fonctionnera sous Debian Squeeze.