Kerberos v5 et Mac os X ???

claw59

Membre actif
14 Décembre 2005
119
1
Dunkerque
bonjour, j'aurai besoin d'utiliser kerberos dans xcode pour valider l'utilisation d'une librairie MPI.

je possède les outils adéquat: kinit, krb5_util, etc... mais je n'arrive pas ç les utiliser correctement.

Le problème c'est que je n'arrive pas à démarrer et configurer efficacement Kerberos.

j'ai récupéré MAC OSX Kerberos Extra.dmg sur le site du mit, c'est à dire à cet endroit,
mais même en me référant à la documentation du site mère, je n'arrive pas à configurer kerberos.

mon problème:
impossible de réussir à créer un principal et un mot de passe associé
impossible de réussir à créer un KDC (forcément pas de principal)

mais le problème de base : les royaumes ??
comment spécifier une valeur par défaut de la variable realm pour un ordinateur en local ??

cela fait beaucoup de question, mais là vous me seriez très utile !

merci à l'avance de votre aide.
 
Je ne suis pas sûr mais dans l'idée :

- modifier ton fichier /etc/hosts et y ajouter une ligne du type :
127.0.0.1 localhost mycomputer

- éditer ton fichier /etc/krb5.conf de cette manière :
[libdefaults]
default_realm = MY_REALM
dns_lookup_realm = false
dns_lookup_kdc = false

[domain_realm]
mycomputer = MY_REALM
[realms]
MY_REALM = {
admin_server = mycomputer
kdc = mycomputer
}


J'ai dû monter récemment un système avec Kerberos en local (avec des spécialités en plus) et il me semble qu'on avait été obligé d'utiliser le truc de la modification du fichier "hosts" mais j'avoue que je ne suis pas sûr.
 
oui il est complet un peu trop peut être orienté mac os x server j'ai l'impression.

Après les paramètres spécifiés par .... dans le fichier /etc/kdb5.conf
et les infos ...
j'obtiens le résultat suivant pour la création de la base de données kerberos:

j'ai réussi à créer le fichier .kerberos pour spécifier une utilisation locale qui s'est placé dans /Library/Préférences/emit.edu.kerberos

c'est déjà cela, par contre je n'arrive pas à trouver la commande en ligne:
kdcsetup sur mon ordinateur.

aucune trace, apparemment il existerai seulement sur Mac os x server

j'ai donc essayé de créer une base avec 'kdb5_util' mais là ça coince !


Mac-mini:~ Admin1$sudo kdb5_util create
Loading random data
Initializing database '/var/db/krb5kdc/principal' for realm 'MY_REALM',
master key name 'K/M@MY_REALM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
create: No such file or directory while creating database '/var/db/krb5kdc/principal

vous n'auriez pas un petit indice par hasard ???
 
déjà essayé mais cela ne marche pas non plus,

apparemment, ce serait plus à cause de l'absence d'un fichier de configuration nommé:
kdc.conf qui doit fonctionner de pair avec krb5.conf par exemple regarder ici
 
sudo kdb5_util create -r MY_REALM -s

Loading random data
Initializing database '/var/db/krb5kdc/principal' for realm 'MY_REALM',
master key name 'K/M@MY_REALM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
gethostbyname: Invalid argument

en tout cas je suis certain d'être tout proche de la solution

détail de mon fichier /etc/hosts
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost mycomputer
255.255.255.255 broadcasthost
::1 localhost
 
j'ai l'impression qu'il existe une erreur dans mon fichier krb5.conf

[realms]
MY_REALM={
kdc=kdcserver.mycomputer:88
admin_server=kdcserver.mycomputer:749
default_domain=mycomputer
}

kdcserver ou autre chose ??
 
"kdcserver.mycomputer" : tu as défini ça quelque part ?
 
non, mais je crois que cela veut dire que le serveur kdc doit se servir du domaine nommé ici mycomputer

sinon comment ferait tu pour le déclarer ? dans le fichier /etc/hosts surement ??

127.0.0.1 localhost kdcserver.mycomputer

peut être ou je me trompe ??
en tout cas cela donne toujours le même genre d'erreur.

le pire c'est que si je fais : ping -c 110 mycomputer
je ping correctement sur localhost

d'après des recherches sur le web, il existerai un conflit potentiel entre ipv4 et ipv6
voir par ici

Pour l'instant cela coince et c'est dommage. j'ai l'impression d'être réelllement à deux petits cheveux de réussir et ça te file entre les doigts.....
 
d'après des recherches sur le web, il existerai un conflit potentiel entre ipv4 et ipv6

gethostbyname: Invalid argument

l'argument que tu envoies à gethostbyname
donc j'imagine gethostbyname(MY_REALM)

MY_REALM doit avoir une forme non acceptable ? n'est pas bon ou n'est pas "résolver"
tape hostname et déclare ca en realm
ou declare localhost en realm pour tester

sinon

gethostbyname renvoie une IPV4

gethostbyname(const char *name);


essaye de configurer d'abord ipv4 pour que
gethostbyname renvoie 127.0.0.1

inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

et non

inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000

c'est archaic mais l'ordre a son importance


[libdefaults]
default_realm = ATHENA.MIT.EDU

[realms]
ATHENA.MIT.EDU = {
kdc = kerberos.mit.edu
kdc = kerberos-1.mit.edu
kdc = kerberos-2.mit.edu
admin_server = kerberos.mit.edu
}

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

ca devrait fonctionner ... le probleme est peu etre ailleurs
 
l'outil 'ifconfig' me fournit le renseignement suivant:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

je me demande si c'est pas le fait plutôt d'utiliser directement le localhost comme adresse qui empêche de créer une base de donnée KDC et donc de pouvoir activer des tickets pour utiliser kerberos.

je me demande s'il faudrait pas plutôt passer par un serveur ftp stocké en local ce qui devrait permettre de conserver une adresse serveur virtuelle alors qu'il reste en local, car si je ne me trompe pas...en local il se branche sur l'adresse, identifie la connexion puis la coupe automatiquement, puisqu'à la base 127.0.0.1 est une simple adresse de test.

juste une réflection en passant à la lecture de site web concernant l'utilisation d'un réseau.
 
claw59 a dit:
l'outil 'ifconfig' me fournit le renseignement suivant:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

je me demande si c'est pas le fait plut&#244;t d'utiliser directement le localhost comme adresse qui emp&#234;che de cr&#233;er une base de donn&#233;e KDC et donc de pouvoir activer des tickets pour utiliser kerberos.

je me demande s'il faudrait pas plut&#244;t passer par un serveur ftp stock&#233; en local ce qui devrait permettre de conserver une adresse serveur virtuelle alors qu'il reste en local, car si je ne me trompe pas...en local il se branche sur l'adresse, identifie la connexion puis la coupe automatiquement, puisqu'&#224; la base 127.0.0.1 est une simple adresse de test.

juste une r&#233;flection en passant &#224; la lecture de site web concernant l'utilisation d'un r&#233;seau.
sur ta premiere inteface en0
rien ne t'inderdit d'ajouter

sudo ifconfig add en0 192.168.0.42

et de proteger avec ip forward "192.168.0.42"

puis de monter ton server dessus mais bon ce n'est pas le probleme

" La configuration de Kerberos (/etc/krb5.conf) n"est pas n&#233;cessaire, si les enregistrements du service DNS sont correctement configur&#233;s pour Kerberos."

donc je pense que c'est bien un probleme de "resolver" ton domain DNS n'est pas trouv&#233;

essaye d'ajouter MY_REALM dans netinfo &#224; 127.0.0.1 DNS localhost ajoute un alias MY_REALM
 
bon voici ma démarche:

creation de la base :
sudo kdb5_util create ATHENA.MIT.EDU

base crée avec demande de mot de passe

ajout des principaux:
sudo kadmin.local add_principal -pw motdepasse prince/[email protected]

sudo kadmin ktadd -k /etc/krb5.keytab prince/[email protected]
création d'un fichier keytab

sudo krb5kdc &
lancement du daemon

sudo kinit prince/admin
et là ça coince:
Kerberos Login Failed: Client not found in Kerberos database

sudo klist -k me donne:
2 prince/[email protected]
2 prince/[email protected]

et je précise que mon pare-feu est désactivé

j'ai regardé les fichiers existent !! (principal pour la base , fichier keytab...)

mystère, mystère....
 
ps: je viens de découvrir que la gestion des 'resolver' sous Tiger s'effectue grâce à l'outil de commande:

scutil --dns //pour afficher tout les DNS résolus.

je vais essayer d'y inclure athena.mit.edu en localhost.
on verra bien.
 
eh bien en faisant:
scutil --set HostName athena.mit.edu

ma machine résoud le dns vers localhost en effet, mais je reste pour l'instant au même point.

impossible de se logger sur les principaux inscrit dans la base de donnée.
mystère, mystère ......

est-il possible que ce soit un problème de clef inscrit dans le fichier Keytab ???
genre : il utilise le cryptage rsa au lieu de rsa1 ou dsa..

quel est le bon type de clef pour keytab ????