wiki:InsiaAdminSysTp3_8

Sommaire

TP - Kerberos

1. Installation de MIT Kerberos

Utilisez une machine virtuelle Etch, par exemple celle déjà utilisée pour SNMP ou Nagios (nous aurons besoin d'Apache). Installez la suite client et serveur Heimdal avec la commande ci-dessous (ceci inclu le KDC, les outils de test et administration, ainsi que des serveurs traditionnels - rsh, ftp, telnet - avec le support Kerberos). Le realm par défaut LINUX.INSIA.ORG convient et nous aurons un unique serveur Kerberos et un unique serveur d'administration (etchy).

# aptitude install heimdal-clients heimdal-servers heimdal-kdc

Attention: la configuration de l'image Qemu Etch assigne l'IP 127.0.1.1 au nom etchy, tandis que le KDC écoute uniquement sur les interfaces déclarées (normalement 127.0.0.1 et 10.0.2.15 en mode par défaut). Dans votre fichier /etc/hosts remplacez simplement 127.0.1.1 par 10.0.2.15. Ainsi les clients Kerberos fonctionneront normalement.

Attention (bis): les serveurs (kadmin, rsh, ftp, etc.) sont lancés via inetd qui ne tourne pas par défaut. N'oubliez pas un /etc/init.d/openbsd-inetd start si nécessaire.

Vous pouvez alors administrer le serveur localement (car vous êtes 'root', donc pas d'autentification supplémentaire), en consultant les principaux et en ajoutant un pour vous:

# kadmin -l
kadmin> get *
...
kadmin> add monlogin
...

Vous allez pouvoir tester une authentification avec votre nouveau compte et vérifier que le ticket obtenu est dans votre cache local:

# kinit monlogin
...
# klist
...

Créez un compte pour un service web générique (qui va nous servir ci-dessous) et exportez une autorisation vers le keytab par défaut:

kadmin> add --random-key HTTP/localhost
kadmin> ext HTTP/localhost
...
# ktutil list
...

2. Authentification Kerberos (partielle) via HTTP

Si Apache n'est pas installé (vous avez utilisé par exemple une image de machine virtuelle vierge), rajoutez le paquet apache2 et activer le module ad hoc avec a2enmod auth_kerb:

# aptitude install libapache2-mod-auth-kerb

Vous aurez peut être besoin de la documentation de mod_auth_kern

Vérifiez que vous pouvez joindre la page par défaut via http://localhost:8080/apache2-default/ avec un tunnel inverse - rappel (depuis la machine virtuelle, lancer):

# ssh -fNR 8080:localhost:80 monlogin@mamachine.linux.insia.org
# pgrep ssh

Vous allez restreindre l'accès à la page par défaut en créant un fichier /etc/apache2/conf.d/kerberos-test.conf avec ce squelette:

<Directory /var/www/apache2-default/>
  AuthType Kerberos
  ...
  Require valid-user
</Directory>

Vous noterez qu'en l'absence d'un navigateur équipé de la fonction Kerberos, votre identifiant et mot de passe sont transmis au serveur web qui va effectuer l'authentification client pour vous (sinon voir du côté de negotiateauth extension for Mozilla).

Le serveur web devra avoir accès à ses credentials sous forme de keytab. Normalement le keytab par défaut contient cette information, mais n'est pas lisible par Apache. Effectuez une copie pour Apache, donnez-les bons droits et utilisez Krb5Keytab à bon escient.

Note: n'oubliez pas de consulter les logs !

  • /var/log/apache2/error.log
  • /var/log/heimdal-kdc.log
Last modified 13 years ago Last modified on May 7, 2007, 12:29:11 PM