GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer le serveur KDC Kerberos 5 sur Linux pour l'authentification

Kerberos est un protocole d'authentification réseau.

Kerberos fournit une authentification cryptographique forte contre les appareils, ce qui permet au client et aux serveurs de communiquer de manière plus sécurisée. Il est conçu pour résoudre les problèmes de sécurité du réseau.

Lorsque les pare-feu agissent comme une solution pour faire face à l'intrusion des réseaux externes, Kerberos est généralement utilisé pour traiter l'intrusion et d'autres problèmes de sécurité au sein du réseau.

La version actuelle de Kerberos est la version 5 qui s'appelle KRB5 .

Pour implémenter Kerberos, nous devons faire fonctionner le service d'authentification centralisé sur le serveur.

Ce service s'appelle KEY DISTRIBUTION CENTER (KDC).

Un serveur enregistré auprès du KDC est approuvé par tous les autres ordinateurs du domaine Kerberos.

Exemple de fichier krb5.conf

Voici un exemple de fichier krb5.conf qui contient toutes les informations de mappage REALM et domaine à REALM,

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

Installer le serveur KDC Kerberos

Pour des raisons de sécurité, il est recommandé d'exécuter le serveur Kerberos (KDC) sur un serveur séparé.

Téléchargez et installez le package de serveur krb5.

# rpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm
Preparing...       ########################################### [100%]
   1:krb5-server   ########################################### [100%]

Vérifiez que les rpm suivants sont installés avant de configurer KDC :

# rpm -qa | grep -i krb5
pam_krb5-2.3.11-9.el6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

Modifier le fichier /etc/krb5.conf

Modifiez /etc/krb5.conf pour refléter comme ci-dessous avec les mappages REALM et DOMAIN_REALM appropriés.

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = elserver1.example.com
  admin_server = elserver1.example.com
 }

[domain_realm]
 .myrealm.com = MYREALM.COM
 myrealm.com = MYREALM.COM

Modifier le fichier kdc.conf

De plus, le fichier kdc.conf doit être modifié comme indiqué ci-dessous.

# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

Créer une base de données KDC

Ensuite, créez la base de données KDC à l'aide de la commande kdb5_util comme indiqué ci-dessous. À ce stade, entrez le mot de passe approprié pour la clé principale de la base de données KDC.

# /usr/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MYREALM.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

Attribuer des privilèges d'administrateur

Les utilisateurs peuvent obtenir des privilèges d'administrateur sur la base de données à l'aide du fichier /var/kerberos/krb5kdc/kadm5.acl.

# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]     *

Dans l'exemple ci-dessus, tout principal dans MYREALM avec une instance d'administrateur dispose de tous les privilèges d'administrateur.

Créer un principal

Créez le principal à l'aide de la commande suivante. Dans cet exemple, j'ai créé le principal avec le nom d'utilisateur "eluser".

# kadmin.local -q "addprinc eluser/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for eluser/[email protected]; defaulting to no policy
Enter password for principal "eluser/[email protected]":
Re-enter password for principal "eluser/[email protected]":
Principal "eluser/[email protected]" created.

Démarrer le service Kerberos

Démarrez les démons KDC et kadmin comme indiqué ci-dessous.

# service krb5kdc start
Starting Kerberos 5 KDC:               [  OK  ]

# service kadmin start
Starting Kerberos 5 Admin Server:      [  OK  ]

Configurer le client Kerberos

Configurez le client Kerberos pour s'authentifier auprès de la base de données KDC :

Voyons maintenant comment configurer le client krb5 pour s'authentifier auprès de la base de données Kerberos KDC que nous avons créée ci-dessus.

Étape 1 :Installez les packages krb5-libs et krb5-workstation sur la machine cliente.

Étape 2 :copiez le fichier /etc/krb5.conf du serveur KDC vers la machine cliente.

Étape 3 :Nous devons maintenant créer le principal pour le client dans la base de données KDC/Kerberos.

Vous pouvez utiliser les commandes ci-dessous pour créer le principal pour la machine cliente sur le serveur maître KDC. Dans l'exemple ci-dessous, je crée un principal d'hôte pour le client elserver3.example.com sur le serveur KDC maître elserver1.example.com

# kadmin.local -q "addprinc host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for host/[email protected]; defaulting to no policy
Enter password for principal "host/[email protected]":
Re-enter password for principal "host/[email protected]":
Principal "host/[email protected]" created.

Étape 4 :extrayez le fichier krb5.keytab du client à partir du serveur maître KDC à l'aide de la commande ci-dessous :

# kadmin.local -q "ktadd -k /etc/krb5.keytab host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.

Ceci termine la configuration. Vous avez terminé à ce stade.

Désormais, chaque fois que vous établissez une connexion SSH, RSH, l'hôte vérifie son identité par rapport à la base de données KDC à l'aide du fichier keytab et établit une connexion sécurisée via Kerberos.

Ktadd est utilisé pour générer un nouveau keytab ou ajouter un principal à un keytab existant à partir de la commande kadmin.

Ktremove est utilisé pour supprimer le principal d'un keytab existant. La commande pour supprimer le principal que nous avons créé ci-dessus est,

kadmin.local -q "ktremove -k /etc/krb5.keytab –q all"

Supprimer une base de données KDC

Pour une raison quelconque, si vous devez supprimer une base de données KDC, utilisez la commande suivante :

# kdb5_util -r MYREALM.COM destroy
kdb5_util: Deleting KDC database stored in /usr/local/var/krb5kdc/principal, you sure
(type yes to confirm)? <== yes
OK, deleting database '/usr/local/var/krb5kdc/principal'...

L'option -f dans la commande ci-dessus force la suppression de la base de données KDC.

Sauvegarder et restaurer la base de données KDC

Pour sauvegarder une base de données KDC dans un fichier, utilisez krb5_util_dump.

# kdb5_util dump kdcfile

# ls -l kdcfile
-rw-------. 1 root root 5382 Apr 10 07:25 kdcfile

Pour restaurer la base de données KDC à partir du fichier de vidage créé à l'étape ci-dessus, procédez comme suit :

# kdb5_util load kdcfile

Linux
  1. Comment installer SQL Server sur Linux

  2. Comment installer le serveur Web Nginx sur Linux

  3. Comment installer Borgmatic pour des sauvegardes de serveur Linux faciles

  4. Comment installer Virtualization Linux Server

  5. Comment installer Microsoft SQL Server pour Linux (Fedora) ?

Serveur de surveillance Graylog sur Ubuntu Linux pour la surveillance du serveur/des services

Comment installer le serveur Web Nginx sur Ubuntu Linux :un tutoriel pour les débutants

Comment installer Apache sur Arch Linux

Comment installer Webmin sur Ubuntu Linux

Comment installer et configurer le pare-feu CSF pour Linux

Comment installer Jenkins sur Rocky Linux 8