19.5. Configuration d'un serveur Kerberos 5

Lors de la configuration de Kerberos, installez tout d'abord le serveur. S'il est nécessaire de configurer des serveurs esclaves, les informations détaillées relatives à la configuration de relations entre les serveurs maîtres et esclaves sont présentées fournies dans le guide d'installation de Kerberos V5 (Kerberos 5 Installation Guide) qui se trouve dans le répertoire /usr/share/doc/krb5-server-<numéro-version> (remplacez <version-number> par le numéro de la version du paquetage krb5-server installée 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 du temps entre le serveur Kerberos et ses différents clients. Si le horloge du serveur et celle des 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 agresseur d'utiliser un ancien ticket afin de 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 bénéficier d'une sécurité très élevée — dans la mesure du possible, elle ne devrait exécuter aucun service autre que le KDC.

    Si une interface utilisateur graphique (ou GUI) est nécessaire pour l'administration de Kerberos, installez le paquetage gnome-kerberos. Celui-ci contient krb5, un outil graphique permettant 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 zone et domaine-à-zone. Une simple zone (aussi appelée realm) peut être construite 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 approprié des noms contenant des lettres majuscules et de ceux avec des minuscules — et en remplaçant le KDC kerberos.example.com par le 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 obtenir des informations plus détaillées sur les différents formats 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 stockera les clés pour votre realm Kerberos. L'option -s permet la création forcée d'un fichier stash dans lequel la clé du serveur maître est conservé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 saisisse le mot de passe du serveur maître (qui permet de recréer la clé) chaque fois qu'il est lancé.

  5. Éditez le fichier /var/kerberos/krb5kdc/kadm5.acl. Ce fichier est utilisé par kadmind d'une part afin de déterminer 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 suffit à 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 principal (avec une instance NULL ou vide, tel que joe@EXEMPLE.COM). Avec cette configuration, les utilisateurs ayant un second principal avec une instance admin (par exemple, joe/admin@EXEMPLE.COM) peuvent exercer un pouvoir total sur la base de données Kerberos du realm.

    Une fois que kadmind est lancé sur le serveur, tout utilisateur peut accéder à ses services en exécutant kadmin sur un client ou serveur quelconque du realm. Toutefois, seuls les utilisateurs spécifiés dans le fichier kadm5.acl peuvent modifier le contenu de la base de données, à l'exception du changement de leur propre mot de passe.

    NoteRemarque
     

    L'utilitaire kadmin communique avec le serveur kadmind sur le réseau et utilise Kerberos pour effectuer l'authentification. Pour cette raison, il est nécessaire que le premier principal existe avant d'effectuer une connexion au serveur sur le réseau afin de l'administrer. 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 ne nécessite 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 de kadmin pour obtenir de plus amples informations.

  8. Vérifiez que le KDC émet bien des tickets. Tout d'abord, exécutez kinit pour obtenir un ticket et stockez-le 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 en utilisant le même nom d'utilisateur que celui servant à la connexion au système (pas le serveur Kerberos). Si ce nom d'utilisateur ne correspond pas à un principal de la base de données Korberos, kinit émet un message d'erreur. Dans ce cas, donnez à kinit le nom du bon principal en l'insérant comme argument sur la ligne de commande (kinit <principal>).

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