MIT Kerberos V5-1.13.1

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

Informations sur le paquet

  • Téléchargement (HTTP) : http://web.mit.edu/kerberos/www/dist/krb5/1.13/krb5-1.13.1-signed.tar

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

  • Taille du téléchargement : 12 Mo

  • Estimation de l'espace disque requis : 121 Mo (Additional 22 Mo if running the testsuite)

  • Estimation du temps de construction : 1.0 SBU (additional 2.5 SBU if running the testsuite)

Dépendances de MIT Kerberos V5

Facultatives

DejaGnu-1.5.2 (pour la suite de tests), GnuPG-2.0.26 (pour identifier les paquets), keyutils-1.5.9 OpenLDAP-2.4.40 Python-2.7.9 (utilisé pendant la suite de tests) et rpcbind-0.2.2 (utilisé pendant la suite de tests)

[Note]

Note

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

MIT Kerberos V5 est distribué dans un fichier TAR contenant un paquet TAR compressé et un fichier PGP ASC détaché. Vous devrez déballer le fichier tar de distribution, puis déballer le fichier tar compressé avant de commencer la construction.

Déballez d'abord de l'archive tar de distribution et si vous avez installé GnuPG-2.0.26, vous pouvez authentifier le paquet. D'abord vérifiez le contenu du fichier krb5-1.13.1.tar.gz.asc.

gpg2 --verify krb5-1.13.1.tar.gz.asc krb5-1.13.1.tar.gz

Vous verrez probablement une sortie similaire à :

gpg: Signature made Mon Aug 11 22:53:10 2014 GMT using RSA key ID 749D7889
gpg: Can't check signature: No public key

Vous pouvez importer la clef publique avec :

gpg2 --pgp2 --keyserver pgp.mit.edu --recv-keys 0x749D7889

Maintenant revérifiez le paquet avec la première commande susmentionnée. Vous devriez obtenir une indication de bonne signature, mais la clef ne sera toujours pas certifiée avec une signature de confiance. Faire confiance à la clef téléchargée est une opération séparée mais c'est à vous de détermnier le niveau de confiance.

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 &&
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 testez la construction, tapez: make check. Vosu devez au moins avoir Tcl-8.6.3, qui est utilisé pour piloter la suite de tests. De plus, DejaGnu-1.5.2 doit être disponible pour quelques tests. Si vous avez une version de MIT Kerberos V5 d'installées, il peut arriver que la suite de tests utilisent les versions installées des bibliothèques, plutôt que celle fraichement construite. Donc, il est mieux de lancer la suite de tests après l'installation.

Maintenant, en tant qu'utilisateur root :

make install &&
for LIBRARY in gssapi_krb5 gssrpc k5crypto kadm5clnt kadm5srv \
               kdb5 kdb_ldap krad krb5 krb5support verto ; do
    chmod -v 755 /usr/lib/lib$LIBRARY.so
done          &&
unset LIBRARY &&
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.13.1 &&
cp -vfr ../doc/*  /usr/share/doc/krb5-1.13.1

Explication des commandes

sed -e ... : Le premier sed corrige la détection de Python et le second incrémente la largeur du terminal virtuel utilisé pour certain tests, pour empécher certain caratère exotique d'être affiché, ce qui donne un échec.

--localstatedir=/var/lib: Ce paramètre est utilisé pour que la variable des données d'exécution de Kerberos soit 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 support du logiciel d'interface en ligne de commandes du sous-système.

--with-system-verto=no: ce paramètre corrige un dans le paquet: il ne reconnait pas sa propre bibliothèque verto installé précédement. 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 lien d'installer la nouvelle version.

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

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

--with-ldap : Utilisez ce paramètre si vous voulez compiler le module au fondement de la 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.9.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 = <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[[:SYS]]
# 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'authentication 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.13.1 (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 inclu dans le paquet blfs-bootscripts-20150304 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, 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 (facultatif), libkdb5.so, libkrad.so, libkrb5.so, libkrb5support.so, libverto.so, et plusieurs plugins sous l'arborescence /usr/lib/krb5
Répertoires installés: /usr/include/{gssapi,gssrpc,kadm5,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.13.1,examples/krb5,gnats}, et /var/lib/{,run}/krb5kdc

Descriptions courtes

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.

kadmind

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

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.

krb5-config

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

krb5kdc

est un serveur Kerberos 5.

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

sserver

est un modèle de serveur Kerberos version 5.

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 vaste 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'authentication/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 : 2013-04-14 14:48:41 +020