Kerberos est un protocole d’authentification réseau qui utilise la cryptographie à clé symétrique et nécessite l’autorisation d’un tiers de confiance pour authentifier les applications client-serveur. Il a été développé à l’origine par le Massachusetts Institute of Technology (MIT) pour protéger les services réseau fournis par le projet Athena.
Dans le monde moderne, Kerberos est souvent utilisé comme un service d’authentification tiers. Cela signifie que tous les clients font confiance au jugement de Kerberos sur l’identité d’un autre client.
Dans ce tutoriel, nous allons vous montrer comment configurer l’authentification Kerberos entre deux serveurs Ubuntu 18.04. Nous allons installer et configurer le serveur Kerberos sur le serveur Ubuntu, puis installer le client Kerberos sur l’autre. Enfin, nous allons tester l’authentification du service SSH avec le serveur Kerberos.
Prérequis
- Serveur Ubuntu 18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
- Privilèges root
Ce que nous allons faire:
- Configuration du fichier FQDN
- Installation du serveur KDC Kerberos
- Configuration du serveur KDC Kerberos
- Installation et configuration du client Kerberos
- Test
Étape 1 – Configuration du FQDN
Tout d’abord, il faut configurer le nom de domaine complet sur le serveur Kerberos puis éditer le fichier ‘/etc/hosts’ du serveur.
Modifiez le nom de domaine complet du serveur Kerberos à l’aide de la commande suivante.
hostnamectl set-hostname krb5.ahmad.io
Après cela, éditez le fichier ‘/etc/hosts’ à l’aide de l’éditeur vim.
vim /etc/hosts
Modifiez l’adresse IP et le nom de domaine complet avec le vôtre et collez-le dedans.
10.10.10.15 krb5.ahmad.io krb5
Enregistrer et fermer.
Testez maintenant en utilisant la commande ‘ping’ ci-dessous et assurez-vous que le nom de domaine complet est résolu à la bonne adresse IP.
ping -c 3 $(hostname -f)
Étape 2 – Installez le serveur KDC Kerberos
Maintenant, nous allons installer le serveur Kerberos sur le serveur ‘krb5’ avec l’adresse IP ‘10.10.10.15’ et le nom de domaine complet est ‘krb5.ahmad.io ‘.
Installez le serveur Kerberos à l’aide de la commande apt suivante.
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
Lors de l’installation, vous serez interrogé sur le royaume Kerberos, le serveur Kerberos du Royaume et le serveur d’administration.
Par défaut, le Kerberos utilisera le nom de domaine du serveur Kerberos comme DOMAINE,’AHMAD.IO’.
Le serveur Kerberos est ‘krb5.ahmad.io’.
Et le serveur d’administration identique au serveur Kerberos’krb5.ahmad.io’.
Une fois l’installation terminée, le service Kerberos ne s’exécute pas. C’est bien parce que nous allons configurer à l’étape suivante.
Étape 3 – Configurez le serveur KDC Kerberos
Générez maintenant un nouveau mot de passe maître fort pour le royaume Kerberos à l’aide de la commande suivante.
sudo krb5_newrealm
Tapez votre mot de passe fort et le mot de passe du ROYAUME sera généré dans le fichier ‘/etc/krb5kdc/stash’.
Après cela, nous devons créer l’utilisateur administrateur (administrateur principal) pour le serveur KDC Kerberos, ajouter le nom d’hôte du serveur Kerberos à la base de données, puis créer le keytab pour le serveur Kerberos.
Exécutez le ‘kadmin.interface de ligne de commande locale pour la commande d’administration Kerberos ci-dessous.
sudo kadmin.local
Créez un nouveau principal d’utilisateur administrateur appelé ‘root’.
addprinc root/admin
Tapez le mot de passe fort pour le principal d’administration ‘root’.
Ajoutez le serveur KDC Kerberos à la base de données et créez le fichier keytab pour l’hôte KDC.
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
Puis fermez le ‘kadmin.utilité locale.
quit
Ensuite, nous devons ajouter le principe d’administration ‘root’ à la liste de contrôle d’accès en éditant le ‘/etc/krb5kdc/kadm5.fichier acl.
vim /etc/krb5kdc/kadm5.acl
Ajoutez la configuration suivante.
root/admin *
Enregistrez et fermez la configuration, puis redémarrez le service Kerberos.
sudo systemctl restart krb5-admin-server.service
Et la configuration du serveur KDC Kerberos est terminée.
Étape 4 – Installez et configurez le client Kerberos
Dans cette étape, nous allons installer le client Kerberos sur le serveur Ubuntu avec l’adresse IP ‘10.10.10.16’ et le nom d’hôte ‘client1’.
– Configure le nom de domaine complet
Configure le nom de domaine complet sur la machine cliente à l’aide de la commande suivante.
hostnamectl set-hostname client1.ahmad.io
Après cela, éditez le fichier ‘/etc/hosts’ à l’aide de l’éditeur vim.
vim /etc/hosts
Collez le serveur KDC Kerberos et le client comme ci-dessous.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Enregistrer et fermer.
– Installez le client Kerberos
Installez les paquets clients Kerberos en exécutant la commande apt suivante.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Lors de l’installation, vous serez interrogé sur le royaume Kerberos, le serveur Kerberos du Royaume et le serveur d’administration.
Par défaut, Kerberos utilisera le nom de domaine du serveur Kerberos comme DOMAINE,’AHMAD.IO’.
Le serveur Kerberos est ‘krb5.ahmad.io’.
Et le serveur d’administration identique au serveur Kerberos’krb5.ahmad.io « .
Et l’installation pour le client Kerberos est terminée.
– Configurez le client Kerberos
Depuis la machine cliente, connectez-vous au serveur KDC Kerberos à l’aide de la commande ‘kadmin’.
kadmin
Et il vous sera demandé le mot de passe du principe ‘root /admin’. Tapez le mot de passe et vous serez connecté au système d’administration KDC Kerberos.
Ajoutez maintenant le nom de domaine complet du client’client1.ahmad.io ‘ à la base de données Kerberos et ajoutez le fichier keytab pour le client.
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
Puis fermez l’interface d’administration kadmin Kerberos.
quit
Et la configuration du client Kerberos est terminée.
Étape 5 – Test
Pour ce test, nous allons configurer l’authentification SSH à l’aide du Kerberos. La machine cliente’client1.ahmad.io ‘se connectera au serveur’krb5.ahmad.io ‘ via SSH avec l’authentification Kerberos.
– Configuration ‘krb5.ahmad.io ‘Server
Créez un nouvel utilisateur système appelé ‘ammar’.
useradd -m -s /bin/bash ammar
Connectez-vous à l’administration KDC Kerberos et ajoutez un nouvel utilisateur principal appelé ‘ammar’.
kadmin.local
addprinc ammar
Fermez l’interface d’administration de Kerberos et modifiez la configuration ssh ‘/etc/ssh/sshd_config’.
vim /etc/ssh/sshd_config
Décommentez le ‘GSSAPIAuthentication’ et activez-le en changeant la valeur à « .
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Enregistrez et fermez la configuration, puis redémarrez le service ssh.
systemctl restart sshd
– Configuration ‘client1.ahmad.io ‘Machine
Ajoutez un nouvel utilisateur système ‘ammar’ sur la machine cliente et connectez-vous à celle-ci.
useradd -m -s /bin/bash ammar
su - ammar
Après cela, initialisez le principal utilisateur Kerberos ‘ammar’.
kinit ammar
Tapez le mot de passe de l’utilisateur et vérifiez ensuite le ticket disponible à l’aide de la commande suivante.
klist
Et vous verrez le résultat suivant.
Maintenant, vous pouvez connecter le ‘krb5.ahmad.io ‘ serveur utilisant l’authentification SSH Kerberos.
ssh krb5.ahmad.io
Et vous serez connecté au ‘krb5.ahmad.io ‘ serveur via SSH avec authentification Kerberos.
Vous trouverez ci-dessous le journal SSH une fois connecté au serveur.
Enfin, l’installation et la configuration du serveur et du client Kerberos sur Ubuntu 18.04 ont été achevées avec succès.