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.
Téléchargement (HTTP) : http://web.mit.edu/kerberos/www/dist/krb5/1.3/krb5-1.3.3.tar
Taille de téléchargement : 6,2 Mo
Estimation de l'espace disque requis : 137,4 Mo
Estimation du temps de construction : 2,55 SBU
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)
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.
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
--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.
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
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 (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.
Pour plus d'informations, consultez Documentation de krb-1.3.3 sur lequel les instructions ci-dessus sont basées.
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.
compile_et convertit la table donnant les noms des codes d'erreurs dans un fichier source C.
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.
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 reçoit une base de données envoyée par hprop et l'écrit dans une base de données locale.
krb5-config donne des informations sur la façon de lier des programmes aux bibliothèques.
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.