Configurer un serveur Kerberos 5

Lors de la configuration de Kerberos, installez tout d'abord le serveur. Si vous devez configurer des serveurs esclaves, les détails des relations de configuration entre les serveurs maître et esclaves sont présentées dans le Guide d'installation Kerberos V5 (dans le /usr/share/doc/krb5-server-<numéro-de-version>).

Pour installer un serveur Kerberos :

  1. Assurez-vous que la synchronisation de l'horloge et le DNS fonctionnent sur votre serveur avant d'installer Kerberos 5. 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 (ce chiffre par défaut est configurable dans Kerberos 5), les clients ne pourront pas s'authentifier sur le serveur. Cette synchronisation de l'horloge est nécessaire pour empêcher un agresseur d'utiliser un ancien authentificateur pour se déguiser en un utilisateur valide.

    Vous devriez configurer un réseau client/serveur compatible NTP (protocole de synchronisation de réseau) à l'aide de Red Hat Linux, même si vous n'utilisez pas Kerberos. Red Hat Linux 7.3 inclut le paquetage ntp afin de faciliter l'installation. Pour obtenir des informations complémentaires sur NTP, consultez http://www.eecis.udel.edu/~ntp.

  2. Installez les paquetages krb5-libs, krb5-server et krb5-workstation sur la machine sur laquelle tournera votre KDC. Cette machine doit être sécurisée — si possible ; elle ne devrait pas exécuter de services autres que le KDC.

    Si vous souhaitez utiliser un utilitaire d'interface utilisateur graphique GUI pour gérer Kerberos, vous devez également installer le paquetage gnome-kerberos. Celui-ci contient krb5, un outil GUI pour gérer les tickets, et gkadmin, un outil GUI pour gérer les zones de Kerberos.

  3. Editez les fichiers de configuration /etc/krb5.conf et /var/kerberos/krb5kdc/kdc.conf afin de refléter votre nom de zone et les configurations domaine-à-zone. Une simple zone peut être construite en remplaçant les instances de EXEMPLE.COM et exemple.com avec votre nom de domaine — assurez-vous de bien garder les noms en majuscules et minuscules dans le format approprié — et en changeant le KDC de kerberos.exemple.com par le nom de votre serveur Kerberos. Par convention, tous les noms de zones sont en majuscules et tous les noms d'hôtes DNS ainsi que les noms de domaines en minuscules. Pour obtenir des informations complètes sur les formats de ces fichiers, reportez-vous aux pages respectives de leur manuel.

  4. Créez la base de données à l'aide de l'utilitaire kdb5_util à partir d'une invite 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 de votre zone Kerberos. Le commutateur -s force la création d'un fichier stash dans lequel est stocké la clé du serveur maître. S'il n'existe aucun fichier stash à partir duquel lire la clé, le serveur Kerberos (krb5kdc) demandera à l'utilisateur le mot de passe du serveur maître (qui peut être utilisé pour régénérer la clé) à chaque fois qu'il sera lancé.

  5. Editez le fichier /var/kerberos/krb5kdc/kadm5.acl. Ce fichier est utilisé par kadmind afin de déterminer quels éléments principaux ont accès à la base de données de Kerberos et de définir leur niveau d'accès. Une seule ligne suffira à la plupart des organisations :

    */admin@EXEMPLE.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 de la zone.

    Une fois kadmind lancé sur le serveur, n'importe quel utilisateur pourra accéder à ses services en exécutant kadmin ou gkadmin sur tous les clients ou serveurs de la zone. Toutefois, les utilisateurs non spécifiés dans le fichier kadm5.acl ne pourront en aucun cas modifier la base de données ; le seul changement qu'il leur sera possible d'effectuer sera celui de leurs propres mots de passe.

    NoteRemarque
     

    Les utilitaires kadmin et gkadmin communiquent avec le serveur kadmind sur le réseau et ils utilisent Kerberos pour gérer l'authentification. Bien sûr, vous devez créer le premier élément principal avant de pouvoir vous connecter au serveur sur le réseau afin qu'il puisse le gérer. Pour ce faire, utilisez la commande kadmin.local, qui est spécifiquement conçue 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 au terminal KDC afin de créer le premier élément principal :

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

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. Ajoutez des éléments principaux pour vos utilisateurs à l'aide de la commande addprinc avec kadmin ou à l'aide de l'optionde menu Principal => Add dans gkadmin. kadmin et kadmin.local, sur le KDC maître, sont des interfaces de ligne de commande pour le système d'administration de Kerberos. En tant que telles, de nombreuses commandes sont disponibles après le lancement du programme kadmin. Veuillez vous référez à la page de manuel kadmin pour plus d'informations.

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

    NoteRemarque
     

    Par défaut, kinit tente de vous authentifier en utilisant le nom d'utilisateur de connexion du 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 Kerberos, un message d'erreur s'affichera. Le cas échéant, 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, votre serveur Kerberos devrait être opérationnel. Vous devrez ensuite configurer vos clients Kerberos.