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.