MIT Kerberos V5-1.6

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.

Informations sur le paquet

Dépendances de MIT Kerberos V5

Facultatives

Linux-PAM-1.1.5 (pour les connexions basées sur xdm), OpenLDAP-2.4.23 et DejaGnu-1.5 (required to run the test suite)

[Note]

Note

Certaines fonctionnalités de synchronisation du temps sur votre système (comme ntp-4.2.6p4) 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-1.4.11, vous pouvez authentifier le paquet avec la commande suivante :

gpg - -verify krb5-1.6.tar.gz.asc

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

cd src &&
./configure CPPFLAGS="-I/usr/include/et -I/usr/include/ss" \
            --prefix=/usr \
            --sysconfdir=/etc/krb5 \
            --localstatedir=/var/lib \
            --with-system-et \
            --with-system-ss \
            --enable-dns-for-realm \
            --mandir=/usr/share/man &&
make

La suite de tests de régression est conçu pour s'exécuter après la fin de l'installation.

Maintenant, en tant qu'utilisateur root :

make install &&

mv -v /usr/bin/ksu /bin &&
chmod -v 755 /bin/ksu &&
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&&

install -m644 -v ../doc/*.info* /usr/share/info &&
for INFOFILE in 425 5-admin 5-install 5-user; do
    install-info --info-dir=/usr/share/info \
                 /usr/share/info/krb$INFOFILE.info
    rm ../doc/krb$INFOFILE.info*
done &&

install -m755 -v -d /usr/share/doc/krb5-1.6 &&
cp -Rv ../doc/* /usr/share/doc/krb5-1.6
[Avertissement]

Avertissement

login.krb5 ne supporte pas les mots de passe Shadow. Il en résulte que lorsque le serveur Kerberos n'est pas disponible, on ne pourra pas se rabattre sur /etc/passwd car les mots de passe ont été déplacés dans /etc/shadow pendant le processus de construction de LFS. Si vous entrez les commandes suivantes sans remettre les mots de passe dans /etc/passwd, cela pourrait empêcher toute connexion.

Après avoir lu (et compris) l'avertissement ci-d!ssus, vous pouvez entrer les commandes suivantes en tant qu'utilisateur root pour remplacer le programme login existant par la version Kerberizée (après avoir sauvegardé celui d'origine)) et pour déplacer les bibliothèques de support à un endroit disponible alors que le système de fichiers /usr n'est pas monté :

mv -v /bin/login /bin/login.shadow &&
install -m755 -v /usr/sbin/login.krb5 /bin/login &&

mv -v /usr/lib/libdes425.so.3* /lib &&
mv -v /usr/lib/libkrb4.so.2* /lib &&

ln -v -sf ../../lib/libdes425.so.3.0 /usr/lib/libdes425.so &&
ln -v -sf ../../lib/libkrb4.so.2.0 /usr/lib/libkrb4.so &&

ldconfig

Explication des commandes

--enable-dns-for-realm : Ce paramètre autorise la résolution des realms en utilisant le serveur DNS.

--with-system-et : Ce paramètre a pour conséquence que la construction utilise les versions installées sur e 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 e système du logiciel support du logiciel d'interface en ligne de com^anee sous-système.

--localstatedir=/var/lib : Ce paramètre est utilisé pour que les données au moment de l'exécution de variable Kerberos se trouvent dans /var/lib et pas dans /usr/var.

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

mv -v ... /lib && ln -v -sf ... : Ces bibliothèques sont déplacées dans /lib que le système de fichiers /usr n'est pas monté.

Configuration de MIT Kerberos V5

Fichiers de configuration

/etc/krb5/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.8.18. Remarquez qu'on ne peut utiliser qu'un fichier, mais vous pouvez compacter plusieurs fichiers dans un seul. Le fichier de configuration montré ci-d!ssous 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 :

install -v -m755 -d /etc/krb5 &&
cat > /etc/krb5/krb5.conf << "EOF"
# Début de /etc/krb5/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]]

# Fin de /etc/krb5/krb5.conf
EOF

Vous devrez mettre votre nom de domaine et d'hôte à la place de 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 realm.

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: add_policy dict-only
kadmin: 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: 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: ktadd host/<belgarath.lfs.org>

Cela devrait créer un fichier dans /etc/krb5 nommé krb5.keytab (Kerberos 5). Ce fichier devrait avoir les persissions 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.

Vous voudrez éventuellement ajouter des utilisateurs démons de serveur à la base de données et les extraire vers le fichier de table de clé. Vous faites cela de la même manière que vous avez créé les utilisateurs clés hôtes. Voici un exemple ci-dessous :

kadmin: addprinc -randkey ftp/<belgarath.lfs.org>
kadmin: ktadd ftp/<belgarath.lfs.org>

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

Installez le script de démarrage /etc/rc.d/init.d/kerberos inclu dans le paquet blfs-bootscripts-20111226.

make install-kerberos
Utiliser les clients Kerberizés

Pour utiliser les clients kerberizés (telnet, ftp, rsh, rcp, rlogin), vous devez d'abord obtenir un TGT. Utilisez le programme kinit pour obtenir le ticket. Après avoir acquis le ticket, vous pouvez utiliser les programmes kerberizés pour vous connecter à un serveur kerberizé du réseau. On ne vous demandera pas de vous authentifier jusqu'à l'expiration de votre ticket (par défaut, un jour), sauf si vous indiquez un utilisateur différent en tant qu'argument de la ligne du commande du programme.

Les programmes kerberizés se connecteront à des démons non kerberizés en vous prévenant que l'authentication n'est pas chiffrée.

Utiliser un serveur Kerberizé

L'utilisation de serveurs kerberizés (telnetd, kpropd, klogind et kshd) exige deux étapes de configuration supplémentaires. Tout d'abord, il faut mettre à jour le fichier /etc/services pour inclure eklogin et krb5_prop. En deuxième lieu, il faut modifier inetd.conf ou xinetd.conf pour chaque serveur qui sera activé, en remplaçant en général le serveur de Inetutils-1.8.

Informations supplémentaires

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

Contenu

Programmes installés: ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-config, krb5-send-pr, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver et v4rcp
Bibliothèques installées: libdes425.so, libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt.so, libkadm5srv.so, libkdb5.so, libkdb_ldap.so, libkrb4.so, libkrb5.so et libkrb5support.so
Répertoires installés: /etc/krb5, /usr/include/{gssapi,gssrpc,kerberosIV,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.6,examples,gnats} et /var/lib/krb5kdc

Descriptions courtes

ftp

est un client FTP kerberizé.

ftpd

est un démon FTP kerberizé.

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.

klogind

est le serveur qui répond à des requêtes rlogin.

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.

kshd

est le serveur qui répond à des requêtes rsh.

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.

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.

login.krb5

est un programme de connexion kerberizé.

rcp

est un client rcp kerberizé.

rlogin

est un client rlogin kerberizé.

rsh

est un client rsh kerberizé.

telnet

est un client telnet kerberizé.

telnetd

est un serveur telnet kerberizé.

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.

libkrb5.so

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

Last updated on 2011-11-09 18:37:35 +0100