Heimdal-1.4

Introduction à Heimdal

Heimdal est une implémentation libre de Kerberos 5 qui cherche à être compatible avec MIT Kerberos 5 et qui est compatible de manière rétroactive avec Kerberos 4. Kerberos est un protocole d'authentication réseau. Il préserve basiquement l'intégrité des mots de passe dans n'importe quel réseau non confidentiel (comme Internet). Les applications Kerberized fonctionnent main dans la main avec les sites qui supportent Kerberos pour garantir que les mots de passe ne puissent pas être volés ou compromis. Une installation Kerberos fera des modifications sur les mécanismes d'authentification de Kerberos de votre réseau et écrasera plusieurs programmes et démons issus des paquets Shadow, Inetutils et Qpopper. Voir http://anduin.linuxfromscratch.org/files/BLFS/svn/heimdal-overwrites pour une liste complète de tous les fichiers et de toutes les commandes pour renommer chacun d'eux.

Ce paquet est connu pour se construire et fonctionner correctement sur une plateforme LFS-SVN-20101029 .

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de Heimdal

Berkeley DB-5.2.36

Recommandées

Facultatives

OpenLDAP-2.4.23, SQLite-3.7.8, X Window System, libcap2-2.22 et libcap-ng (avec ce correctif http://www.linuxfromscratch.org/patches/blfs/svn/libcap-ng-0.6.4-2.6.36_kernel_fix-1.patch si la version du noyau linux est >=2.6.36)

[Note]

Note

Un outil de synchronisation de temps est nécessaire sur votre système (comme ntp-4.2.6p4) car Kerberos n'authentiera pas si la différence d''heures entre un client kerberized et le serveur KDC dépasse 5 minutes.

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

Installation de Heimdal

[Avertissement]

Avertissement

Soyez sûr d'avoir vraiment besoin d'une installation de Kerberos avant de décider d'installer ce paquet. Un échec dans l'installation et la configuration correcte du paquet peut dégrader votre système au point que les utilisateurs ne pourraient plus s'y connecter.

Installez Heimdal en lançant les commandes suivantes :

patch -Np1 -i ../heimdal-1.4-otp_fixes-1.patch &&
sed -i 's|/var/heimdal|/var/lib/heimdal|' \
       `grep -lr "/var/heimdal" doc kadmin kdc lib` &&

./configure --prefix=/usr \
            --sysconfdir=/etc/heimdal \
            --libexecdir=/usr/sbin \
            --localstatedir=/var/lib/heimdal \
            --datadir=/var/lib/heimdal \
            --with-hdbdir=/var/lib/heimdal \
            --with-readline=/usr \
            --enable-kcm &&
make &&
 
install -v -m755 -d doc/html                                    &&
make -C doc html                                                &&
mv -v doc/heimdal.html doc/html/heimdal                         &&
mv -v doc/hx509.html   doc/html/hx509                           && 
makeinfo --html --no-split -o doc/heimdal.html doc/heimdal.texi &&
makeinfo --html --no-split -o doc/hx509.html   doc/hx509.texi   &&
makeinfo --plaintext       -o doc/heimdal.txt  doc/heimdal.texi &&
makeinfo --plaintext       -o doc/hx509.txt    doc/hx509.texi

Si vous avez installé TeX Live-20110705 et voulez créer la documentation au format PDF et Postscript, modifiez dans le repertoire doc et tapez quelques-une ou toutes les commandes suivantes :

pushd doc                        &&
texi2pdf            heimdal.texi &&
texi2dvi            heimdal.texi &&
dvips -o heimdal.ps heimdal.dvi  &&
texi2pdf            hx509.texi   &&
texi2dvi            hx509.texi   &&
dvips -o hx509.ps   hx509.dvi    &&

popd

Pour tester les résultats, lancez : make -k check. Le test check-iprop est connu pour échouer mais tous les autres devraient réussir.

Maintenant, en tant qu'utilisateur root :

make install &&

install -v -m755 -d /usr/share/doc/heimdal-1.4        &&
install -v -m644    doc/{heimdal,hx509}.{html,txt} \
                    doc/{init-creds,layman.asc}    \
                    /usr/share/doc/heimdal-1.4        &&
cp      -v -R       doc/html \
                    destdir/usr/share/doc/heimdal-1.4 &&

mv -v /bin/login          /bin/login.SHADOW &&
mv -v /bin/su             /bin/su.SHADOW    &&
mv -v /usr/bin/{login,su} /bin              &&
ln -v -sf ../../bin/login /usr/bin          &&

for LINK in   \
    lib{otp,kafs,krb5,hx509,sqlite3,asn1,roken,crypto,wind}; do
        mv -v     /usr/lib/${LINK}.so.* /lib &&
        ln -v -sf ../../lib/$(readlink  /usr/lib/${LINK}.so) \
                  /usr/lib/${LINK}.so
done &&

mv -v     /usr/lib/$(readlink /usr/lib/libdb.so) \
          /usr/lib/libdb-?.so \
          /lib &&
ln -v -sf ../../lib/$(readlink /usr/lib/libdb.so) \
          /usr/lib/libdb.so &&

ldconfig

Si vous avez construit un des formats supplémentaire de la documentation, installez-le en utilisant les commandes suivantes en tant qu'utilisateur root :

install -v -m644 doc/{heimdal,hx509}.{dvi,ps,pdf} \
                 /usr/share/doc/heimdal-1.4

Si vous souhaitez utiliser la bibliothèque CrackLib-2.8.18 pour renforcer vos mots de passe forts dans la base de données KDC, lancez les commandes suivantes en tant qu'utilisateur root :

sed -e 's|/usr/pkg|/usr|' \
    -e 's|/usr/lib/cracklib_dict|/lib/cracklib/pw_dict|' \
    -e 's|/var/heimdal|/var/lib/heimdal|' \
        lib/kadm5/check-cracklib.pl \
     > /bin/krb5-check-cracklib.pl &&

chmod -v 755 /bin/krb5-check-cracklib.pl

Explication des commandes

sed -i ... `grep -lr "/var/heimdal" doc kadmin kdc lib`>:nbsp;: Cette commande est utilisée pour changer dans les fichiers de documentation les références codés en dur /var/heimdal par les noms de repertoire /var/lib/heimdal qui respecte la FHS.

--libexecdir=/usr/sbin : Ce paramètre a pour conséquence que les programmes s'installent dans /usr/sbin.

[Astuce]

Astuce

Si vous voulez conserver tous vos démons existant du paquet Inetutils, installez les démons de Heimdal dans /usr/sbin/heimdal (ou là où vous voulez). Vu que ces programmes seront appelés à partir de (x)inetd ou de scripts rc, peu importe là où vous les installez du moment qu'ils sont correctement spécifiés dans le fichier /etc/(x)inetd.conf et dans les scripts rc. Si vous choisissez autre chose que /usr/sbin, il se peut que vous vouliez déplacer des programmes utilisateur (tels que kadmin) vers /usr/sbin à la main pour qu'ils soient dans le PATH par défaut de l'utilisateur privilégié.

--localstatedir=/var/lib/heimdal, --datadir=/var/lib/heimdal et --with-hdbdir=/var/lib/heimdal : Ces paramètres sont utilisés pour que la base de données KDC et les fichiers associés résident tous dans /var/lib/heimdal.

--with-readline=/usr : Ce paramètre doit être utilisé pour que le script configure repère correctement le paquet Readline installé.

--enable-kcm : Ce paramètre active la construction du Kerberos Credentials Manager (gestionnaire d'autorisations).

--with-sqlite3=/usr>:nbsp;: Ce paramètre doit être utilisé pour que le script configure localise proprement le paquet Sqlite3 installé.

--with-openldap=/usr et --enable-hdb-openldap-module>:nbsp;: These parameters must be used so that the configure script properly locates the installed OpenLDAP package in order to build the module allowing an LDAP backend database.

mv ... ...SHADOW, mv ... /bin et ln ... /usr/bin : Les programmes login et su installés par Heimdal se trouvent dans le répertoire /bin. Le programme login est lié symboliquement car Heimdal s'attend à le trouver dans /usr/bin. Les anciens exécutables issus du paquet Shadow sont au préalable préservés afin de pouvoir être restaurés si vous rencontrez des problèmes de connexion au système après avoir installé et configuré le paquet Heimdal.

for LINK in ...; do ...; done, mv ... /lib et ln ... /usr/lib/libdb.so : Les programmes login et su précédemment déplacés dans le répertoire /lib se lient aux bibliothèques Heimdal ainsi qu'aux bibliothèques fournies par les paquets OpenSSL et Berkeley DB. Ces bibliothèques sont également déplacées dans /lib pour respecter la FHS et au cas où /usr se trouve sur une partition séparée qui peut ne pas toujours être montée.

Configuration de Heimdal

Fichiers de configuration

/etc/heimdal/*

Informations de configuration

[Note]

Note

Toutes les étapes de configuration décrites ci-dessus doivent être effectuées par l'utilisateur root sauf si cela est spécifié autrement.

Configuration du serveur maître KDC

Beaucoup de commandes ci-dessous utilisent des étiquettes <replaceable> pour identifier les endroits où vous devez remplacer des informations par celles spécifiques à votre réseau. Assurez-vous de remplacer tout ce qui est dans ces étiquettes (il n'y aura pas d'accolades anglo lorsque vous le ferez) par les informations spécifiques à votre système.

Créez le fichier de configuration Kerberos avec les commandes suivantes :

install -v -m755 -d /etc/heimdal &&
cat > /etc/heimdal/krb5.conf << "EOF" &&
# Début de /etc/heimdal/krb5.conf

[libdefaults]
    default_realm = <EXAMPLE.COM>
    encrypt = true

[realms]
    <EXAMPLE.COM> = {
        kdc = <nom_hôte.example.com>
        admin_server = <nom_hôte.example.com>
        kpasswd_server = <nom_hôte.example.com>
    }

[domain_realm]
    .<example.com> = <EXAMPLE.COM>

[logging]
    kdc = FILE:/var/log/kdc.log
    admin_server = FILE:/var/log/kadmin.log
    default = FILE:/var/log/krb.log

# Fin de /etc/heimdal/krb5.conf
EOF
chmod -v 644 /etc/heimdal/krb5.conf

Vous devrez mettre votre propre nom de domaine et d'hôte à la place des noms <hostname> et <EXAMPLE.COM>.

default_realm devrait être le nom de votre domaine modifié en MAJUSCULES. Ce n'est pas obligatoire mais aussi bien Heimdal que MIT Kerberos le recommandent.

encrypt = true fournit le chiffrement de tous le trafic entre les clients et les serveurs kerberizés. Il n'est pas nécessaire et vous pouvez le laisser désactivé. Si vous le laisser désactiver, vous pouvez chiffrer tout le trafic du client au servur en utilisant plutôt un paramètre sur le client. Les paramètres [realms] disent aux clients où chercher les services d'authentication KDC. La section [domain_realm] lie un domaine à un realm.

Stockez le mot de passe maître dans un fichier de clés en utilisant les commandes suivantes :

install -v -m755 -d /var/lib/heimdal &&
kstash

Créez la base de données KDC :

kadmin -l

Les commandes ci-dessous vous demanderont des information sur les utilisateurs clés. Choisissez pour l'instant les réglages par défaut, sauf si vous savez ce que vous faites et si vous avez besoin d'indiquer des valeurs différentes. Vous pourrez y revenir plus tard et modifier les réglages par défaut, du moins vous devriez en ressentir le besoin. Vous pouvez utiliser les flèches Haut et Bas pour utiliser l'historique de kadmin, comme avec l'historique de bash.

À l'invite kadmin>, lancez l commande suivante :

init <EXAMPLE.COM>

Il faut maintenant peupler la base de données avec au moins un utilisateur clé (utilisateur). Pour l'instant, utilisez simplement le nom de connexion de votre utilisateur ordinaire ou root. Vous pouvez créer autant de utilisateurs clés que vous souhaitez en utilisant la commande suivante :

add <loginname>

On doit installer uoe clé hôte sur le serveur KDC et sur toute machine exécutant des démons kerberizés :

add --random-key host/<hostname.example.com>

Après avoir choisi les paramètres par défaut lorsqu'on vous l'a d emandé, vous devrez exporter les données vers un fichier tableau de clés  :

ext host/<hostname.example.com>

Cela devrait créer un fichier dans /etc/heimdal : nommé krb5.keytab. Ce fichiers devraient avoir les droits 600 (lecture et écriture pour root seulement). Préserver les fichiers de tables de clés hors d'accès du public est crucial pour toute la sécurité de l'installation Kerberos.

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

add --random-key ftp/<nom_hôte.example.com>

(choisissez les paramètres par défaut)

ext ftp/<hostname.example.com>

Quittez le programme kadmin (utilisez quit ou exit) et revenez à l'invite du shell. Démarrez le démon KDC à la main, pour tester simplement l'installation :

/usr/sbin/kdc &

Essayez d'obtenir un TGT (ticket granting ticket, ticket autorisant 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 devriez le lister avec la commande suivante :

klist

Des informations sur le ticket devraient s'afficher à l'écran.

Pour tester le fonctionnement de keytab file, lancez la commande suivante :

ktutil list

Cela devrait renvoyer une liste des utilisateurs clçs hôtes avec les méthodes chiffrées utilisées pour accéder aux utilisateurs clés.

À ce moment-là, si tout s'est bien passé jusqu'ici, vous pouvez avoir confiance dans l'installation, le paramétrage et la configuration de votre nouvelle installation Heimdal Kerberos 5.

Si vous souhaitez utiliser la bibliothèque CrackLib-2.8.18 pour renforcer les mots de passe forts dans la base de données KDC, voks devez faire deux choses. Tout d'abord, ajoutez les lignes suivantes au fichier de configuration /etc/heimdal/krb5.conf :

[password_quality]
    policies = builtin:external-check
    external_program = /bin/krb5-check-cracklib.pl

Ensuite, vous devez installer le module Perl Crypt::Cracklib. Téléchargez-le sur le site de CPAN. Au moment d'écrire ce texte, l'adresse est http://www.cpan.org/authors/id/D/DA/DANIEL/Crypt-Cracklib-1.2.tar.gz. Après avoir déballé l'archive tar et être allé dans le répertoire nouvellement créé, lancez la commande suivante pour ajouter l'emplacement du dictionnaire Cracklib de BLFS à un des fichiers sources :

sed -i 's|pw_dict|&\n\t\t/lib/cracklib/pw_dict|' Cracklib.pm

Puis utilisez les commandes standards perl Makefile.PL; make; make test; make install.

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

make install-heimdal
Utiliser les clients Kerberizés

Pour utiliser les clients kerberizés (telnet, ftp, rsh, rxterm, rxtelnet, rcp, xnlock), 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.

Afin d'utiliser les programmes X de Heimdal, vous devrez ajouter une entrée pour le port du service au fichier /etc/services pour le serveur kxd. Il n'y a pas de 'numéro de port standardisé' pour le service 'kx' dans la base de données IANA, donc vous devrez choisir un numçro de port non utilisé. Ajoutez une entrée au fichier services, ressemblant à l'entrée ci-dessous (remplacez par le numéro de port de votre choix le <49150>) :

kx              <49150>/tcp   # Heimdal kerberos X
kx              <49150>/udp   # Heimdal kerberos X

Pour des informations supplémentaires, consultez the Heimdal hint (l'astuce Heimdal) sur laquelle sont basées les instructions ci-dessus.

Contenu

Programmes installés: afslog, ftp, ftpd, gss, hprop, hpropd, hxtool, iprop-log, ipropd-master, ipropd-slave, kadmin, kadmind, kauth, kcm, kdc, kdestroy, kdigest, kf, kfd, kgetcred, kimpersonate, kinit, klist, kpasswd, kpasswdd, krb5-check-cracklib.pl, krb5-config, kstash, ktutil, kx, kxd, login, mk_cmds-krb5, otp, otpprint, pagsh, pfrom, popper, push, rcp, rsh, rshd, rxtelnet, rxterm, string2key, su, telnet, telnetd, tenletxr, verify_krb5_conf et xnlock
Bibliothèques installées: hdb_ldap.{so,a}, libasn1.{so,a}, libgssapi.{so,a}, libhdb.{so,a}, libheimntlm.{so,a}, libhx509.{so,a}, libkadm5clnt.{so,a}, libkadm5srv.{so,a}, libkafs.{so,a}, libkdc.{so,a}, libkrb5.{so,a}, libotp.{so,a}, libroken.{so,a}, libsl.{so,a}, libss-krb5.{so,a} et wind.{so,a}
Répertoires installés: /etc/heimdal, /usr/include/gssapi, /usr/include/kadm5, /usr/include/krb5, /usr/include/roken, /usr/share/doc/heimdal-1.4 et /var/lib/heimdal

Descriptions courtes

afslog

obtient des jetons AFS pour un certain nombre de cellules.

ftp

est un client FTP kerberizé.

ftpd

est un démon FTP kerberizé.

hprop

prend une base de données d'utilisateurs clés dans un format spécifié et la convertit dans un flux d'enregistrements de bases de données Heimdal.

hpropd

est un serveur qui reçoit une base de données envoyée par hprop et qui l'écrit comme une base de données locale.

iprop-log

est utilisé pour maintenir le fichier journal iprop.

ipropd-master

est un démon qui s'exécute sur le serveur maître KDC et qui propage de manière incrémentale les modifications de la base de données KDC dans les serveurs KDC esclaves.

ipropd-slave

est un démon qui s'exécute sur le serveur esclave KDC et qui propage de manière incrémentale les la base de données KDC issue du serveur KDC maître.

kadmin

est un outil utilisé pour faire des modifications de la base de données Kerberos.

kadmind

est un serveur pour l'accès administrateur à la base de données Kerberos.

kauth

est un lien symbolique vers le programme kinit.

kcm

est un cache d'autorisations basé sur le processus pour des tickets Kerberos.

kdc

est un serveur Kerberos 5.

kdestroy

supprime le jeu de tickets actuel de l'utilisateur clé.

kf

est un programme qui redirige les tickets vers un hôte distant à travers un flux authentifié et chiffré.

kfd

est un serveur utilisé pour recevoir des tickets redirigés.

kgetcred

obtient un ticket pour un service.

kinit

est utilisé pour s'authentifier sur le serveur Kerberos en tant qu'utilisateur clé et pour acquérir un ticket qui autorise des tickets utilisables ultérieurement pour obtenir des tickets pour d'autres services.

klist

lit et affiche les tickets actuels dans le cache des autorisations.

kpasswd

est un programme pour modifier des mots de passe Kerberos 5.

kpasswdd

est un serveur de modification de mots de passe Kerberos 5.

krb5-config

donne des informations sur la manière de lier des programmes à des bibliothèques Heimdal.

kstash

stocke le mot de passe maître KDC dans un fichier.

ktutil

est un programme pour gérer des tables de clés Kerberos.

kx

est un programme qui redirige de manière sécurisée des connexions X.

kxd

est le démon pour kx.

login

est un programme ee connexion (login) kerberizé.

otp

gère des mots de passe à usage unique.

otpprint

affiche des listes de mots de passe à usage unique.

pfrom

est un script qui lance push --from.

popper

est un serveur POP-3 kerberizé.

push

est un client de récupération de messages électroniques kerberizé POP.

rcp

est un client rcp kerberizé.

rsh

est un client rsh kerberizé.

rshd

est un serveur rsh kerberizé.

rxtelnet

ouvre une fenâtre xterm sécurisée avec un telnet sur un hôte donné et redirige des connexions X.

rxterm

ouvre un xterm distant sécurisé.

string2key

associe un mot de passe à une clé.

su

est un client su kerberizé.

telnet

est un client telnet kerberizé.

telnetd

est un serveur telnet kerberizé.

tenletxr

redirige des connexions X en sens inverse.

verify_krb5_conf

cherche dans le fichier krb5.conf des erreurs évidentes.

xnlock

est un programme agissant comme un économiseur d'écran sécurisé pour les stations de travail qui fonctionnent avec X.

libasn1.{so,a}

fournit les fonctions ASN.1 et DER pour encoder et décoder les TGTs Kerberos.

libgssapi.{so,a}

contient les fonctions de la Generic Security Service Application Programming Interface (GSSAPI, interface de programmation de l'application de service de sécurité générique) qui offre aux appelants les services de sécurité de manière classique, supportable par une large gamme de mécanismes et de techqologies sous-jacents, d'où une portabilité des applications au niveau du code source vers des environnements différents.

libhdb.{so,a}

est une bibliothèque d'accès à une base de données d'authentification Heimdal Kerberos 5.

libkadm5clnt.{so,a}

contient les fonctions de vérification des authentifications et du mot de passe administrateur requis par les clients Kerberos 5.

libkadm5srv.{so,a}

contient les fonctions de vérification des authentifications et du mot de passe administrateur requis par les serveurs Kerberos 5.

libkafs.{so,a}

contient les fonctions nécessaires pour s'authentifier sur AFS.

libkrb5.{so,a}

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

libotp.{so,a}

contient les fonctions nécessaires à la gestion de l'authentication par mots de passe valides une seule fois.

libroken.{so,a}

est une bibliothèque qui contient des fonctions de compatibilité Kerberos 5.

Last updated on 2011-12-05 23:58:00 +0100