Vous êtes sur la page 1sur 6

Mcanisme dauthentifications : Kerberos

Responsables du TP : O. Allovon, D. Fossier, F. Gratta, B. Sauvajon Base : Systme linux et Windows 2000 en salle TP B120 Accs Internet Accs administrateur Stations tudiants. Travail par groupe de 3 Installation de Kerberos, mise en place dun domaine

1 - Prsentation de Kerberos
Vocabulaire et principales commandes Dans un environnement fournissant des services rseaux on utilise des clients pour accder ces services. Par exemple, une personne connecte sur une station de travail souhaitant se connecter par rlogin sur un serveur UNIX utilisera le client rlogin pour se connecter au dmon rlogind sur le serveur. Sous Kerberos, le serveur klogind vous autorisera vous connecter une machine distante si vous pouvez fournir klogind un ticket prouvant votre identit. En plus de ce ticket, vous devez tre en possession de la clef de session correspondant au ticket. La combinaison du ticket et de sa cl de session est appele credential. Typiquement, une application cliente obtient automatiquement un credential (rfrence) identifiant la personne utilisant cette application. Les rfrences sont obtenus auprs d'un serveur Kerberos sur le rseau. Le serveur Kerberos maintient une base d'informations concernant les utilisateurs, les serveurs (ou services rseaux) et les mots de passe (lis aux utilisateurs et serveurs). Kerberos ne vous fournira de rfrence que si vous correspondez une entre dans la base du serveur Kerberos. Cette entre correspond en fait votre principal (une chane d'identification, en gnral, votre login) et votre mot de passe. Tout utilisateur Kerberos doit avoir son entre dans la base. Chaque domaine d'administration doit avoir sa propre base d'administration contenant les utilisateurs et services de ce domaine. Ce domaine est appel Realm (= royaume) Kerberos. Chaque Realm doit tre gr par au moins un serveur Kerberos. Il peut galement contenir un ou plusieurs serveurs Kerberos esclaves contenant une copie de la base principale accessible en lecture seule, ces copies tant propages priodiquement partir du serveur. La commande 'kinit' vous demande un mot de passe. Si vous entrez le bon mot de passe, vous obtenez un Ticket-Granting Ticket ainsi qu'une cl de session pour ce ticket vous autorisant utiliser le TGT. La combinaison des deux correspond un credential (rfrence). Comme vous le verrez plus tard les programmes clients utilisent la rfrence associe votre TGT pour obtenir des rfrences spcifiques l'application. Vos rfrences sont stocks dans un cache, le plus souvent un simple fichier dans /tmp.

TP CS536 : Mcanismes dauthentifications : Kerberos

La base matre contient galement des entres pour chaque service utilisant l'authentification Kerberos. Supposons que nous avons une machine nomme laughter.mit.edu ncessitant une authentification kerberos pour toute personne souhaitant effectuer un rlogin dessus. Le Realm Kerberos de l'hote est ATHENA.MIT.EDU . Ce service doit tre enregistr dans la base Kerberos, en utilisant le nom du service, ce qui donne, dans ce cas, le principal : host/laughter.mit.edu@ATHENA.MIT.EDU Le / spare le primary (ici le service host) de l'instance (ici laughter.mit.edu, soit le nom d'hte) et le @ spare le Realm du reste du principal. Nous pouvons ainsi utiliser diffrentes machines fournissant le mme service et fournir plusieurs services par machine. A chaque ticket correspond un mot de passe connu uniquement du serveur Kerberos et du service. Sur le serveur Kerberos le mot de passe est stock dans sa base. Sur l'hte hbergeant le service, le mot de passe est stock dans une table de cls nomme keytab. Par exemple les cls utilises par les services fonctionnant en tant que root sont stockes dans /etc/krb5.keytab.

2 Organisation de la sance
Nous allons nous rpartir en deux groupes dtudiants qui travailleront en parallle (1 groupe de 4 personnes et un groupe de 5). Chaque groupe devra mettre en place son propre domaine parmi les suivants : Domaine n1 : ESISAR1 Domaine n2 : ESISAR2 Chacun de ces deux domaines sera compos : Dun serveur Kerberos v5 sur linux. Dun client Kerberos v5 sur linux. Dun client Kerberos v5 sur windows 2000. Chacune des machine sera dsigne par <nom hote>.<nom domaine>. Comme nous nallons pas installer de serveur de nom pour chacun de ces domaines, vous devrez modifier les fichiers hosts de chaque machine afin de faire la correspondance adresse ip/nom de machine. Sous windows : C:\WINNT\System32\drivers\etc\hosts Sous Linux : /etc/hosts Dans ce TP, vous mettrez en place dans un premier temps chacun de ces deux domaines. Ensuite vous mettrez en place des applications kerbrises du type : Telnet, ssh. Ensuite vous utiliserez des modules PAM pour permettre de personnaliser lauthentification de KDM (KDE). Vous configurerez aussi Windows pour permettre de centraliser lauthentification sur le serveur Kerberos.

TP CS536 : Mcanismes dauthentifications : Kerberos

3 Installation du serveur Kerberos et cration du domaine


Installation des packages # apt-get install krb5-kdc krb5-admin-server krb5-doc krb5user libkrb5-dev krb5-rsh-server Pendant l'installation, des scripts de configuration interactifs proposent de paramtrer les options pour le KDC, le serveur d'administration et les clients. La configuration du serveur est indique dans les fichiers suivants : /etc/krb5.conf : contient les informations que toutes les machines intgres au REALM Kerberos doivent connatre. /etc/krb5kdc/kdc.conf contient toutes les options indispensables au fonctionnement du KDC (o se trouve sa base, les cls, dure de vie de tickets et ports tcp/udp utiliss). Cration du REALM ESISAR : # kdb5_util create -r ESISAR -s Il vous faudra rentrer le mot de passe de la base de donne, ne pas loublier. Il faut ensuite rentrer la clef principale de la Base KDC. hote:/var/lib/krb5kdc# ls principal principal.kadm5 principal.kadm5.lock principal.ok Cration des comptes de base Il faut se connecter la base pour ajouter un compte normal et un compte d'administration : Vous crerez les comptes normaux sur les machines UNIX et sur le serveur Kerberos, de la forme suivante : prenom et mot de passe prenom (exemple : quicky pour quicky Thevenon). # kadmin.local Authenticating as principal root/admin@ESISAR with password. Tout d'abord, on demande la liste des comptes (principaux) : kadmin.local: listprincs K/M@ESISAR kadmin/admin@ESISAR kadmin/changepw@ESISAR kadmin/history@ESISAR krbtgt/ESISAR@ESISAR

TP CS536 : Mcanismes dauthentifications : Kerberos

Puis on ajoute un compte d'administration : kadmin: addprinc admin/admin WARNING: no policy specified for admin/admin@ESISAR; defaulting to no policy Enter password for principal "admin/admin@ESISAR": Re-enter password for principal "admin/admin@ESISAR": Principal "admin/admin@ESISAR" created. Cration des ACL pour kadmin Il faut maintenant autoriser les utilisateurs et administrateurs interroger ou modifier des comptes dans la base. Pour cela, il faut crer un fichier acl correspondant ce qui est indiqu dans /etc/krb5kdc/kdc.conf. # cat /etc/krb5kdc/kadm5.acl */admin * admin * mdp li * ci Cration du keytab pour kadmin Nous devons ajouter les principaux suivants dans le keytab du serveur. Ceci est ncessaire pour lancer kadmin : kadmin.local: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw Relancer le serveur # /etc/init.d/krb5-kdc start # /etc/init.d/krb5-admin-server start Starting Kerberos Administration Servers: kadmind Test du fonctionnement du serveur Pour vrifier le bon fonctionnement du serveur, tapez les commandes : # kinit <nom utilisateur> # klist Vous devrez alors avoir la liste des cls (credential) que vous possdez

TP CS536 : Mcanismes dauthentifications : Kerberos

4 Installation du client Linux


Installation du package # apt-get install krb5-user Pendant l'installation, des scripts de configuration interactifs proposent de paramtrer les options pour le KDC et le serveur d'administration. Les paramtres de la machine cliente se situent dans /etc/krb5.conf. Test du fonctionnement cot client Vous pouvez maintenant rcuprer des cls partir du serveur kerberos grce la commande kinit.

5 Installation dapplications kerberises


Installation du serveur Telnet Maintenant que le serveur Kerberos est correctement install, vous allez installer et configurer un serveur Telnet kerbris. Dans un premier temps, vous installerez le serveur telnet sur la mme machine que le serveur kerberos. Puis une fois que vous avez un fonctionnement correct, vous installerez le serveur telnet sur la deuxime machine linux du royaume. Lancez donc la commande : # apt-get install krb5-telnetd Configuration du serveur Kerberos Vous devez configurez correctement le serveur kerberos pour que le serveur telnet fonctionne convenablement. IL faut ajouter un principal correspondant la machine qui hberge le serveur telnet. Etant donn que le mot de passe de ce principal ne va pas tre rutilis, vous pouvez gnrer le mot de passe alatoirement. Installation du client Telnet sous linux Lancez la commande pour installer le client telnet linux : # apt-get install krb5-clients Pour tester si lapplication fonctionne correctement, il suffit de taper la commande suivante : # telnet.krb5 l nom utilisateur -a nom machine Afin de voir le fonctionnement de la communication avec le serveur, activez le mode debug sur ce client pour voir les changes. TP CS536 : Mcanismes dauthentifications : Kerberos 5

Installation du client Telnet sous Windows Vous tlchargerez lapplication Ktelnet sur le site http://www.stacken.kth.se/~thn/ktelnet/ Vous configurerez le client afin que celui-ci puisse se connecter sur le serveur Kerberos. Vous effectuerez le mme type de manipulation avec SSH sur le serveur et la machine cliente Linux.

6 Kerbrisation de lauthentification PAM


Dans cette partie, vous allez configurer le client Linux afin quil se connecte via authentification Kerberos, et non pas par simple login/password local. Pour cela, il va falloir modifier les fichiers de configuration de PAM : /etc/pam.d Et utiliser la bibliothque Kerberos pam_krb5.so. Vous allez utiliser un fichier common-auth que vous inclurez dans les fichiers PAM ncessaires via un @include common-auth Dans un premier temps ; vous kerberiserez le login non-graphique, puis le login graphique (le fichier sappelle KDE). Nhsitez pas regarder laide de pam.d . Le cas chant, demandez vos responsables de TP.

Pour aller plus loin 7 - Kerberisation de lauthentification Windows


Pour interroger le serveur kerberos lors de lauthentification windows, vous utiliserez loutil Ksetup tlchargeable ladresse : http://www.petri.co.il/download_free_restkit_tools.htm

8 - Communication inter-royaume.
Essayer de faire communiquer les 2 royaumes entre eux.

TP CS536 : Mcanismes dauthentifications : Kerberos