Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
320kerberos:10_manip_simple [le 10/02/2010 à 09:58] – prof | 320kerberos:10_manip_simple [le 30/06/2018 à 15:57] (Version actuelle) – prof | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
Voyons tout d' | Voyons tout d' | ||
===== Le décor de la scène ===== | ===== Le décor de la scène ===== | ||
- | Grâce aux avantages de KVM nous pouvons disposer d' | + | Grâce aux avantages de KVM (([[http:// |
- | * un serveur '' | + | * un serveur '' |
* un serveur '' | * un serveur '' | ||
* un client qui voudrait bien accéder au contenu de '' | * un client qui voudrait bien accéder au contenu de '' | ||
Ligne 10: | Ligne 10: | ||
==== Ça ne marche pas ==== | ==== Ça ne marche pas ==== | ||
- | Première prise, l' | + | Première prise, l' |
{{ : | {{ : | ||
- | Il se fait jeter... | + | Il se fait jeter dehors... |
==== Risette à kerberos ==== | ==== Risette à kerberos ==== | ||
Chris lit alors la notice où on lui explique qu'il doit d' | Chris lit alors la notice où on lui explique qu'il doit d' | ||
Ligne 23: | Ligne 24: | ||
Confiant, il re essaye : | Confiant, il re essaye : | ||
- | {{ : | + | {{ : |
- | Et là, chris peut fermer son navigateur puis le ré-ouvrir, retourner sur la même page et ça marchera encore. | + | Et là, chris peut fermer son navigateur puis le ré-ouvrir, retourner sur la même page. Il sera automatiquement reconnu durant toute la validité |
- | === Un peu de curiosité === | + | |
- | Notre utilisateur n' | + | |
- | < | + | |
- | chris@pchris: | + | |
- | Ticket cache: FILE:/ | + | |
- | Default principal: chris@MAISON.MRS | + | |
- | Valid starting | ||
- | 02/09/10 18: | ||
- | renew until 02/10/10 18:17:46 | ||
- | </ | ||
- | C'est pas forcément très compréhensible, | ||
- | < | ||
- | chris@pchris: | ||
- | chris@pchris: | ||
- | klist: No credentials cache found (ticket cache FILE:/ | ||
- | </ | ||
- | On a perdu le ticket. Et bien sûr, une visite à '' | ||
- | Amusant ce truc... | ||
- | < | ||
- | chris@pchris: | ||
- | Password for chris@MAISON.MRS: | ||
- | Authenticated to Kerberos v5 | ||
- | chris@pchris: | ||
- | Ticket cache: FILE:/ | ||
- | Default principal: chris@MAISON.MRS | ||
- | Valid starting | ||
- | 02/09/10 19: | ||
- | renew until 02/10/10 19:20:57 | ||
- | </ | ||
- | On a de nouveau le ticket. Profitons-en pour visiter notre site favori, ça marche. | ||
- | < | ||
- | chris@pchris: | ||
- | Ticket cache: FILE:/ | ||
- | Default principal: chris@MAISON.MRS | ||
- | Valid starting | ||
- | 02/09/10 19: | ||
- | renew until 02/10/10 19:20:57 | ||
- | 02/09/10 19: | ||
- | renew until 02/10/10 19:20:57 | ||
- | </ | ||
- | Il y a du nouveau. Un truc en plus assez explicite à propos de notre site. On n'a rien demandé de spécial pourtant. Donc, le seul fait de visiter le site « kerbérisé » a fait que nous avons obtenu un ticket de plus. | ||
- | ===== Coup d'œil à la machinerie ===== | ||
- | Si tout ceci fonctionne, c'est parce que : | ||
- | * '' | ||
- | * des utilisateurs enregistrés (chris entre autres) ; | ||
- | * des services sur des hôtes ('' | ||
- | * '' | ||
- | * un module spécial, '' | ||
- | * un « tableau de clés » (keytab) a été placé sur ce serveur, de manière à ce qu'il sache à qui s' | ||
- | * le poste client quant-à-lui utilise les outils nécessaires à l' | ||
- | Pour les trois protagonistes, | ||
- | |||
- | ==== krb5.conf ==== | ||
- | C'est le fichier de configuration du royaume, commun ici à tous les protagonistes : | ||
- | < | ||
- | [realms] | ||
- | MAISON.MRS = { | ||
- | kdc = 192.168.0.133 | ||
- | admin_server = 192.168.0.133 # kerberos.maison.mrs | ||
- | default_domain = MAISON.MRS | ||
- | } | ||
- | |||
- | [domain_realm] | ||
- | .maison.mrs = MAISON.MRS | ||
- | | ||
- | |||
- | [logging] | ||
- | default = FILE:/ | ||
- | kdc = FILE:/ | ||
- | admin-server = FILE:/ | ||
- | |||
- | [appdefaults] | ||
- | pam = { | ||
- | debug = true | ||
- | forwardable = true | ||
- | krb4_convert = false | ||
- | } | ||
- | </ | ||
- | Pour l' | ||
- | |||
- | Le peu qu'il y a ici n'est pas très difficile à interpréter, | ||
- | * '' | ||
- | * '' | ||
- | Les noms sont assez explicites. | ||
- | |||
- | L' | ||
- | |||
- | En réalité, la définition des royaumes peut être plus complexe, un hôte peut appartenir à plusieurs royaumes et un utilisateur peut s' | ||
- | |||
- | ==== le keytab d' | ||
- | Sur apache, nous avons un tableau de clés que l'on peut consulter avec la commande klist : | ||
- | < | ||
- | apache-krb: | ||
- | Keytab name: FILE:/ | ||
- | KVNO Principal | ||
- | ---- -------------------------------------------------------------------------- | ||
- | 3 host/ | ||
- | 3 host/ | ||
- | 3 host/ | ||
- | 3 host/ | ||
- | 3 HTTP/ | ||
- | 3 HTTP/ | ||
- | 3 HTTP/ | ||
- | 3 HTTP/ | ||
- | </ | ||
- | Prenons-le comme tel pour le moment, nous comprendrons mieux plus tard. | ||
- | ==== configuration d' | ||
- | Il s'agit de la configuration par défaut du serveur par défaut à laquelle il a été ajouté les paramètres relatifs à l' | ||
- | < | ||
- | & | ||
- | <span class=" | ||
- | AuthType Kerberos | ||
- | Krb5Keytab / | ||
- | KrbMethodK5Passwd off | ||
- | KrbSaveCredentials on | ||
- | require valid-user</ | ||
- | |||
- | Options Indexes FollowSymLinks MultiViews | ||
- | AllowOverride None | ||
- | Order allow,deny | ||
- | allow from all | ||
- | & | ||
- | </ | ||
- | Pour ceux qui ont envie d'en savoir plus sur les paramètres que l'on peut passer au module, voyez [[http:// | ||
- | |||
- | ==== Le principal ==== | ||
- | Dans l' | ||
- | < | ||
- | root@pchris: | ||
- | Authenticating as principal chris/admin with password. | ||
- | Password for chris/ | ||
- | kadmin: | ||
- | |||
- | HTTP/ | ||
- | K/ | ||
- | chris/ | ||
- | chris@MAISON.MRS | ||
- | host/ | ||
- | host/ | ||
- | kadmin/ | ||
- | kadmin/ | ||
- | kadmin/ | ||
- | kadmin/ | ||
- | krbtgt/ | ||
- | </ | ||
- | |||
- | Passons sur les détails, certains de ces principaux sont créés à l' | ||
- | * chris@MAISON.MRS | ||
- | * host/ | ||
- | * HTTP/ | ||
- | entre autres. Nous retrouvons deux éléments qui figurent sur le tableau de clés de '' | ||
- | ===== Le snif d' | ||
- | Notre utilisateur, | ||
- | < | ||
- | No. | ||
- | ... | ||
- | <span class=" | ||
- | 4 3.344897 | ||
- | ... | ||
- | 8 8.783804 | ||
- | ... | ||
- | <span class=" | ||
- | ... | ||
- | <span class=" | ||
- | 13 18.801013 | ||
- | 14 18.803833 | ||
- | <span class=" | ||
- | ... | ||
- | </ | ||
- | * les lignes 3 et 4 sont générées par la commande '' | ||
- | * la ligne 10 représente la demande d' | ||
- | * les lignes 12 et 13 représentent une requête « TGS-REQ » que le client (192.168.0.16) fait au serveur kerberos (192.168.0.133), | ||
- | * la suite montre que la requête http '' | ||
===== Faisons le point ===== | ===== Faisons le point ===== | ||
Nous avons pu observer suffisamment de choses pour mieux comprendre le principe de kerberos et accessoirement pourquoi ce protocole a-t-il été appelé ainsi. | Nous avons pu observer suffisamment de choses pour mieux comprendre le principe de kerberos et accessoirement pourquoi ce protocole a-t-il été appelé ainsi. | ||
- | * l' | + | * l' |
- | * lorsque l' | + | * lorsque l' |
- | + | ||
- | Nous avons donc pu constater de façon subtile l' | + | |
- | Reste à démonter le mécanisme et à voir de plus près l'aspect sécuritaire | + | Nous avons donc pu constater |
Démonstration simple: Dernière modification le: 10/02/2010 à 09:58 par prof