====== Installation de la plateforme ====== 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. ===== L'architecture ===== 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). ==== Les fils du Temps ==== 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. ==== le « KDC » ==== 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... ==== Le client ==== 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 : * aux administrateurs du royaume de faire leur travail d'administration ; * aux utilisateurs d'obtenir auprès du KDC les accréditations qui leurs seront nécessaires. Dans ce scénario, l'hôte client s'appèlera ''pchris.maison.mrs'' et fonctionnera sous Ubuntu Karmic Koala. ==== Le serveur ==== 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.