Paramétrage avancé des pincipals

Kadmin vs kadmin.local

Jusqu’à présent nous avons vu deux façons d’interagir avec la base Kerberos :

  • depuis le KDC, avec kadmin.local
  • depuis n’importe quel ordinateur du royaume, avec kadmin

Ces deux outils ont des fonctionnalités équivalentes. La seule chose qui diffère entre les deux est la méthode d’authentification.

Définir une politique de mots de passe

Avec Kerberos, il est possible de définir une stratégie (policy) de complexité des secrets associés aux principals (ie. les mot de passe). L’objectif est de renforcer leur sécurité.

La première étape consiste à créer une policy. Cela s’effectue avec la commande add_policy dans l’utilitaire kadmin.local (ou kadmin). Les options possibles sont détaillées ci-dessous.

Option Exemple Signification
-maxlife -maxlife “10 hours” Le mot de passe a une durée vie maximale de 10 heures
-minlength -minlength 8 Le mot de passe doit comporter au minimum 8 caractères
-minclasses -minclasses 2 Le mot de passe doit contenir des caractères appartenant à au moins 2 classes de caractères différentes (majuscules, minuscules, chiffres, caractères de ponctuation)

Pour construire une policy, toutes ces options ne sont pas obligatoires. Voici un exemple simple pour des mots de passe à 8 caractères.

kadmin.local: addpol -minlength 8 simple

La commande listpols visualise les policy disponibles. Avec getpol, on obtient les détails d’une policy

kadmin.local:  listpols
simple
kadmin.local:  getpol simple
Policy: simple
Maximum password life: 0
Minimum password life: 0
Minimum password length: 8
Minimum number of password character classes: 1
Number of old keys kept: 1
Reference count: 0
Maximum password failures before lockout: 0
Password failure count reset interval: 0 days 00:00:00
Password lockout duration: 0 days 00:00:00

Affectons cette policy à un principal que nous avons créé précédement.

kadmin.local: modprinc -policy simple jack/admin@VBOX.TP

Essayer d’affecter un nouveau mot de passe de 4 caractères. L’opération réussit-elle ?

kadmin.local:  cpw jack/admin@VBOX.TP
Enter password for principal "jack/admin@VBOX.TP": 
Re-enter password for principal "jack/admin@VBOX.TP": 
change_password: Password is too short while changing password for "jack/admin@VBOX.TP".

En exercice :

  1. Créer d’autres principal utilisateurs en accord avec les logins présents dans l’annuaire LDAP. Aidez-vous du script proposé en bas de la page de présentation des membres de l’annuaire.

  2. Créer une policy pour les administrateurs et pour les utilisateurs standards. Libre à vous de définir la politique de sécurité.

Durée de vie des tickets

Tous les tickets Kerberos ont une durée de vie limitée. Par défaut, cette durée est fixée à 10h renouvelable pendant 7 jours. C’est la commande getprinc qui nous apprend cela dans kadmin (lignes Maximum ticket life et Maximum renewable life.)

kadmin.local:  getprinc jack/admin@VBOX.TP
Principal: jack/admin@VBOX.TP
Expiration date: [never]
Last password change: Sun Sep 07 22:34:49 CEST 2014
Password expiration date: [none]
Maximum ticket life: 0 days 10:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Fri Sep 12 17:14:50 CEST 2014 (root/admin@VBOX.TP)
Last successful authentication: Fri Sep 12 15:47:07 CEST 2014
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 8
Key: vno 1, aes256-cts-hmac-sha1-96, no salt
Key: vno 1, arcfour-hmac, no salt
Key: vno 1, des3-cbc-sha1, no salt
Key: vno 1, des-cbc-crc, no salt
Key: vno 1, des-cbc-md5, Version 4
Key: vno 1, des-cbc-md5, Version 5 - No Realm
Key: vno 1, des-cbc-md5, Version 5 - Realm Only
Key: vno 1, des-cbc-md5, AFS version 3
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: simple

Toujours avec modprinc il est possible d’étendre la durée de vie d’un ticket (passons à 15h).

kadmin.local:  modprinc -maxlife "15 hours" jack/admin@VBOX.TP
Principal "jack/admin@VBOX.TP" modified.

En exercice :

  1. Avec getprinc, vérifier que la durée de vie d’un ticket émis pour le principal jack/admin@VBOX.TP est bien passée à 15 heures.

  2. Réduire la durée de vie d’un principal à quelques minutes

  3. Depuis la machine clinux obtenir un TGT pour ce principal. Attendre son heure d’expiration.

  4. Utiliser la commande kinit pour le renouveler.