FreeIPA est une solution intégrée d'identité et d'authentification open source pour les systèmes basés sur Linux et Unix. Il fournit une authentification centralisée en stockant des données sur l'utilisateur, les groupes, les hôtes et d'autres objets. Il fournit un service intégré de gestion des identités pour Linux, Mac et Windows. FreeIPA est basé sur le serveur d'annuaire 389, Kerberos, SSSD, Dogtag, NTP et DNS. Il fournit une interface Web pour gérer les utilisateurs et les clients Linux de votre domaine à partir d'un emplacement central.
Dans ce tutoriel, nous allons vous montrer comment installer le serveur FreeIPA sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur le serveur.
Nom d'hôte de configuration
Tout d'abord, vous devrez configurer le nom d'hôte complet dans votre système. Vous pouvez le configurer avec la commande suivante :
hostnamectl set-hostname freeipa.mydomain10.com
Ensuite, modifiez le fichier /etc/hosts et ajoutez l'adresse IP et le nom d'hôte de votre serveur :
nano /etc/hosts
Ajoutez les lignes suivantes :
45.58.43.185 freeipa.mydomain10.com
Enregistrez et fermez le fichier lorsque vous avez terminé.
Installer le serveur FreeIPA
Par défaut, le package FreeIPA n'est pas disponible dans le référentiel standard CentOS. Vous devrez donc activer le référentiel idm:DL1 dans votre système.
Vous pouvez l'activer avec la commande suivante :
dnf module enable idm:DL1
Ensuite, synchronisez le référentiel avec la commande suivante :
dnf distro-sync
Ensuite, exécutez la commande suivante pour installer le serveur FreeIPA sur votre système.
dnf install ipa-server ipa-server-dns -y
Une fois l'installation terminée, vous pouvez passer à l'étape suivante.
Configurer le serveur FreeIPA
Ensuite, vous devrez configurer le serveur FreeIPA. Vous pouvez le configurer avec la commande suivante :
ipa-server-install
Il vous sera demandé de configurer le DNS intégré comme indiqué ci-dessous :
The log file for this installation can be found in /var/log/ipaserver-install.log ipa-server-install The log file for this installation can be found in /var/log/ipaserver-install.log ============================================================================== This program will set up the IPA Server. Version 4.8.4 This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the NTP client (chronyd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure the KDC to enable PKINIT To accept the default shown in brackets, press the Enter key. Do you want to configure integrated DNS (BIND)? [no]:
Appuyez sur Entrée pour sélectionner non. Il vous sera demandé de fournir le nom d'hôte de votre serveur :
Enter the fully qualified domain name of the computer on which you're setting up server software. Using the form. Example: master.example.com. Server host name [freeipa.mydomain10.com]:
Appuyez sur Entrée pour sélectionner le nom d'hôte par défaut. Il vous sera demandé de confirmer votre nom de domaine comme indiqué ci-dessous :
The domain name has been determined based on the host name. Please confirm the domain name [mydomain10.com]:
Appuyez sur Entrée pour sélectionner le nom de domaine par défaut. Il vous sera demandé de définir le mot de passe du gestionnaire de répertoire comme indiqué ci-dessous :
The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase. Please provide a realm name [MYDOMAIN10.COM]: Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and has full access to the Directory for system management tasks and will be added to the instance of directory server created for IPA. The password must be at least 8 characters long. Directory Manager password: Password (confirm):
Fournissez votre mot de passe souhaité et appuyez sur Entrée. Il vous sera demandé de définir le mot de passe administrateur IPA comme indiqué ci-dessous :
The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. IPA admin password: Password (confirm):
Fournissez votre mot de passe souhaité et appuyez sur Entrée. Il vous sera demandé de configurer le serveur NTP comme indiqué ci-dessous :
Do you want to configure chrony with NTP server or pool address? [no]:
Appuyez sur Entrée pour sélectionner l'option par défaut. Vous devriez obtenir le résultat suivant :
The IPA Master Server will be configured with: Hostname: freeipa.mydomain10.com IP address(es): 45.58.43.185 Domain name: mydomain10.com Realm name: MYDOMAIN10.COM The CA will be configured with: Subject DN: CN=Certificate Authority,O=MYDOMAIN10.COM Subject base: O=MYDOMAIN10.COM Chaining: self-signed Continue to configure the system with these values? [no]: yes
Tapez oui et appuyez sur Entrée pour configurer le système avec les valeurs ci-dessus. Une fois la configuration terminée, vous devriez obtenir le résultat suivant :
SSSD enabled Configured /etc/openldap/ldap.conf Configured /etc/ssh/ssh_config Configured /etc/ssh/sshd_config Configuring mydomain10.com as NIS domain. Client configuration complete. The ipa-client-install command was successful unable to resolve host name freeipa.mydomain10.com. to IP address, ipa-ca DNS record will be incomplete unable to resolve host name freeipa.mydomain10.com. to IP address, ipa-ca DNS record will be incomplete Please add records in this file to your DNS system: /tmp/ipa.system.records._u0fzahd.db ============================================================================== Setup complete Next steps: 1. You must make sure these network ports are open: TCP Ports: * 80, 443: HTTP/HTTPS * 389, 636: LDAP/LDAPS * 88, 464: kerberos UDP Ports: * 88, 464: kerberos * 123: ntp 2. You can now obtain a kerberos ticket using the command: 'kinit admin' This ticket will allow you to use the IPA tools (e.g., ipa user-add) and the web user interface. Be sure to back up the CA certificates stored in /root/cacert.p12 These files are required to create replicas. The password for these files is the Directory Manager password The ipa-server-install command was successful
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer le pare-feu et SELinux
Si firewalld est installé sur votre système, vous devrez autoriser certains ports utilisés par FreeIPA. Vous pouvez les autoriser avec la commande suivante :
firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent
Ensuite, rechargez le firewalld avec la commande suivante pour appliquer les modifications :
firewall-cmd --reload
Ensuite, vous devrez également désactiver SELinux dans votre système.
Vous pouvez désactiver le SELinux en éditant le fichier /etc/selinux/config :
nano /etc/selinux/config
Recherchez la ligne suivante :
SELINUX=enforcing
Et remplacez-le par la ligne suivante :
SELINUX=permissive
Enregistrez et fermez le fichier. Redémarrez ensuite votre système pour appliquer les modifications :
Accéder à l'interface utilisateur Web FreeIPA
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web FreeIPA en utilisant l'URL https://freeipa.mydomain10.com. Vous serez redirigé vers la page de connexion FreeIPA comme indiqué ci-dessous :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Journal dans bouton. Vous devriez voir le tableau de bord FreeIPA sur la page suivante :
Travailler avec FreeIPA CLI
FreeIPA fournit également un outil de ligne de commande pour ajouter un nouvel utilisateur, un groupe, un principal de service et accorder un accès en écriture à certains attributs d'un groupe à un autre.
Avant d'utiliser l'outil CLI, vous devrez obtenir un ticket Kerberos avec la commande suivante :
kinit admin
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Password for [email protected]:
Fournissez votre mot de passe administrateur et appuyez sur Entrée pour obtenir un ticket Kerberos.
Ensuite, exécutez la commande suivante pour vérifier l'expiration du ticket :
klist
Vous devriez obtenir le résultat suivant :
Ticket cache: KCM:0 Default principal: [email protected] Valid starting Expires Service principal 2020-09-28T03:36:54 2020-09-29T03:36:50 krbtgt/[email protected]
Ensuite, ajoutez un nouveau compte utilisateur avec la commande suivante :
ipa user-add user1 --first=hit --last=jethva [email protected] --password
Vous devriez obtenir le résultat suivant :
Password: Enter Password again to verify: ------------------ Added user "user1" ------------------ User login: user1 First name: hit Last name: jethva Full name: hit jethva Display name: hit jethva Initials: hj Home directory: /home/user1 GECOS: hit jethva Login shell: /bin/sh Principal name: [email protected] Principal alias: [email protected] User password expiration: 20200928073905Z Email address: [email protected] UID: 384600001 GID: 384600001 Password: True Member of groups: ipausers Kerberos keys available: True
Vous pouvez également répertorier tous les comptes d'utilisateurs de votre système avec la commande suivante :
ipa user-find
Vous devriez voir le résultat suivant :
--------------- 2 users matched --------------- User login: admin Last name: Administrator Home directory: /home/admin Login shell: /bin/bash Principal alias: [email protected] UID: 384600000 GID: 384600000 Account disabled: False User login: user1 First name: hit Last name: jethva Home directory: /home/user1 Login shell: /bin/sh Principal name: [email protected] Principal alias: [email protected] Email address: [email protected] UID: 384600001 GID: 384600001 Account disabled: False ---------------------------- Number of entries returned 2
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès le serveur FreeIPA sur CentOS 8. Vous pouvez maintenant installer le client FreeIPA et l'ajouter au serveur FreeIPA pour l'authentification centralisée. N'hésitez pas à me demander si vous avez des questions.