MIT krb5-1.3.3

Introduction à MIT krb5

MIT krb5 est une implémentation libre de Kerberos 5. Kerberos est un protocole d'authentication réseau. Il centralise la base de données d'authentication et utilise des applications compatibles pour fonctionner avec les serveurs ou services qui supportent Kerberos permettant des connexions simples et une communication cryptée dans les réseaux internes ou sur Internet.

Informations sur le paquetage

Dépendances de MIT krb5

Optionnel

xinetd-2.3.13 (serveurs de services uniquement), Linux_PAM-0.77 (pour les connexions basées sur xdm) et OpenLDAP-2.1.30 (alternative à la base de données krb5kdc)

[Note]

Note

Une synchronisation du temps sur votre système (comme NTP-4.2.0) est requise car Kerberos n'authentifiera pas s'il existe une différence de temps entre le client et le serveur KDC.

Installation de MIT krb5

Installez MIT krb5 en lançant les commande suivantes :

./configure --prefix=/usr --sysconfdir=/etc \
    --localstatedir=/var/lib --enable-dns --enable-shared --mandir=/usr/share/man &&
make &&
make install &&
mv /bin/login /bin/login.shadow &&
cp /usr/sbin/login.krb5 /bin/login &&
mv /usr/bin/ksu /bin &&
mv /usr/lib/libkrb5.so.3* /lib &&
mv /usr/lib/libkrb4.so.2* /lib &&
mv /usr/lib/libdes425.so.3* /lib &&
mv /usr/lib/libk5crypto.so.3* /lib &&
mv /usr/lib/libcom_err.so.3* /lib &&
ln -sf ../../lib/libkrb5.so /usr/lib &&
ln -sf ../../lib/libkrb4.so /usr/lib &&
ln -sf ../../lib/libdes425.so /usr/lib &&
ln -sf ../../lib/libk5crypto.so /usr/lib &&
ln -sf ../../lib/libcom_err.so /usr/lib &&
ldconfig

Explication des commandes

--enable-dns : cette option permet aux domaines d'être résolu en utilisant le serveur DNS.

mv /bin/login /bin/login.shadow
cp /usr/sbin/login.krb5 /bin/login
mv /usr/bin/ksu /bin

conserve la commande login de Shadow, déplace ksu et login dans le répertoire /bin.

mv /usr/lib/libkrb5.so.3* /lib
mv /usr/lib/libkrb4.so.2* /lib
mv /usr/lib/libdes425.so.3* /lib
mv /usr/lib/libk5crypto.so.3* /lib
mv /usr/lib/libcom_err.so.3* /lib
ln -sf ../../lib/libkrb5.so /usr/lib
ln -sf ../../lib/libkrb4.so /usr/lib
ln -sf ../../lib/libdes425.so /usr/lib
ln -sf ../../lib/libk5crypto.so /usr/lib
ln -sf ../../lib/libcom_err.so /usr/lib

Les programmes login et ksu sont liés avec ces bibliothèques, donc nous déplaçons ces bibliothèques dans /lib pour permettre des connexions sans monter /usr.

Configurer MIT krb5

Fichiers de configuration

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

Informations de configuration

Configuration de Kerberos

Créez le fichier de configuration de Kerberos avec la commande suivante :

cat > /etc/krb5.conf << "EOF"
# Début /etc/krb5.conf
        
[libdefaults]
    default_realm = [LFS.ORG]
    encrypt = true

[realms]
    [LFS.ORG] = {
        kdc = [belgarath.lfs.org]
        admin_server = [belgarath.lfs.org]
    }

[domain_realm]
    .[lfs.org] = [LFS.ORG]

[logging]
    kdc = SYSLOG[:INFO[:AUTH]]
    admin_server = SYSLOG[INFO[:AUTH]]
    default = SYSLOG[[:SYS]]

# Fin /etc/krb5.conf
EOF

Vous aurez besoin de substituer votre domaine et votre nom d'hôte pour les différentes occurences des noms belgarath et lfs.org.

default_realm devrait être le nom de votre domaine en majuscule. Ce n'est pas requis mais Heimdal et MIT le recommandent.

encrypt = true fournit un cryptage de tout le trafic entre clients et serveurs Kerberos. Il n'est pas nécessaire et peut être oublié. Si vous l'oubliez, vous pouvez crypter tout le trafic entre le client et le serveur en utilisant une option sur le programme client.

Le paramètre [realms] indique aux programmes client où chercher les services d'authentification KDC.

La section [domain_realm] fait correspondre un domaine à un royaume.

Créez la base de données KDC :

kdb5_util create -r [LFS.ORG] -s 

Maintenant, vous devez remplir la base de données avec des principes (utilisateurs). Pour l'instant, utilisez votre nom de connexion ou root.

kadmin.local
kadmin:addprinc [nom de connexion]

Le serveur KDC et toute autre machine disposant de serveurs Kerberos doivent avoir une clé d'hôte installée :

kadmin:addprinc --randkey host/[belgarath.lfs.org]

Après avoir choisir les défaut proposés, vous devez exporter les données dans un fichier keytab :

kadmin:ktadd host/[belgarath.lfs.org]

Ceci doit avoir créé un fichier dans /etc nommé krb5.keytab (Kerberos 5). Ce fichier devrait avoir les droits 600 (lecture écriture pour root seulement). Protéger les fichiers keytab d'un accès public est crucial pour la sécurité complète de votre installation Kerberos.

Éventuellement, vous voudrez ajouter des principes au serveur dans la base de données et les extaire dans le fichier keytab. Vous le ferez de la même façon que vous avez créé les principes de l'hôte. Ci-dessous se trouve un exemple :

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. Lancez le démon KDC manuellement pour tester l'installation :

/usr/sbin/krb5kdc &

Essayez d'obtenir un ticket avec la commande suivante :

kinit [loginname]

Le mot de passe que vous avez ajouté vous sera demandé. Après avoir obtenu votre ticket, vous pourrez l'afficher avec la commande :

klist

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

Pour tester les fonctionnalités du fichier keytab, lancez la commande suivante :

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

Ceci devrait afficher une liste de l'hôte principal avec les méthodes de cryptage utilisées pour accèder au principal.

Arrivé là, si tout fonctionne correctement, vous pouvez être assez confiant sur l'installation et la configuration du paquetage.

Installez le script de démarrage /etc/rc.d/init.d/kerberos inclus dans le paquetage blfs-bootscripts-5.1.

make install-kerberos
Utiliser des programmes client Kerberos

Pour utiliser des programmes client Kerberos (telnet, ftp, rsh, rcp, rlogin), vous devez tout d'abord obtenir un ticket d'authentification. Utilisez le programme kinit pour obtenir ce ticket. Une fois obtenu, vous pouvez utiliser les programmes Kerberos pour vous connecter à tout serveur Kerberos du réseau. Aucune authentification ne vous sera demandé jusqu'à l'expiration de votre ticket (par défaut un jour) sauf si vous avez spécifié un autre utilisateur en argument de la ligne de commande d'un programme.

Les programmes Kerberos se connecteront à des démons non Kerberos, vous avertissant que l'authentication n'est pas cryptée.

Utiliser des programmes serveur Kerberos

Utiliser des programmes serveur Kerberos (telnetd, kpropd, klogind et kshd) requiert deux étapes supplémentaires de configuration. Tout d'abord, le fichier /etc/services doit être mis à jour pour inclure eklogin et krb5_prop. Ensuite, inetd.conf ou xinetd.conf doivent être modifiés sur chaque serveur activé, généralement en remplaçant le serveur d'inetutils.

Informations supplémentaires

Pour plus d'informations, consultez Documentation de krb-1.3.3 sur lequel les instructions ci-dessus sont basées.

Contenu

Le paquetage MIT krb5 contient compile-et, ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kadmind4, kdb5_util kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-send-pr, krb5-config, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, rshd, rxtelnet, rxterm, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver, v5passwd, v5passwdd, libcom_err, libdes425, libgssapi, libgssrpc, lib5crypto, libkadm5clnt, libkadm5srv, libkdb5, libkrb4, libkrb5.

Description

compile_et

compile_et convertit la table donnant les noms des codes d'erreurs dans un fichier source C.

k5srvutil

k5srvutil est un outil de manipulation de tables d'hôte.

kadmin

kadmin est un outil faisant des modifications sur la base de données Kerberos.

kadmind

kadmind est un serveur pour l'accès administratif vers la base de données Kerberos.

kinit

kinit est utilisé pour s'authentifier auprès du serveur Kerberos et aquiert un ticket qui pourra ensuite être utilisé pour obtenir des tickets d'autres services.

krb5kdc

kdc est un serveur Kerberos 5.

kdestroy

kdestroy supprime l'ensemble actuel des tickets.

kdb5_util

kdb5_util est l'outil KDC de la base de données.

klist

klist lit et affiche les tickets actuels dans le cache crédentiel.

klogind

klogind est le serveur qui répond aux demandes de connexion.

kpasswd

kpasswd est un programme pour changer les mots de passe Kerberos 5.

kprop

kprop prend une base de données principale dans un format spécifié et la convertit dans un flux d'enregistrements de base de données Heimdal.

kpropd

kpropd reçoit une base de données envoyée par hprop et l'écrit dans une base de données locale.

krb5-config

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

ksu

ksu est le programme superutilisateur utilisant le protocole Kerberos. Requiert un /etc/shells et un ~/.k5login bien configurés, contenant les principaux autorisés à devenir superutilisateurs.

ktutil

ktutil est un programme de gestion des « keytabs » Kerberos.

kvno

kvno affiche les numéros de version de clés des Kerberos principaux.