FreeIPA est un système centralisé d'authentification, d'autorisation et d'information sur les comptes. FreeIPA signifie Free Identity, Policy, Audit et il s'agit d'une solution open source de gestion des identités basée sur un annuaire LDAP et Kerberos avec des composants facultatifs tels qu'un serveur DNS, une autorité de certification, etc. Il peut gérer un domaine avec des utilisateurs, des ordinateurs, des politiques et des relations d'approbation. Il est similaire à Microsoft Active Directory.
FreeIPA peut également établir une approbation de forêt à forêt avec des forêts Active Directory existantes et même vivre dans une zone DNS sous une zone gérée par Active Directory, tant qu'elles ne se chevauchent pas. Il se compose d'une interface Web et d'outils d'administration en ligne de commande.
Vérifiez également :
- Comment installer le serveur Puppet 7 sur Rocky Linux/Centos 8
- Comment gérer les utilisateurs et les groupes dans FreeIPA Server
- Comment installer le client FreeIPA sur Fedora 35
- Comment configurer la réplication FreeIPA sur Rocky Linux/Alma Linux/Centos 8
- Comment installer et configurer FreeIPA sur Rocky Linux/Centos
- Comment installer et configurer le client FreeIPA sur Ubuntu 20.04
Prérequis
Pour bien suivre, assurez-vous d'avoir :
- Un serveur basé sur RHEL 8 comme Rocky Linux
- Le serveur doit disposer d'au moins 1 Go de RAM, 2 Go pour des performances optimales
- Le serveur doit disposer d'au moins 10 Go d'espace disque
- Accès root ou utilisateur avec accès sudo
- Configurez un nom de domaine complet comme nom d'hôte. Nous utiliserons le sous-domaine
ipa.citizix.com
dans notre cas
Table des matières
- Mettre à jour le système, définir le nom d'hôte et le fuseau horaire
- Installer le serveur FreeIPA
- Exécuter le programme d'installation du serveur FreeIPA
- Configurer le pare-feu Linux
- Accéder à l'interface Web FreeIPA Gui
- Utilisation de l'interface CLI FreeIPA pour effectuer des opérations de base
1. Mettre à jour le système, définir le nom d'hôte et le fuseau horaire
Utilisez cette commande pour vous assurer que nos packages système sont à jour :
sudo dnf -y update
Nous devons configurer le FQDN (nom de domaine entièrement qualifié) que nous voulons utiliser pour pointer vers notre serveur. Nous devons définir le sous-domaine (ipa.citizix.com
) DNS à résoudre sur notre serveur. si vous n'avez pas de serveur DNS, nous devons ajouter manuellement des entrées dans le fichier hôte de notre serveur pour résoudre l'adresse IP du système pour notre nom d'hôte pleinement qualifié.
Définir le nom d'hôte :
sudo hostnamectl set-hostname ipa.citizix.com
Remplacez ipa.citizix.com par celui que vous souhaitez définir pour le nom d'hôte de votre serveur.
Confirmez le nom d'hôte :
$ hostnamectl
Static hostname: ipa.citizix.com
Icon name: computer-vm
Chassis: vm
Machine ID: ee3563997878469ebfcc3f721aec3c66
Boot ID: 029a7962df24475091296d32b222f166
Virtualization: kvm
Operating System: Rocky Linux 8.4 (Green Obsidian)
CPE OS Name: cpe:/o:rocky:rocky:8.4:GA
Kernel: Linux 4.18.0-305.3.1.el8_4.x86_64
Architecture: x86-64
$ hostname
ipa.citizix.com
Le domaine utilisé pour le nom d'hôte doit résoudre l'adresse IP pour atteindre le serveur. Ensuite, faites pointer l'adresse IP de votre serveur vers le nom d'hôte, c'est-à-dire le nom de domaine complet, dans le fichier Host.
echo "10.2.40.149 ipa.citizix.com ipa" | sudo tee -a /etc/hosts
Remplacer 10.2.40.149 avec l'adresse IP de votre serveur et ipa.citizix.com avec votre nom d'hôte FQDN.
Une fois cela fait, confirmez que le système peut envoyer un ping à l'hôte pour résoudre le même problème.
ping -c 2 ipa.citizix.com
Sortie sur ma machine
# ping -c 2 ipa.citizix.com
PING ipa.citizix.com (10.2.40.149) 56(84) bytes of data.
64 bytes from ipa.citizix.com (10.2.40.149): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from ipa.citizix.com (10.2.40.149): icmp_seq=2 ttl=64 time=0.029 ms
--- ipa.citizix.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1039ms
rtt min/avg/max/mdev = 0.029/0.031/0.033/0.002 ms
Enfin, configurons le fuseau horaire en fonction de la région dans laquelle vous vous trouvez. Pour moi, je suis en Africa/Nairobi
fuseau horaire, j'utiliserai cette commande :
sudo timedatectl set-timezone Africa/Nairobi
Confirmez qu'il a été configuré comme prévu :
$ timedatectl
Local time: Tue 2021-11-09 07:58:09 EAT
Universal time: Tue 2021-11-09 04:58:09 UTC
RTC time: Tue 2021-11-09 04:58:08
Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
2. Installation du serveur FreeIPA
Aucun référentiel RPM supplémentaire n'est requis, tous les packages et dépendances sont disponibles dans les référentiels par défaut du système d'exploitation.
Dans les systèmes basés sur EL8, les packages nécessaires à l'installation du serveur FreeIPA sont livrés dans un flux de module appelé flux DL1 . Vous devrez activer le flux avant d'effectuer l'installation des packages à partir du flux.
Vous pouvez utiliser la commande suivante pour répertorier les modules contenant des packages IdM.
$ sudo yum module list idm Rocky Linux 8 - AppStream Name Stream Profiles Summary idm DL1 adtrust, client, common [d], dn The Red Hat Enterprise Linux Identity Management syst s, server em module idm client [d] common [d] RHEL IdM long term support client module Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Vous pouvez en savoir plus sur le flux à l'aide de la commande :
sudo dnf module info idm:DL1
Activez maintenant idm:DL1 flux :
sudo dnf module enable idm:DL1
Sortie sur mon système
$ sudo dnf module enable idm:DL1
Last metadata expiration check: 0:45:05 ago on Tue 09 Nov 2021 07:22:21 AM EAT.
Dependencies resolved.
=====================================================================================================
Package Architecture Version Repository Size
=====================================================================================================
Enabling module streams:
389-ds 1.4
httpd 2.4
idm DL1
pki-core 10.6
pki-deps 10.6
Transaction Summary
=====================================================================================================
Is this ok [y/N]: y
Complete!
Choisissez l'une des options suivantes, en fonction de vos besoins IdM :
- Installation Serveur IdM sans DNS intégré :
sudo dnf module install idm:DL1/server
- Installation du serveur FreeIPA avec un DNS intégré :
sudo dnf module install idm:DL1/dns
- Installation Serveur FreeIPA ayant un accord de confiance avec Active Directory :
sudo dnf module install idm:DL1/adtrust
- Pour plusieurs profils, par exemple les profils DNS et adtrust :
sudo dnf module install idm:DL1/{dns,adtrust}
- Pour le client FreeIPA
sudo dnf module install idm:DL1/client
3. Exécution du programme d'installation du serveur FreeIPA
Avec les packages FreeIPA installés, nous pouvons maintenant exécuter l'utilitaire ipa-server-install. Le script d'installation créera un fichier journal dans /var/log/ipaserver-install.log :
sudo ipa-server-install
Le script demande plusieurs paramètres requis et propose des valeurs par défaut recommandées entre parenthèses.
Pour accepter une valeur par défaut, appuyez sur Entrée. Pour fournir une valeur personnalisée, entrez la valeur requise. Pour une installation non interactive pour IdM sans DNS, utilisez ceci :
sudo ipa-server-install \
--realm IPA.CITIZIX.COM \
-domain ipa.citizix.com \
--ds-password ds_password \
--admin-password admin_password \
--unattended
Les options minimales requises pour une installation non interactive sont :
--realm
pour fournir le nom de domaine Kerberos--ds-password
pour fournir le mot de passe du Directory Manager (DM), le super utilisateur du Directory Server--admin-password
pour fournir le mot de passe pour admin, l'administrateur IdM--unattended
pour laisser le processus d'installation sélectionner les options par défaut pour le nom d'hôte et le nom de domaine
Pour une installation non interactive pour IdM avec DNS intégré, utilisez ceci :
sudo ipa-server-install \
--domain ipa.citizix.com \
--realm IPA.CITIZIX.COM \
--reverse-zone=40.2.10.in-addr.arpa. \
--no-forwarders \
--no-ntp \
--setup-dns \
--ds-password ds_password \
--admin-password admin_password \
--unattended
Voici la sortie d'une session interactive sur mon serveur :
$ sudo 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.9.2
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]: no
Enter the fully qualified domain name of the computer
on which you're setting up server software. Using the form
<hostname>.<domainname>
Example: master.example.com.
Server host name [ipa.citizix.com]: ipa.citizix.com
The domain name has been determined based on the host name.
Please confirm the domain name [citizix.com]: ipa.citizix.com
The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.
Please provide a realm name [IPA.CITIZIX.COM]: IPA.CITIZIX.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):
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):
Do you want to configure chrony with NTP server or pool address? [no]: no
The IPA Master Server will be configured with:
Hostname: ipa.citizix.com
IP address(es): 10.2.40.149
Domain name: ipa.citizix.com
Realm name: IPA.CITIZIX.COM
The CA will be configured with:
Subject DN: CN=Certificate Authority,O=IPA.CITIZIX.COM
Subject base: O=IPA.CITIZIX.COM
Chaining: self-signed
Continue to configure the system with these values? [no]: yes
The following operations may take some minutes to complete.
Please wait until the prompt is returned.
Disabled p11-kit-proxy
Synchronizing time
No SRV records of NTP servers found and no NTP server or pool address was provided.
Using default chrony configuration.
Attempting to sync time with chronyc.
Time synchronization was successful.
Configuring directory server (dirsrv). Estimated time: 30 seconds
[1/41]: creating directory server instance
[2/41]: tune ldbm plugin
[3/41]: adding default schema
...
Une fois l'installation réussie :
...
Client configuration complete.
The ipa-client-install command was successful
Please add records in this file to your DNS system: /tmp/ipa.system.records.87gb3voq.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
4. Configurer le pare-feu Linuxd
Si vous avez un pare-feu installé et un pare-feu activé sur votre système, vous devez ouvrir les ports FreeIPA pour y accéder.
Vous devez vous assurer que ces ports réseau sont ouverts :
Port TCP :
80 443 :HTTP/HTTPS
389 636 :LDAP/LDAPS
88 464 :Kerberos
Ports UDP :
88, 464 :Kerberos
123 :NTP
Pour ouvrir les ports à l'aide de firewalld, utilisez ces commandes :
sudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload
5. Accéder à l'interface Web de l'interface graphique FreeIPA
Une fois l'installation terminée par le script, ouvrez le navigateur de votre système et pointez-le vers le nom d'hôte FQDN que vous avez défini pour le système au début, par exemple https://ipa.citizix.com
ou même si vous saisissez https://your-server-ip
cela le redirigera automatiquement vers le FQDN.
Ignorez l'avertissement SSL en cliquant sur "Avancé ”> “Allez sur ipa.citizix.com (non sécurisé) ” si vous l'obtenez.
Une fois la connexion réussie, l'interface du tableau de bord d'identité s'affiche
6. Utilisation de l'interface CLI FreeIPA pour effectuer des opérations de base
L'ipa La commande peut être utilisée pour effectuer toutes les opérations du serveur FreeIPA.
Mais d'abord, obtenez le ticket Kerberos de l'utilisateur administrateur :
$ sudo kinit admin
Password for [email protected]:
Vérifiez les informations d'expiration du ticket à l'aide de klist.
$ sudo klist
Ticket cache: KCM:0
Default principal: [email protected]
Valid starting Expires Service principal
11/09/2021 09:03:25 11/10/2021 09:03:19 krbtgt/[email protected]
- Définir le shell par défaut de l'utilisateur sur
/bin/bash
.
$ sudo ipa config-mod --defaultshell=/bin/bash
Maximum username length: 32
Maximum hostname length: 64
Home directory base: /home
Default shell: /bin/bash
Default users group: ipausers
Default e-mail domain: ipa.citizix.com
Search time limit: 2
Search size limit: 100
User search fields: uid,givenname,sn,telephonenumber,ou,title
Group search fields: cn,description
Enable migration mode: FALSE
Certificate Subject base: O=IPA.CITIZIX.COM
Password Expiration Notification (days): 4
Password plugin features: AllowNThash, KDC:Disable Last Success
SELinux user map order: guest_u:s0$xguest_u:s0$user_u:s0$staff_u:s0-s0:c0.c1023$sysadm_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023
Default SELinux user: unconfined_u:s0-s0:c0.c1023
Default PAC types: MS-PAC, nfs:NONE
IPA masters: ipa.citizix.com
IPA master capable of PKINIT: ipa.citizix.com
IPA CA servers: ipa.citizix.com
IPA CA renewal master: ipa.citizix.com
2. Ajouter un utilisateur à FreeIPA
$ sudo ipa user-add etowett --first=Eutychus --last=Towett \
> [email protected] --password
Password:
Enter Password again to verify:
--------------------
Added user "etowett"
--------------------
User login: etowett
First name: Eutychus
Last name: Towett
Full name: Eutychus Towett
Display name: Eutychus Towett
Initials: ET
Home directory: /home/etowett
GECOS: Eutychus Towett
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
User password expiration: 20211109060518Z
Email address: [email protected]
UID: 1063800001
GID: 1063800001
Password: True
Member of groups: ipausers
Kerberos keys available: True
3. Répertoriez les comptes d'utilisateurs dans FreeIPA
$ sudo ipa user-find
---------------
2 users matched
---------------
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: [email protected], [email protected]
UID: 1063800000
GID: 1063800000
Account disabled: False
User login: etowett
First name: Eutychus
Last name: Towett
Home directory: /home/etowett
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
Email address: [email protected]
UID: 1063800001
GID: 1063800001
Account disabled: False
----------------------------
Number of entries returned 2
----------------------------
4. Connectez-vous en tant que créateur etowett
utilisateur. Lors de votre première connexion, il vous sera demandé de modifier votre mot de passe :
$ ssh [email protected]
Password:
Password expired. Change your password now.
Current Password:
New password:
Retype new password:
$ id
uid=1063800001(etowett) gid=1063800001(etowett) groups=1063800001(etowett) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Conclusion
Dans ce guide, nous avons réussi à configurer FreeIPA dans notre système Rocky Linux. Vous pouvez jouer avec l'interface pour comprendre le placement de diverses fonctions de gestion FreeIPA.