Comment installer Kerberos KDC Server and Client sur Ubuntu 18.04

Comment installer Kerberos KDC Server and Client sur Ubuntu 18.04

Ce tutoriel couvre le guide progressif pour configurer un serveur Kerberos (KDC) et le client compatible Kerberos, puis tester la configuration en obtenant un billet Kerberos à partir du serveur KDC.

Dans ce tutoriel, vous apprendrez:

  • Qu'est-ce que Kerberos et comment ça marche
  • Configurez le serveur Kerberos (KDC)
  • Configurer le client
  • Testez l'authentification Kerberos
  • Création de Keytab

Aperçu de Kerberos.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Ubuntu 18.04
Logiciel Kerberos Server et Packages d'administration
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Qu'est-ce que Kerberos et comment ça marche



Kerberos est un protocole d'authentification réseau. Il est conçu pour fournir une solide authentification pour les applications client / serveur en utilisant la cryptographie à clé secrète.

Le client s'authentifie au serveur d'authentification (AS) qui transfère le nom d'utilisateur à un centre de distribution de clés (KDC). Le KDC émet un ticket (TGT), qui s'accumule des billets, qui est horodaté et le crypte en utilisant la clé secrète du service (TGS) du service de ticket et renvoie le résultat crypté au poste de travail de l'utilisateur. Cela se fait rarement, généralement lors de la connexion de l'utilisateur; Le TGT expire à un moment donné, bien qu'il puisse être renouvelé de manière transparente par le gestionnaire de session de l'utilisateur alors qu'ils sont connectés.

Lorsque le client doit communiquer avec un autre nœud («directeur» dans le langage de Kerberos) à un service sur ce nœud, le client envoie le TGT au TGS, qui partage généralement le même hôte que le KDC. Le service doit être enregistré chez TGT avec un nom principal de service (SPN). Le client utilise le SPN pour demander l'accès à ce service. Après avoir vérifié que le TGT est valide et que l'utilisateur est autorisé à accéder au service demandé, le TGS émet des clés de billet et de session au client. Le client envoie ensuite le billet au Service Server (SS) avec sa demande de service.

Configurez le serveur Kerberos (KDC)

La synchronisation du temps et le DNS joue un rôle important pour travailler correctement KDC. Si le décalage horaire est de plus de 5 minutes, l'authentification échouera. Les FQDN devraient idéalement résoudre dans un environnement approprié, ici nous nous débrouillons avec la modification / etc / hôtes Mais l'utilisation correcte du DNS est recommandée.

Exécutez la commande ci-dessous pour installer Kerberos Admin Server et KDE (Key Distribution Center):



# apt install krb5-kdc krb5-admin-server krb5-config

Il demandera aux trois choses suivantes une par une

  1. Royaume de Kerberos. (Ici, j'ai utilisé Ubuntubox.Com)
  2. Nom d'hôte Kerberos Server - KDC.ubuntubox.com
  3. Nom d'hôte du serveur administratif (changement de mot de passe) pour Kerberos Realm Ubuntubox.Com - KDC.ubuntubox.com
Fournir le royaume de Kerberos. Fourniture du serveur Kerberos FQDN.

Fourniture du serveur d'administration FQDN. Configuration du serveur d'administration KRB5.

Exécutez maintenant la commande ci-dessous pour configurer le royaume.

# krb5_newrealm

Il demandera à saisir un mot de passe pour la création de bases de données et après cela, il commencera Kerberos KDC KRB5KDC et Kerberos Serveurs Administratifs Kadmind Process.



root @ kdc: ~ # krb5_newrealm Ce script doit être exécuté sur le serveur Master KDC / Admin pour initialiser un royaume de Kerberos. Il vous demandera de saisir un mot de passe de clé principale. Ce mot de passe sera utilisé pour générer une clé stockée dans / etc / krb5kdc / cachette. Vous devriez essayer de vous souvenir de ce mot de passe, mais il est beaucoup plus important que ce soit un mot de passe fort que ce qu'il se souvient. Cependant, si vous perdez le mot de passe et / etc. Chargement des données aléatoires Initialisation de la base de données '/ var / lib / krb5kdc / principal' pour le royaume 'ubuntubox.Com ', Master Key Name' K / M @ Ubuntubox.Com 'vous serez invité à le mot de passe maître de la base de données. Il est important que vous n'oubliez pas ce mot de passe. Entrez KDC Database Master Key: Rentrez KDC Database Master Key pour vérifier: Maintenant que votre royaume est configuré, vous pouvez créer un directeur administratif à l'aide de la sous-commande addPrinc du Kadmin.programme local. Ensuite, ce directeur peut être ajouté à / etc / krb5kdc / kadm5.ACL afin que vous puissiez utiliser le programme Kadmin sur d'autres ordinateurs. Les directeurs d'administration de Kerberos appartiennent généralement à un seul utilisateur et se terminent par / admin. Par exemple, si JRUSER est un administrateur de Kerberos, en plus du directeur JRUSER normal, un directeur JRUSER / Admin doit être créé. N'oubliez pas de configurer les informations DNS afin que vos clients puissent trouver vos serveurs KDC et Admin. Cela est documenté dans le guide d'administration. root @ kdc: ~ # 

Ouvrir / etc / krb5kdc / kadm5.ACL fichier avec l'un des éditeurs de texte et décommenter la dernière ligne afin que le fichier ressemble à.

vim / etc / krb5kdc / kadm5.ACL
# Ce fichier est la liste de contrôle d'accès pour l'administration KRB5. # Lorsque ce fichier est modifié le service d'exécution krb5-admin-server redémarrer pour activer # Une façon courante de configurer l'administration Kerberos est de permettre à tout principal # # fin dans / admin reçoit des droits administratifs complets. # Pour activer cela, décommentez la ligne suivante: * / admin * 
Copie

Maintenant, le processus de configuration du serveur Kerberos s'est terminé avec succès.

Configurer le client

Exécutez la commande ci-dessous pour installer et configurer le client Kerberos.

# apt install krb5-user

Encore une fois, il demandera à 3 choses une par une comme la configuration du serveur KDC.

  1. Kerberos Realm - Ubuntubox.Com
  2. Nom d'hôte pour le serveur KDC - KDC.ubuntubox.com
  3. Nom d'hôte du serveur d'administration - KDC.ubuntubox.com

Testez l'authentification Kerberos



Un directeur de KEBS est une identité unique à laquelle Kerberos peut attribuer des billets, donc nous créerons un directeur dans le serveur KDC comme ci-dessous.

addPrinc "Principal_name"
root @ kdc: ~ # kadmin.Authentification locale en tant que root principal / admin @ ubuntubox.Com avec mot de passe. kadmin.Local: AddPrinc Sandipb AVERTISSEMENT: Aucune politique spécifiée pour sandipb @ ubuntubox.Com; défautant à aucune politique entrez le mot de passe pour le principal "sandipb @ ubuntubox.Com ": réintégrer le mot de passe pour le principal" sandipb @ ubuntubox.Com ": principal" sandipb @ ubuntubox.Com "créé. kadmin.local: 

Pour supprimer un directeur de KDC, exécutez la commande suivante.

DelPrinc "Principal_name"
root @ kdc: ~ # kadmin.Local: authentification en tant que root principal / admin @ ubuntubox.Com avec mot de passe. kadmin.Local: DelPrinc Sandipb êtes-vous sûr de vouloir supprimer le principal "sandipb @ ubuntubox.Com "? (Oui / Non): Oui Principal "Sandipb @ Ubuntubox.Com "supprimé. Assurez-vous que vous avez supprimé ce principal de tous les ACL avant de réutiliser. kadmin.local: 

Maintenant, pour s'authentifier dans Kerberos et obtenir un billet à partir du serveur KDC Exécutez la commande suivante dans le nœud client.

Note: Les billets seront détruits lorsque vous redémarrez votre ordinateur, lorsque vous exécutez la commande
kdestroy, ou quand ils expirent. Vous devrez à nouveau courir les kinit après que l'un de ces produits se produise.
# kinit sandipb


root @ kdcclient: ~ # kinit sandipb mot de passe pour sandipb @ ubuntubox.Com: root @ kdcclient: ~ # root @ kdcclient: ~ # klist ticket cache: fichier: / tmp / krb5cc_0 Principal par défaut: sandipb @ ubuntubox.Com valide le démarrage expire le principal du service 2018-12-29t19: 38: 53 2018-12-30t05: 38: 53 krbtgt / ubuntubox.Com @ ubuntubox.Com renouveler jusqu'en 2018-12-30t19: 38: 38 root @ kdcclient: ~ # 

Pour vérifier les détails du capital, exécutez la commande ci-dessous dans le serveur KDC.

getPRINC "Principal_name"
root @ kdc: ~ # kadmin.Authentification locale en tant que root principal / admin @ ubuntubox.Com avec mot de passe. kadmin.Local: GetPrinc Sandipb Principal: sandipb @ ubuntubox.Com Date d'expiration: [jamais] Dernier changement de mot de passe: dimanche 30 déc. 19:30:59 +04 2018 Date d'expiration du mot de passe: [jamais] Life de billets maximum: 0 jours 10:00:00 Life renouvelable maximum: 7 jours 00:00: 00 Dernier modification: dim 30 déc. 19:30:59 +04 2018 (root / admin @ ubuntubox.Com) Dernière authentification réussie: dimanche 30 déc. 19:38:53 +04 2018 Dernière authentification échouée: [jamais] Échec des tentatives de mot de passe: 0 Nombre de clés: 2 Clé: VNO 1, AES256-CTS-HMAC-SHA1-96 Clé: VNO 1, AES128-CTS-HMAC-SHA1-96 MKEY: VNO 1 Attributs: Deibles_pre_Auth Politique: [Aucun] Kadmin.local: 

Création de Keytab



Un Keytab est un fichier contenant des paires de directeurs de Kerberos et de clés cryptées (qui sont dérivées du mot de passe Kerberos). Vous pouvez utiliser un fichier KeyTab pour vous authentifier à divers systèmes distants à l'aide de Kerberos sans saisir de mot de passe. Cependant, lorsque vous modifiez votre mot de passe Kerberos, vous devrez recréer tous vos clés.

root @ kdc: ~ # ktutil ktutil: add_entry -password -p sandipb @ ubuntubox.Com -K 1 -e AES256-CTS-HMAC-SHA1-96 Mot de passe pour sandipb @ ubuntubox.Com: ktutil: add_entry -password -p sandipb @ ubuntubox.Com -K 1 -e AES128-CTS-HMAC-SHA1-96 Mot de passe pour sandipb @ ubuntubox.Com: Ktutil: wkt sandipkt.keytab ktutil: q root @ kdc: ~ # 
root @ kdc: ~ # klist -kte sandipkt.KeyTab Keytab Nom: Fichier: Sandipkt.Keytab Kvno Timestamp Principal ---- ------------------- ----------------------- ------------------------------- 1 2018-12-30T00: 35: 07 Sandipb @ Ubuntubox.Com (AES256-CTS-HMAC-SHA1-96) 1 2018-12-30T00: 35: 07 Sandipb @ Ubuntubox.Com (aes128-cts-hmac-sha1-96) root @ kdc: ~ # 
root @ kdc: ~ # kinit -k -t sandipkt.keytab sandipb root @ kdc: ~ # klist ticket cache: fichier: / tmp / krb5cc_0 Principal par défaut: sandipb @ ubuntubox.Com valide le démarrage expire le principal service 2018-12-30t00: 36: 44 2018-12-30t10: 36: 44 krbtgt / ubuntubox.Com @ ubuntubox.Com renouveler jusqu'en 2018-12-31T00: 36: 34 root @ KDC: ~ # 

Conclusion

Une authentification est essentielle pour la sécurité des systèmes informatiques, les méthodes d'authentification traditionnelles ne conviennent pas à une utilisation dans les réseaux informatiques.Le système d'authentification Kerberos est bien adapté à l'authentification des utilisateurs dans de tels environnements.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Masterring Bash Script Loops
  • Fichiers de configuration Linux: 30 premiers
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Ubuntu 20.04 Guide
  • Liste des meilleurs outils Kali Linux pour les tests de pénétration et…
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Choses à installer sur Ubuntu 22.04