18.5. Configuration d'un serveur Kerberos 5

Lors de la configuration de Kerberos, installez tout d'abord le serveur. Si vous devez configurer des serveurs esclaves, les relations de configuration entre les serveurs maîtres et esclaves sont présentées de façon détaillée dans le Guide d'installation Kerberos V5 qui se trouve dan le répertoire /usr/share/doc/krb5-server-<numéro-version> (remplacez <version-number> par le numéro de version du paquetage krb5-server installé sur votre système).

Pour installer un serveur Kerberos, suivez les étapes suivantes :

  1. Avant d'installer Kerberos 5, assurez-vous que la synchronisation de l'horloge et que le DNS fonctionnent sur tous les ordinateurs clients et serveurs. Prêtez une attention toute particulière à la synchronisation de l'heure entre le serveur Kerberos et ses différents clients. Si les horloges du serveur et du client diffèrent de plus de cinq minutes (cette durée par défaut est configurable dans Kerberos 5), les clients Kerberos ne pourront pas s'authentifier auprès du serveur. Cette synchronisation de l'horloge est nécessaire pour empêcher un pirate d'utiliser un ancien ticket pour se faire passer pour un utilisateur valide.

    Il est recommandé de configurer un réseau client/serveur compatible avec NTP (Network Time Protocol) même si vous n'utilisez pas Kerberos. Red Hat Enterprise Linux inclut le paquetage ntp pour cette raison. Consultez /usr/share/doc/ntp-<version-number>/index.htm pour obtenir des informations détaillées sur la configuration des serveurs Network Time Protocol et rendez-vous à l'adresse suivante : http://www.eecis.udel.edu/~ntp pour obtenir des informations supplémentaires sur NTP.

  2. Installez les paquetages krb5-libs, krb5-server et krb5-workstation sur la machine choisie pour l'exécution du KDC. Cette machine doit être vraiment trèssécurisée — dans la mesure du possible, elle ne devrait exécuter aucun service autre que le KDC.

    Si une interface utilisateur graphique ( GUI) est nécessaire pour l'administration de Kerberos, installez le paquetage gnome-kerberos. Celui-ci contient krb5, un outil graphique pour la gestion des tickets.

  3. Éditez les fichiers de configuration /etc/krb5.conf et /var/kerberos/krb5kdc/kdc.conf afin qu'ils correspondent aux mappages nom de realm et domaine-à-realm. Un simple realm peut être construit en remplaçant des instances de EXAMPLE.COM et example.com par le nom de domaine correct — en vous assurant de bien respecter le format correct des noms contenant des lettres majuscules et minuscules — et en changeant le KDC de kerberos.example.com au nom de votre serveur Kerberos. Par convention, tous les noms de realm sont en lettres majuscules et tous les noms d'hôtes et de domaines DNS sont en lettres minuscules. Pour des informations plus détaillées sur le format de ces fichiers, consultez leurs pages de manuel respectives.

  4. Créez la base de données en utilisant l'utilitaire kdb5_util à partir de l'invite du shell :

    /usr/kerberos/sbin/kdb5_util create -s 

    La commande create crée la base de données qui sera utilisée pour stocker les clés pour votre realm dans Kerberos. L'option -s permet la création forcée d'un fichier stash dans lequel la clé du serveur maître est stockée. En l'absence d'un fichier stash à partir duquel la clé peut être lue, le serveur Korberos (krb5kdc) enverra une invite pour que l'utilisateur entre le mot de passe du serveur maître (qui permet de recréer la clé) à chaque fois qu'il sera lancé.

  5. Éditez le fichier /var/kerberos/krb5kdc/kadm5.acl Ce fichier est utilisé par kadmind afin de déterminer d'une part les éléments principaux devant avoir un accès administratif à la base de données de Kerberos et d'autre part, afin de définir leur niveau d'accès. Une seule ligne suffira à la plupart des sociétés, comme dans l'exemple ci-dessous :

    */admin@EXAMPLE.COM  *

    La plupart des utilisateurs seront représentés dans la base de données par un seul élément principal (avec une instance NULL ou vide, telle que joe@EXEMPLE.COM). Avec cette configuration, les utilisateurs ayant un second élément principal avec comme instance admin (par exemple, joe/admin@EXEMPLE.COM) pourront exercer un pouvoir total sur la base de données Kerberos du realm.

    Une fois que kadmind est lancé sur le serveur, tout utilisateur pourra accéder à ses services en exécutant kadmin sur tout client ou serveur du realm. Toutefois, les utilisateurs non-spécifiés dans le fichier kadm5.acl ne pourront modifier le contenu de la base de données d'aucune manière, à l'exception de leurs propres mots de passe qu'ils seront à même de changer.

    NoteRemarque
     

    L'utilitaire kadmin communique avec le serveur kadmind sur le réseau et utilise Kerberos pour effectuer l'authentification. Pour cette raison, le premier principal doit exister avant toute connexion au serveur sur le réseau afin que son administration soit possible. Pour créer le premier principal, utilisez kadmin.local, une commande conçue spécifiquement pour être utilisée sur le même hôte que le KDC et qui n'emploie pas Kerberos pour l'authentification.

    Tapez la commande kadmin.local suivante sur terminal KDC afin de créer le premier élément principal :

    /usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
  6. Lancez Kerberos à l'aide des commandes suivantes :

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. Ajoutez des principaux pour les utilisateurs à l'aide de la commande addprinc avec kadmin. Les commandes kadmin et kadmin.local sont des interfaces de ligne de commande vers le KDC. En tant que telles, de nombreuses commandes sont disponibles après le lancement du programme kadmin. Reportez-vous à la page de manuel relative à kadmin pour obtenir de plus amples informations.

  8. Vérifiez que le KDC émet bien des tickets. Tout d'abord, exécutez kinit afin d'obtenir un ticket et de le stocker dans un fichier de cache de certificats d'identité. Utilisez ensuite klist pour afficher la liste des certificats d'identité présents dans votre cache et utilisez kdestroy pour détruire le cache et les certificats qu'il contient.

    NoteRemarque
     

    Par défaut, kinit tente une authentification à l'aide du nom d'utilisateur de connexion associé au compte utilisé lorsque vous vous êtes connecté pour la première fois à votre système (pas au serveur Kerberos). Si le nom d'utilisateur de ce système ne correspond pas à un élément principal dans votre base de données Korberos, un message d'erreur s'affichera. Dans ce cas, indiquez simplement à kinit le nom de votre élément principal en tant qu'argument sur la ligne de commande (kinit élément principal).

Une fois les étapes ci-dessus réalisées, le serveur Kerberos devrait être opérationnel.