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.LOCALMaintenant 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.LOCALAjoutez 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
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 restartNous 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.LOCALPuis 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 restartIci 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
Share on Facebook


Commentaires récents