Skip to content


Créer un serveur d'authentification Kerberos sur une Debian Squeeze

Introduction

Un collègue ayant à travailler sur une méthode d'installation automatisée, devait entre deux Ubuntu se connecter en SSH afin de réaliser quelques manips ! (Salut Loïc 😉 )

Il rencontrait un souci, lorsqu'il tapait ssh loic@IP, rien ne se passait ! 🙁 Je ne l'avais pas remarqué et Loïc commençait à fatiguer de ne pas trouver la cause de ceci alors que SSH il métrise (attention fôte obligée).

Il me résuma la situation et me demanda si je n'avait pas une idée ? ...quelques secondes plus tard, ma réponse fut non ! Un peu perplèxe, je lui proposais de vérifier la configuration cliente de chacun des deux postes... ssh_config. Là deux options étaient présentes qui ne l'étaient pas sur mon poste !

GSSAPIAuthentication yes

GSSAPIDelegateCredentials no

Que sont ces options ? http://www.slac.stanford.edu/comp/unix/sshGSSAPI.html Ah ! Du kerberos dans SSH !?

What is GSSAPI Authentication?

GSSAPI is a ITEF standard for doing strong encrypted authentication in network based applications. OPENssh uses this API and the underlying kerberos 5 code to provide a alternative means of authentication other than ssh_keys.

Voilà donc le truc, le bidule, le grain qui semblait casser la belle routine de Loïc à propos du SSH !

Nous en avons eu la confirmation lorsque ces lignes furent commentées ! 🙂

Le soir même je me suis intéressé à cette implémentation... Mais il fallait installer et configurer un serveur Kerberos sur ma Debian...

C'est le pourquoi de cet article !

Création du serveur d'authentification Kerberos

On trouve tout sur le Web, de tout et de rien, et surtout des oublis... En effet il faut créer la branche, le royaume lors de cette installation les fichiers de configuration ne suffisent pas !

apt-get install krb5-{admin-server,kdc}

Quelques questions vous sont posées et correspondent (chez moi) à cela : realm DOM-SLN.LOCAL, host debian, domain dom-sln.local

Default Kerberos version 5 realm? DOM-SLN.LOCAL
# (Your domain name in uppercase - a standard for naming Kerberos realms)

Does DNS contain pointers to your realm's Kerberos Servers? No
# (No DNS configuration is required for our setup)
 
Add locations of default Kerberos servers to /etc/krb5.conf? Yes
# (Adding entries to krb.conf instead of DNS)
 
Create the Kerberos KDC configuration automatically? Yes
 
Kerberos4 compatibility mode to use: none
# (No krb4 compatibility needed in our setup)
 
Run a Kerberos V5 to Kerberos V4 ticket conversion daemon? No
 
Should the data be purged as well as the package files? No
 
Run the Kerberos V5 administration daemon (kadmind)? Yes
 
Kerberos servers for your realm: debian.dom-sln.local
# (Make sure your DNS resolves debian.dom-sln.local to
# the NETWORK IP of the server, NOT 127.0.0.1!). Hint is given in
# the section called “Conventions”.
 
Administrative server for your Kerberos realm: debian.dom-sln.local
# (Make sure your DNS resolves debian.dom-sln.local to
# the NETWORK IP of the server, NOT 127.0.0.1!). Same hint as above.
 
Create the Kerberos KDC configuration automatically? Yes
# New question added in Kerberos 1.7 and newer packages

...

Il faut ensuite indiquer à votre machine qu'un royaume doit-être créé !

Avec la commande :

# krb5_newrealm

DOM-SLN.LOCAL

Maintenant nous allons ajuster les fichiers de configuration afin qu'ils s'accorde avec les caractéristiques de votre royaume.

Editez /etc/krb5.conf puis dans la rubrique [domain_realm] ajoutez en fin :

.dom-sln.local = DOM-SLN.LOCAL
dom-sln.local = DOM-SLN.LOCAL

Ajoutez en fin de rubrique [realms]

DOM-SLN.LOCAL = {
        kdc = debian
        admin_server = debian
        default_domain = dom-sln.local
}

Puis faites en sorte que les journaux soient dans  /var/log/kerberos

sudo mkdir /var/log/kerberos
 
sudo touch /var/log/kerberos/{krb5kdc,kadmin,krb5lib}.log
 
sudo chmod -R 750 /var/log/kerberos

Mettre en finc de fichier :

[logging]
    kdc = FILE:/var/log/kerberos/krb5kdc.log
    admin_server = FILE:/var/log/kerberos/kadmin.log
    default = FILE:/var/log/kerberos/krb5lib.log

Ensuite ajoutez dans la rubrique [libdefaults]

allow_weak_crypto = false

Redémarrez les services :

/etc/init.d/krb5-admin-server restart
/etc/init.d/krb5-kdc restart

Nous allons créer les identifiants :

  • root/admin
  • lolo
  • root
# kadmin.local

Authenticating as principal root/admin@DOM-SLN.LOCAL with password.
kadmin.local: listprincs
K/M@DOM-SLN.LOCAL
kadmin/admin@DOM-SLN.LOCAL
kadmin/changepw@DOM-SLN.LOCAL
kadmin/history@DOM-SLN.LOCAL
kadmin/krb1.DOM-SLN.LOCAL@DOM-SLN.LOCAL
krbtgt/DOM-SLN.LOCAL@DOM-SLN.LOCAL

Puis créer des règles sur les mots de passe

kadmin.local:  add_policy -minlength 8 -minclasses 3 admin
kadmin.local:  add_policy -minlength 8 -minclasses 4 host
kadmin.local:  add_policy -minlength 8 -minclasses 4 service
kadmin.local:  add_policy -minlength 8 -minclasses 2 user

Nous alons maintenant créer : lolo et root et root/admin, lolo sans privilège et root ou root/admin avec tout

kadmin:  addprinc -policy admin root/admin
 
Enter password for principal "root/admin@DOM-SLN.LOCAL": PASSWORD
Re-enter password for principal "root/admin@DOM-SLN.LOCAL": PASSWORD
Principal "root/admin@DOM-SLN.LOCAL" created.
kadmin:  addprinc -policy user root
 
Enter password for principal "root@DOM-SLN.LOCAL": PASSWORD
Re-enter password for principal "root@DOM-SLN.LOCAL": PASSWORD
Principal "root@DOM-SLN.LOCAL" created.
kadmin:  addprinc -policy user lolo
 
Enter password for principal "lolo@DOM-SLN.LOCAL": PASSWORD
Re-enter password for principal "lolo@DOM-SLN.LOCAL": PASSWORD
Principal "lolo@DOM-SLN.LOCAL" created.

Editez /etc/krb5kdc/kadm5.acl

Puis mettez :

*/admin *
root *

Redémarrez les services

/etc/init.d/krb5-admin-server restart
/etc/init.d/krb5-kdc restart

Ici votre serveur d'authentification est prêt ! Avec votre utilisateur "lolo" lancez la commande "kinit" afin de créer un ticket kerberos pour celui-ci.
Dans le journal /var/log/kerberos/krb5kdc.log apparait les lignes suivantes :

Oct 19 10:18:01 debian krb5kdc[22750](info): AS_REQ (4 etypes {18 17 16 23}) 127.0.1.1: NEEDED_PREAUTH: lolo@DOM-SLN.LOCAL for krbtgt/DOM-SLN.LOCAL@DOM-SLN.LOCAL, Additional pre-authentication required
Oct 19 10:18:04 debian krb5kdc[22750](info): AS_REQ (4 etypes {18 17 16 23}) 127.0.1.1: ISSUE: authtime 1319012284, etypes {rep=18 tkt=18 ses=18}, lolo@DOM-SLN.LOCAL for krbtgt/DOM-SLN.LOCAL@DOM-SLN.LOCAL

Voilà !

http://techpubs.spinlocksolutions.com/dklar/kerberos.html#krb-install

http://itservices.stanford.edu/service/kerberos/install_debian

Print Friendly, PDF & Email

Posted in Debian, Important, Linux, Sécurité, Technique, Toutes. Tagged with , , , , , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.

Time limit is exhausted. Please reload CAPTCHA.


/* */
Creative Commons License
Cette création par Laurent Besson est mise à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.