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é initialement développé 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 service d'authentification tiers. Cela signifie que tous les clients font confiance au jugement de Kerberos concernant 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 testerons 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 :
- Configurer le fichier FQDN
- Installer le serveur KDC Kerberos
- Configurer le serveur KDC Kerberos
- Installer et configurer le client Kerberos
- Test
Étape 1 - Configurer le nom de domaine complet
Tout d'abord, il faut configurer le FQDN sur le serveur Kerberos puis éditer le fichier '/etc/hosts' du serveur.
Modifiez le FQDN du serveur Kerberos à l'aide de la commande suivante.
hostnamectl set-hostname krb5.ahmad.io
Après cela, modifiez le fichier '/etc/hosts' à l'aide de l'éditeur vim.
vim /etc/hosts
Changez l'adresse IP et le FQDN avec les vôtres et collez-les.
10.10.10.15 krb5.ahmad.io krb5
Enregistrez et fermez.
Testez maintenant en utilisant la commande 'ping' ci-dessous et assurez-vous que le FQDN est résolu avec la bonne adresse IP.
ping -c 3 $(hostname -f)
Étape 2 - Installer le serveur KDC Kerberos
Nous allons maintenant installer le serveur Kerberos sur le serveur 'krb5' avec l'adresse IP '10.10.10.15' et le FQDN 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
Au cours de l'installation, vous serez interrogé sur le domaine Kerberos, le serveur Kerberos du domaine et le serveur d'administration.
Par défaut, Kerberos utilisera le nom de domaine du serveur Kerberos comme REALM, '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, vous verrez que le service Kerberos n'a pas pu s'exécuter. C'est bien parce que nous configurerons à la prochaine étape.
Étape 3 - Configurer le serveur KDC Kerberos
Générez maintenant un nouveau mot de passe principal fort pour le domaine Kerberos à l'aide de la commande suivante.
sudo krb5_newrealm
Tapez votre mot de passe fort et le mot de passe REALM sera généré dans le fichier '/etc/krb5kdc/stash'.
Après cela, nous devons créer l'utilisateur administrateur (admin 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 l'interface de ligne de commande 'kadmin.local' 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 administrateur "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
Fermez ensuite l'utilitaire 'kadmin.local'.
quit
Ensuite, nous devons ajouter le principe d'administration 'root' à la liste de contrôle d'accès en éditant le fichier '/etc/krb5kdc/kadm5.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 - Installer et configurer 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'.
- Configurer le nom de domaine complet
Configurez le FQDN sur la machine cliente à l'aide de la commande suivante.
hostnamectl set-hostname client1.ahmad.io
Après cela, modifiez 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
Enregistrez et fermez.
- Installer le client Kerberos
Installez les packages client Kerberos en exécutant la commande apt suivante.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Au cours de l'installation, vous serez interrogé sur le domaine Kerberos, le serveur Kerberos du domaine et le serveur d'administration.
Par défaut, Kerberos utilisera le nom de domaine du serveur Kerberos comme REALM, 'AHMAD.IO '.
Le serveur Kerberos est 'krb5.ahmad.io '.
Et le serveur d'administration identique au serveur Kerberos 'krb5.ahmad.io '.
Et l'installation du client Kerberos est terminée.
- Configurer 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 FQDN 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
Fermez ensuite l'interface d'administration de kadmin Kerberos.
quit
Et la configuration du client Kerberos est terminée.
Étape 5 - Tester
Pour ce test, nous allons configurer l'authentification SSH à l'aide de Kerberos. La machine cliente 'client1.ahmad.io' se connectera au serveur 'krb5.ahmad.io' via SSH avec l'authentification Kerberos.
- Configurer le serveur 'krb5.ahmad.io'
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 en ''.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Enregistrez et fermez la configuration, puis redémarrez le service ssh.
systemctl restart sshd
- Configurer la machine 'client1.ahmad.io'
Ajoutez le nouvel utilisateur système "ammar" sur la machine cliente et connectez-vous.
useradd -m -s /bin/bash ammar
su - ammar
Après cela, initialisez le principal d'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.
Vous pouvez maintenant vous connecter au serveur 'krb5.ahmad.io' en utilisant l'authentification SSH Kerberos.
ssh krb5.ahmad.io
Et vous serez connecté au serveur 'krb5.ahmad.io' 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 se sont terminées avec succès.