MIT Kerberos V5-1.21.3

Introduction à MIT Kerberos V5

MIT Kerberos V5 est une implémentation libre de Kerberos 5. Kerberos est un protocole d'authentification réseau. Il centralise la base de données d'authentification et il utilise des applications kerberizées pour fonctionner avec des serveurs ou des services qui supportent Kerberos, ce qui permet des connexions isolées et une communication chiffrée sur des réseaux internes ou sur Internet.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : beb34d1dfc72ba0571ce72bed03e06eb

  • Taille du téléchargement : 8,7 Mo

  • Estimation de l'espace disque requis : 95 Mo (plus 14 Mo pour les tests)

  • Estimation du temps de construction : 0,3 SBU (avec parallélisme = 4 ; plus 1,1 SBU pour les tests)

Dépendances de MIT Kerberos V5

Facultatives

BIND Utilities-9.20.0, CrackLib-2.10.2 (/usr/share/dict/words est référencé par certains tests), GnuPG-2.4.5 (pour authentifier le paquet), keyutils-1.6.3, OpenLDAP-2.6.8, Valgrind-3.23.0 (utilisé durant la suite de tests), yasm-1.3.0, libedit, cmocka, kdcproxy, pyrad et resolv_wrapper

[Note]

Note

Certaines fonctionnalités de synchronisation du temps sur votre système (comme ntp-4.2.8p18) sont nécessaires, étant donné que Kerberos n'authentifiera pas s'il y a une différence de temps entre un client kerberizé et le serveur KDC.

Installation de MIT Kerberos V5

Construisez MIT Kerberos V5 en exécutant les commandes suivantes :

cd src &&
sed -i -e '/eq 0/{N;s/12 //}' plugins/kdb/db2/libdb2/test/run.test &&

./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --runstatedir=/run       \
            --with-system-et         \
            --with-system-ss         \
            --with-system-verto=no   \
            --enable-dns-for-realm   \
            --disable-rpath          &&
make

Pour tester la construction, tapez : make -j1 -k check. Certains tests peuvent échouer avec la dernière version de dejagnu et glibc. Certains tests peuvent prendre longtemps et échouer si le système n'est pas connecté au réseau. Un test, t_kadm5srv, est connu pour échouer. Si keyutils-1.6.3 est installé mais que Configuration du noyau pour Keyutils n'est pas satisfaite, certains tests échoueront en affichant : keyctl failed with code 1.

Maintenant, en tant qu'utilisateur root :

make install &&
cp -vfr ../doc -T /usr/share/doc/krb5-1.21.3

Explication des commandes

La commande sed supprime un test connu pour échouer.

--localstatedir=/var/lib : ce paramètre est utilisé pour que les données d'exécution variables de Kerberos soient dans /var/lib au lieu de /usr/var.

--runstatedir=/run : Ce paramètre est utilisé pour que l'état à l'exécution de Kerberos soit dans /rune au lieu de /var/run qui est obsolète.

--with-system-et : Ce paramètre a pour conséquence d'utiliser la version du système de la bibliothèque de prise en charge error-table.

--with-system-ss : Ce paramètre a pour conséquence d'utiliser la version du système de l'interface en ligne de commande des sous-systèmes.

--with-system-verto=no : ce paramètre corrige un bogue dans le paquet : il ne reconnaît pas sa propre bibliothèque verto installée précédemment. Ce n'est pas un problème, à la réinstallation de la même version, mais si vous mettez à jour, l'ancienne bibliothèque est utilisée comme celle du système, au lieu d'installer la nouvelle version.

--enable-dns-for-realm : Ce paramètre permet aux realms d'être résolus en utilisant le serveur DNS.

--disable-rpath : ce paramètre empêche de coder en dur les chemins de recherche des bibliothèques partagées (rpath) dans les fichiers binaires exécutables et les bibliothèques partagées. Ce paquet n'a pas besoin des rpath pour une installation dans l'emplacement standard, et les rpath peuvent parfois causer des effets secondaires indésirables voire des problèmes de sécurité.

--with-ldap : Utilisez ce paramètre si vous voulez compiler le greffon de moteur de base de données de OpenLDAP.

Configuration de MIT Kerberos V5

Fichiers de configuration

/etc/krb5.conf et /var/lib/krb5kdc/kdc.conf

Informations de configuration

Configuration de Kerberos
[Astuce]

Astuce

Vous devriez songer à installer un dictionnaire de vérification des mots de passe afin de pouvoir configurer l'installation pour n'accepter que les mots de passe forts. Un dictionnaire utilisable de manière convenable est indiqué dans les instructions pour CrackLib-2.10.2. Remarquez qu'on ne peut utiliser qu'un fichier, mais vous pouvez compacter plusieurs fichiers dans un seul. Le fichier de configuration montré ci-dessous suppose que vous avez installé un dictionnaire dans /usr/share/dict/words.

Créez le fichier de configuration Kerberos avec les commandes suivantes, que vous lancerez en tant qu'utilisateur root :

cat > /etc/krb5.conf << "EOF"
# Begin /etc/krb5.conf

[libdefaults]
    default_realm = <EXAMPLE.ORG>
    encrypt = true

[realms]
    <EXAMPLE.ORG> = {
        kdc = <belgarath.example.org>
        admin_server = <belgarath.example.org>
        dict_file = /usr/share/dict/words
    }

[domain_realm]
    .<example.org> = <EXAMPLE.ORG>

[logging]
    kdc = SYSLOG:INFO:AUTH
    admin_server = SYSLOG:INFO:AUTH
    default = SYSLOG:DEBUG:DAEMON

# End /etc/krb5.conf
EOF

Vous devrez mettre votre nom de domaine et d'hôte à la place des occurrences des noms <belgarath> et de <example.org>.

default_realm devrait être le nom de votre domaine, modifié en MAJUSCULES. Ce n'est pas nécessaire mais tant Heimdal que MIT le recommandent.

encrypt = true fournit le chiffrement de tout le trafic entre les clients et les serveurs kerberizés. Ce n'est pas nécessaire et vous pouvez le laisser désactivé. Si vous le laissez désactivé, vous pouvez plutôt chiffrer tout le trafic du client vers le serveur en utilisant un paramètre sur le client.

Les paramètres [realms] disent aux clients où chercher les services d'authentification KDC.

La section [domain_realm] associe un nom de domaine à un domaine.

Créez la base de données KDC :

kdb5_util create -r <EXAMPLE.ORG> -s

Maintenant vous devriez peupler la base de données avec des utilisateurs clés (utilisateurs). Utilisez pour l'instant votre identifiant normal ou root.

kadmin.local
kadmin.local: add_policy dict-only
kadmin.local: addprinc -policy dict-only <loginname>

Le serveur KDC et les machines qui font fonctionner des démons kerberizés doivent avoir installée une clé d'hôte :

kadmin.local: addprinc -randkey host/<belgarath.example.org>

Après avoir choisi les paramètres par défaut quand on vous y invite, vous devrez exporter les données vers un fichier de table de clé :

kadmin.local: ktadd host/<belgarath.example.org>

Cela devrait créer un fichier dans /etc nommé krb5.keytab (Kerberos 5). Ce fichier devrait avoir les permissions 600 (lecture-écriture seulement par root). Ôter de l'accès public les fichiers de tables de clés est crucial pour toute la sécurité de l'installation de Kerberos.

Quittez le programme kadmin (utilisez quit ou exit) et retournez à l'invite du shell. Démarrez à la main le démon KDC, simplement pour tester l'installation :

/usr/sbin/krb5kdc

Essayez d'obtenir un ticket avec la commande suivante :

kinit <loginname>

On vous demandera le mot de passe que vous avez créé. Après avoir obtenu votre ticket, vous pouvez le lister avec la commande suivante :

klist

Des informations sur le ticket devrait apparaître à l'écran.

Pour tester la fonctionnalité du fichier keytab, lance la commande suivante en tant qu'utilisateur root :

ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: l

Cela devrait renvoyer une liste d'utilisateurs clés hôtes, ainsi que les méthodes de chiffrement utilisées pour accéder à l'utilisateur clé.

Créez un fichier d'ACL vide qui pourra être modifié plus tard :

touch /var/lib/krb5kdc/kadm5.acl

À ce moment-là, si tout s'est bien passé jusqu'ici, vous pouvez avoir confiance dans l'installation, le paramétrage et la configuration du paquet.

Informations supplémentaires

Pour des informations supplémentaires, consultez Documentation for krb5-1.21.3 (la documentation) sur laquelle se basent les instructions ci-dessus.

Unité Systemd

Si vous voulez démarrer des services Kerberos au démarrage, installez l'unité krb5.service incluse dans le paquet blfs-systemd-units-20240801 en utilisant la commande suivante :

make install-krb5

Contenu

Programmes installés: gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util (facultatif), kdb5_util, kdestroy, kinit, klist, kpasswd, kprop, kpropd, kproplog, krb5-config, krb5-send-pr, krb5kdc, ksu, kswitch, ktutil, kvno, sclient, sim_client, sim_server, sserver, uuclient et uuserver
Bibliothèques installées: libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt_mit.so, libkadm5clnt.so, libkadm5srv_mit.so, libkadm5srv.so, libkdb_ldap.so (optional), libkdb5.so, libkrad.so, libkrb5.so, libkrb5support.so, libverto.so, et plusieurs modules dans l'arborescence /usr/lib/krb5
Répertoires installés: /usr/include/{gssapi,gssrpc,kadm5,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.21.3,examples/krb5}, /var/lib/krb5kdc et /run/krb5kdc

Descriptions courtes

gss-client

est un client GSSAPI de test

gss-server

est un serveur GSSAPI de test

k5srvutil

est un outil de manipulation de tables de clés hôtes

kadmin

est un outil utilisé pour faire des modifications dans la base de données Kerberos

kadmin.local

est un utilitaire similaire à kadmin, mais si la base de données est db2, le client local kadmin.local est prévu pour se lancer directement sur le KDC maître sans authentification Kerberos

kadmind

est un serveur d'accès pour administrer une base de données Kerberos

kdb5_ldap_util (facultatif)

permet à l'administrateur de gérer les realms, les services Kerberos et la politiques de billets

kdb5_util

est l'outil de base de données KDC

kdestroy

supprime le jeu de tickets actuel

kinit

est utilisé pour s'authentifier sur le serveur Kerberos en tant qu'utilisateur clé et obtenir un ticket autorisant un ticket pouvant être utilisé plus tard pour obtenir des tickets pour d'autres services

klist

lit et affiche les tickets actuels du cache de permissions

kpasswd

est un programme pour modifier des mots de passe Kerberos 5

kprop

prend une base de données d'utilisateurs clés dans un format spécifié et la convertit dans un flux d'enregistrements de base de données

kpropd

reçoit une base de données envoyée par kprop et l'écrit en tant que base de données locale

kproplog

affiche le contenu du log de mise à jour de la base de données KDC sur la sortie standard

krb5-config

donne des informations sur la façon de lier des programmes aux bibliothèques

krb5kdc

est le serveur Kerberos 5

krb5-send-pr

envoi les signalements de problèmes (PR) sur un site de support centralisé

ksu

est le programme super utilisateur utilisant le protocole Kerberos. Exige un /etc/shells correctement configuré et un ~/.k5login contenant des utilisateurs clés autorisés à devenir super utilisateurs

kswitch

met en cache les tickets spécifiés, le premier cache pour l'ensemble, si un groupe de caches est disponible

ktutil

est le programme de gestion des tables de clés Kerberos

kvno

affiche des numéros de version de clés des utilisateurs clés Kerberos

sclient

utilisé pour contacter un serveur modèle et s'y authentifier en utilisant des tickets de Kerberos version 5, puis affiche la réponse du serveur

sim_client

est un programme exemple de client basé sur UDP pour démonstration

sim_server

est un programme exemple de serveur basé sur UDP pour démonstration

sserver

est un modèle de serveur Kerberos version 5

uuclient

est un autre exemple de client

uuserver

est un autre exemple de serveur

libgssapi_krb5.so

contient les fonctions Generic Security Service Application Programming Interface (GSSAPI, interface de programmation d'application de service de sécurité générique) qui fournit des services de sécurité aux appelants de manière courante, supportable par une gamme de mécanismes et de technologies sous-jacentes, permettant donc une portabilité au niveau du code source d'applications vers différents environnements

libkadm5clnt.so

contient les fonctions de vérification de l'authentification et du mot de passe pour l'administration exigées par les programmes côté client Kerberos 5

libkadm5srv.so

contient les fonctions de vérification de l'authentification et du mot de passe pour l'administration exigées par les serveurs Kerberos 5

libkdb5.so

est une bibliothèque d'accès à la base de données Kerberos 5 d'authentification/autorisation

libkrad.so

contient la bibliothèque de support interne des fonctionnalités RADIUS

libkrb5.so

est une bibliothèque Kerberos 5 généraliste