Openstuff Wiki : HowtoKerberos

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Revision [96]

This is an old revision of HowtoKerberos made by StanKju on 2006-06-08 10:08:16.
 

Authentification via kerberos


1 Installation/configuration du serveur


1.1 Installation des packages


# apt-get install krb5-kdc krb5-admin-server


1.2 Configuration


Le fichier krb5.conf devra être configurer sur l'ensemble des client. Il permet d'indiquer les différents royaumes ainsi que leur KDC respectif (Key Distribution Center = serveur kerberos).

# vi /etc/krb5.conf


	    [libdefaults]
	            default_realm = EXAMPLE.COM
	            ...
	    [realms]
	            EXAMPLE.COM = {
	                    kdc = localhost
	                    admin_server = localhost
	                    default_domain = example.com
	            }
	            ...
	    [domain_realm]
	            .example.com = EXAMPLE.COM
	            example.com = EXAMPLE.COM
	            ...


Le fichier kdc.conf contient la configuration du serveur kerberos.

# vi /etc/krb5kdc/kdc.conf


	    [realms]
	    EXMAPLE.COM = {
	            ...
	    }


1.3 Création de la base Kerberos


La création de la base Kerberos se fait via la commande suivante (l'option -s permet de réaliser le stockage dans un fichier) :
# kdb5_util create -s


Le password qui serra demandé ici, permettra le chiffrement de la base. A partir de maintenant, nous pouvons vérifier l'accès au KDC via la commade kadmin.local. Cette dernière est identique à la commande kadmin mais outrepasse les ACL root (utilisation locale uniquement).

# kadmin.local


1.4 Création de comptes


Nous pouvons déja regarder les comptes principaux créés par defaut :
kadmin.local:  listprincs
K/M@FRANCETELECOM.COM
kadmin/admin@FRANCETELECOM.COM
kadmin/changepw@FRANCETELECOM.COM
kadmin/history@FRANCETELECOM.COM
krbtgt/FRANCETELECOM.COM@FRANCETELECOM.COM


La création d'utilisateur passe par la commande ank : Add New key
kadmin.local:  ank admin/admin


Il faut ensuite stocker la clé dans un fichier particulier appelé keytab :
kadmin.local:  ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw


Le fichier /etc/krb5kdc/kadm5.keytab devrais donc maintenant contenir les clés correspondantes.

Dernière chose, la mise en place des ACL permettant de donner tous les privilèges aux comptes ayant une instance admin :
vi /etc/krb5kdc/kadm5.acl

	    */admin@FRANCETELECOM.COM *


1.5 Lancement du serveur


Le démarrage ce fait comme suit:
# /etc/init.d/krb5-admin-server restart
# /etc/init.d/krb5-kdc restart

2 Installation/configuration des client


2.1 Installtion des packages

apt-get install libpam-krb5 krb5-user


2.2 Configuration


Reprende le fichier /etc/krb5.conf du serveur.

2.3 Tests


Pour tester que tous fonctionne correctement, vous devriez pouvoir effectuer la séquence suivante:

Obtention d'un ticket pour le principal admin:
# kinit admin/admin@FRANCETELECOM.COM
Password for admin/admin@FRANCETELECOM.COM:


Affichage des tickets en cours:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@EXAMPLE.COM

Valid starting     Expires            Service principal
06/07/06 11:53:47  06/07/06 21:53:11  krbtgt/EXAMPLE.COM@EXAMPLE.COM


Destruction du ticket:
# kdestroy




3 Mise en place de l'authentification système


3.1 Configuration de PAM


Sur le client, nous allons utiliser PAM. Pour ce faire il faut ajouter les lignes suivantes au différents fichiers:

vi /etc/pam.d/common-auth
auth        sufficient    pam_krb5.so use_first_pass


vi /etc/pam.d/common-account
account     [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] pam_krb5.so


vi /etc/pam.d/common-password
password    sufficient    pam_krb5.so use_authtok


vi /etc/pam.d/common-session
session     optional      pam_krb5.so


3.2 Ajout de l'utilisateur


Sur le serveur, création d'un utilisateur olivier:
# kadmin
kadmin:  ank olivier


On peut maintenant faire un kinit olivier@EXAMPLE.COM

Nous allons maintenant créer l'utilisateur olivier sur le client:
# useradd olivier
# vi /etc/shadow
toto:*K*:13306:0:99999:7:::


Le mot de passe crypter qui est ici *K* est utiliser pour indiquer que le mot de passe proviens de kerberos.

3.3 Test


ssh olivier@client
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0957 seconds