MIT Kerberos V5-1.15

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 se construire correctement sur une plateforme LFS-8.0.

Informations sur le paquet

  • Téléchargement (HTTP) : http://web.mit.edu/kerberos/dist/krb5/1.15/krb5-1.15.tar.gz

  • Téléchargement (FTP) :

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

  • Taille du téléchargement : 8.9 Mo

  • Estimation de l'espace disque requis : 134 Mo (plus 24 Mo pour la suite de tests)

  • Estimation du temps de construction : 0.9 SBU (plus 4.1 SBU pour la suite de tests)

Téléchargements supplémentaires

Dépendances de MIT Kerberos V5

Facultatives

DejaGnu-1.6 (pour la couverture complète des tests), GnuPG-2.1.18 (pour authentifier le paquet), keyutils-1.5.9, OpenLDAP-2.4.44, Python-2.7.13 (utilisé durant la suite de tests), rpcbind-0.2.4 (utilisé durant la suite de tests) et Valgrind-3.12.0 (utilisé durant la suite de tests)

[Note]

Note

Certaines fonctionnalités de synchronisation du temps sur votre système (comme ntp-4.2.8p9) 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.

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/mitkrb

Installation de MIT Kerberos V5

Si votre système est configuré pour ne supporter que l'IPv4, appliquez le correctif suivant :

patch -p1 -i ../mitkrb-1.15-fix_ipv4_only-1.patch

Construisez MIT Kerberos V5 en lançant les commandes suivantes :

cd src &&

sed -e "s@python2.5/Python.h@& python2.7/Python.h@g" \
    -e "s@-lpython2.5]@&,\n  AC_CHECK_LIB(python2.7,main,[PYTHON_LIB=-lpython2.7])@g" \
    -i configure.in &&

sed -e 's@\^u}@^u cols 300}@' \
    -i tests/dejagnu/config/default.exp &&

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

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

Pour tester la construction, tapez en tant qu'utilisateur root : make check. Vous devez au moins avoir Tcl-8.6.6, qui est utilisé pour piloter la suite de tests. De plus, DejaGnu-1.6 doit être disponible pour lancer quelques tests. Si vous avez une précédente version de MIT Kerberos V5 d'installée, il peut arriver que la suite de tests utilise les versions installées des bibliothèques, plutôt que celles fraîchement construites. Si c'est le cas, il vaut mieux lancer la suite de tests après l'installation.

Maintenant, en tant qu'utilisateur root :

make install &&

for f in gssapi_krb5 gssrpc k5crypto kadm5clnt kadm5srv \
         kdb5 kdb_ldap krad krb5 krb5support verto ; do

    find /usr/lib -type f -name "lib$f*.so*" -exec chmod -v 755 {} \;    
done          &&

mv -v /usr/lib/libkrb5.so.3*        /lib &&
mv -v /usr/lib/libk5crypto.so.3*    /lib &&
mv -v /usr/lib/libkrb5support.so.0* /lib &&

ln -v -sf ../../lib/libkrb5.so.3.3        /usr/lib/libkrb5.so        &&
ln -v -sf ../../lib/libk5crypto.so.3.1    /usr/lib/libk5crypto.so    &&
ln -v -sf ../../lib/libkrb5support.so.0.1 /usr/lib/libkrb5support.so &&

mv -v /usr/bin/ksu /bin &&
chmod -v 755 /bin/ksu   &&

install -v -dm755 /usr/share/doc/krb5-1.15 &&
cp -vfr ../doc/*  /usr/share/doc/krb5-1.15

Explication des commandes

sed -e ... : Le premier sed corrige la détection de Python. Le second augmente la largeur du terminal virtuel utilisé pour certains tests, pour empêcher certains caractères exotiques d'être affichés, qui sont comptés comme un échec. Le troisième 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.

--with-system-et : Ce paramètre a pour conséquence que la construction utilise les versions installées sur le système du logiciel support de table d'erreur.

--with-system-ss : Ce paramètre a pour conséquence que la construction utilise les versions installées sur le système du logiciel d'interface en ligne de commandes du sous-système.

--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.

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

mv -v /usr/lib/libk... /lib et ln -v -sf ../../lib/libk... /usr/lib/libk... : Déplace les bibliothèques critiques vers le répertoire /dib pour qu'elles soient disponible lorsque le système de fichier /usr n'est pas monté.

find /usr/lib -type f -name "lib$f*.so*" -exec chmod -v 755 {} \; : Cette commande change les permissions des bibliothèques installées.

mv -v /usr/bin/ksu /bin : Déplace le programme ksu dans le répertoire /bin pour qu'il soit disponible alors que le système de fichiers /usr n'est pas monté.

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.9.6. 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 = <LFS.ORG>
    encrypt = true

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

[domain_realm]
    .<lfs.org> = <LFS.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 lfs.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 <LFS.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.lfs.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.lfs.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 le fonctionnement du fichier de table de clé, exécutez la commande suivante :

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é.

À 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.15 (la documentation) sur laquelle se basent les instructions ci-dessus.

Script de démarrage

Si vous voulez démarrer des services Kerberos au démarrage, installez le script de démarrage /etc/rc.d/init.d/krb5 inclus dans le paquet blfs-bootscripts-20170225 en utilisant la commande suivante :

make install-krb5

Contenu

Programmes installés: gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util (optional), kdb5_util, kdestroy, kinit, klist, kpasswd, kprop, kpropd, kproplog, krb5-config, krb5kdc, krb5-send-pr, 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.15,examples/krb5}, /var/lib/krb5kdc et /var/lib/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.

Last updated on 2017-02-16 03:28:58 +0100