introduction
FreeIPA est une solution de sécurité open source pour Linux qui fournit une gestion de compte et une authentification centralisée, similaire à Active Directory de Microsoft. FreeIPA est construit sur plusieurs projets open source, notamment le serveur de répertoires 389, MIT Kerberos et SSSD.
FreeIPA a des clients pour CentOS 7, Fedora et Ubuntu 14.04 / 16.04. Ces clients facilitent l’ajout de machines dans votre domaine IPA. D’autres systèmes d’exploitation peuvent s’authentifier auprès de FreeIPA à l’aide de SSSD ou de LDAP.
Dans ce tutoriel, nous allons installer le serveur FreeIPA sur un serveur CentOS 7. Vous pouvez ensuite configurer les ordinateurs clients pour permettre aux utilisateurs de FreeIPA de se connecter avec leurs informations d’identification IPA.
Après avoir suivi ce didacticiel, vous pouvez configurer un client FreeIPA sous Ubuntu 16.04. ou configurez un client FreeIPA sous CentOS 7.
Conditions préalables
Pour suivre ce tutoriel, vous aurez besoin de:
-
Un serveur CentOS 7 avec au moins 1 Go de RAM. Par défaut, CentOS 7 utilise uniquement l’utilisateur root. Comme nous utiliserons FreeIPA pour gérer les utilisateurs, il n’est pas nécessaire d’ajouter manuellement un autre utilisateur. Vous pouvez simplement suivre ce tutoriel en tant qu’utilisateur root.
-
Un pare-feu activé sur votre serveur, que vous pouvez configurer en suivant https://www.digitalocean.com/community/tutorials/additional-recommended-steps-for-new-centos-7-servers#configuring-a-basic- pare-feu [étape du pare-feu du didacticiel Etapes supplémentaires recommandées pour CentOS 7]. Ceci est fortement recommandé car FreeIPA gère les informations d’identification des utilisateurs sensibles.
-
Un domaine entièrement enregistré à utiliser pour le serveur et les clients. Vous pouvez en acheter un sur https://namecheap.com [Namecheap] ou en obtenir un gratuitement sur Freenom.
-
Les enregistrements DNS suivants configurés pour votre serveur. Vous pouvez suivre cien tutoriel sur les noms d’hôtes pour savoir comment les ajouter.
-
Un enregistrement A avec votre nom de serveur (par exemple
+ ipa. +
) pointant sur l’adresse IPv4 de votre serveur. -
Un enregistrement AAAA avec le nom de votre serveur pointant sur l’adresse IPv6 de votre serveur, si vous souhaitez que votre serveur soit accessible via IPv6.
-
En option, l’éditeur de texte
+ nano +
installé avec+ yum install nano +
. CentOS est livré avec l’éditeur de texte+ vi +
par défaut, mais+ nano +
peut être plus convivial.
Étape 1 - Préparation du serveur IPA
Avant de commencer à installer quoi que ce soit, nous devons faire quelques choses pour nous assurer que le serveur est prêt à exécuter FreeIPA. Plus précisément, nous allons définir le nom d’hôte du serveur, mettre à jour les packages système, vérifier que les enregistrements DNS des prérequis sont propagés et nous assurer que le pare-feu autorisera le trafic vers FreeIPA.
Pour commencer, le nom d’hôte de votre serveur doit correspondre à votre nom de domaine complet (FQDN) pour que FreeIPA fonctionne correctement. Nous utiliserons + ipa. +
Comme nom de domaine complet tout au long de ce didacticiel.
Vous pouvez définir le nom d’hôte lorsque vous créez le serveur ou à partir de la ligne de commande après la création du serveur, à l’aide de la commande + nom d’hôte +
:
hostname ipa.example.org
Maintenant, mettez à jour le référentiel du paquet avec + yum +
.
yum update
Ensuite, ouvrez les ports requis pour FreeIPA dans le pare-feu.
firewall-cmd --permanent --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp}
Rechargez le pare-feu pour que les modifications prennent effet.
firewall-cmd --reload
Enfin, vous devez vérifier que les noms DNS sont résolus correctement. Vous pouvez utiliser la commande + dig +
pour cela. Installez le paquetage + bind-utils +
pour obtenir + dig +
et d’autres utilitaires de test DNS.
yum install bind-utils
Puis utilisez + dig +
pour vérifier l’enregistrement A.
dig +short ipa. A
Cela devrait retourner ++
.
Si vous avez activé IPv6, vous pouvez tester l’enregistrement AAAA de la même manière.
dig +short ipa. AAAA
Cela devrait retourner ++
.
Vous pouvez également tester la recherche inversée. Ceci teste si vous pouvez résoudre le nom d’hôte à partir de l’adresse IP.
dig +short -x
dig +short -x
Ceux-ci devraient tous deux retourner + ipa .. +
FreeIPA utilise beaucoup le DNS, nous allons donc nous assurer que notre serveur répond à la configuration DNS requise pour que FreeIPA fonctionne correctement.
Étape 2 - Configuration du DNS
Toutes les machines exécutant FreeIPA doivent utiliser des noms de domaine pleinement qualifiés (FQDN) comme noms d’hôte, que nous avons configurés à l’étape précédente. De plus, le nom d’hôte de chaque serveur doit être résolu en adresse IP, et non en + localhost +
.
Sur DigitalOcean, vous pouvez voir les adresses IP publiques de votre serveur sur le panneau control. Vous pouvez également trouver les adresses IP du serveur à l’aide de la commande + ip +
.
ip addr show
Cela devrait produire une sortie similaire à celle-ci:
Output. . .
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet /18 brd 111.111.111.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 /64 scope global
valid_lft forever preferred_lft forever
. . .
- L’adresse IPv4 apparaît directement après * inet * et l’adresse IPv6, si vous l’avez activée, apparaît après * inet6 *. Vous pouvez également voir des adresses IP privées supplémentaires si vous avez activé la mise en réseau privée; vous pouvez ignorer ces adresses. Pour différencier les adresses IP publiques des adresses IP privées, notez que les adresses IPv4 privées se situent dans les plages suivantes:
+192.168. *. * +
, '10. *. *. ` 172.16. *. * +à
172.31. *. * + `. Les adresses IPv6 privées commencent toujours par le préfixe ` fe80 -
+`.
Nous devons maintenant modifier le fichier hôte pour que le nom d’hôte du serveur soit dirigé vers son adresse IP externe. Le fichier hosts, + / etc / hosts +
, associe les noms de domaine aux adresses IP localement sur la machine. Ouvrez ce fichier avec + nano +
ou votre éditeur de texte préféré.
nano /etc/hosts
Recherchez la ligne portant le nom d’hôte de votre serveur après + 127.0.0.1 +
:
/ etc / hosts
. . .
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
. . .
Remplacez + 127.0.01 +
par l’adresse IPv4 de votre serveur.
Modifié / etc / hosts
. . .
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
. . .
- Si IPv6 est activé, vous devrez également éditer le mappage IPv6, en modifiant la ligne `+
-
1 +` avec votre nom d’hôte.
/ etc / hosts
...
# The following lines are desirable for IPv6 capable hosts
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
- Changez `+
-
1 +` en votre adresse IPv6 de serveur.
Modifié / etc / hosts
...
# The following lines are desirable for IPv6 capable hosts
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Enregistrez et quittez le fichier.
Par défaut, à chaque démarrage du système. CentOS utilise la configuration de + / etc / cloud / templates / hosts.redhat.tmpl +
pour générer + / etc / hosts +
. Pour rendre cette modification de configuration permanente, nous devrons également apporter des modifications similaires dans ce fichier.
Ouvrez le fichier.
nano /etc/cloud/templates/hosts.redhat.tmpl
Modifiez la ligne +127.0.0.1 $ {fqdn} $ {nom_hôte} +
pour utiliser l’adresse IPv4 de votre serveur.
Modifié /etc/cloud/templates/hosts.redhat.tmpl
...
# The following lines are desirable for IPv4 capable hosts
${fqdn} ${hostname}
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
...
- De même, modifiez la ligne `+
-
1 $ {fqdn} $ {hostname} +` pour utiliser votre adresse IPv6, si vous en utilisez une.
Modifié /etc/cloud/templates/hosts.redhat.tmpl
...
# The following lines are desirable for IPv6 capable hosts
${fqdn} ${hostname}
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Quittez et enregistrez le fichier.
Nous allons ensuite configurer les générateurs de nombres aléatoires dans CentOS. Cela permettra à FreeIPA d’exécuter les fonctions cryptographiques nécessaires à l’authentification.
Étape 3 - Configuration du générateur de nombres aléatoires
Configurer FreeIPA nécessite beaucoup de données aléatoires pour les opérations cryptographiques qu’il exécute. Par défaut, une machine virtuelle manquera très rapidement de données aléatoires ou d’entropie. Pour résoudre ce problème, nous allons utiliser + rngd +
, un logiciel de génération de nombres aléatoires. + rngd +
fonctionne en prenant des données des périphériques matériels reliés au serveur et en les introduisant dans le générateur de nombres aléatoires du noyau.
Tout d’abord, installez + rngd +
.
yum install rng-tools
Puis activez-le.
systemctl start rngd
Assurez-vous que le service est automatiquement démarré au démarrage.
systemctl enable rngd
Enfin, vérifiez que + rngd +
est en cours d’exécution.
systemctl status rngd
La sortie devrait inclure + active (en cours d’exécution) +
en vert.
Avec toutes les dépendances configurées et fonctionnelles, nous pouvons passer à l’installation du logiciel serveur FreeIPA lui-même.
Étape 4 - Installer le serveur FreeIPA
Nous pouvons maintenant installer + ipa-server +
, le paquet du serveur FreeIPA lui-même.
yum install ipa-server
Ensuite, exécutez la commande d’installation FreeIPA. Cela lancera un script qui vous demandera des options de configuration et installera FreeIPA.
ipa-server-install
En plus de l’authentification, FreeIPA a la capacité de gérer les enregistrements DNS pour les hôtes. Cela peut faciliter l’approvisionnement et la gestion des hôtes. Dans ce tutoriel, nous n’utiliserons pas le DNS intégré de FreeIPA. Ce n’est pas nécessaire pour une configuration de base.
Installation script promptDo you want to configure integrated DNS (BIND)? [no]:
Ensuite, vous devrez entrer le nom d’hôte du serveur, le nom de domaine et le nom de domaine Kerberos. Kerberos est un protocole d’authentification que FreeIPA utilise en arrière-plan pour authentifier les machines hôtes. Il est vivement recommandé d’utiliser votre nom de domaine en tant que domaine Kerberos. L’utilisation d’un schéma de dénomination différent entraînera des problèmes d’intégration de FreeIPA dans Active Directory et pourrait entraîner d’autres problèmes.
Installation script promptServer host name [ipa.example.org]:
Please confirm the domain name [example.org]:
Please provide a realm name [EXAMPLE.ORG]:
Créez ensuite un mot de passe pour le gestionnaire de répertoires LDAP. Ceci est nécessaire pour la fonctionnalité LDAP de FreeIPA. Ensuite, le mot de passe administrateur IPA, qui sera utilisé lors de la connexion à FreeIPA en tant qu’utilisateur admin. L’utilisation de mots de passe sécurisés générés aléatoirement ici est vivement recommandée, car la sécurité de l’ensemble de votre système en dépend.
Confirmez la configuration. Après cela, l’installateur s’exécutera.
Installation script promptContinue to configure the system with these values? [no]:
Le processus d’installation peut prendre plusieurs minutes en fonction de la vitesse de votre serveur.
Maintenant que l’installation du serveur est terminée, nous devrons la tester.
Étape 5 - Vérification des fonctions de FreeIPA Server
Commencez par vérifier que le domaine Kerberos est correctement installé en tentant d’initialiser un jeton Kerberos pour l’utilisateur admin.
kinit admin
Si cela fonctionne correctement, cela devrait vous demander le mot de passe administrateur IPA entré lors du processus d’installation. Tapez-le, puis appuyez sur + ENTER
.
Ensuite, vérifiez que le serveur IPA fonctionne correctement.
ipa user-find admin
Cela devrait imprimer ce qui suit:
Output--------------
1 user matched
--------------
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: [email protected]
UID: 494800000
GID: 494800000
Account disabled: False
----------------------------
Number of entries returned 1
----------------------------
Nous devrions également pouvoir accéder à l’interface Web à l’adresse + https: // ipa. +
.
Dans l’interface utilisateur Web, connectez-vous en tant qu’utilisateur admin. * Nom d’utilisateur * sera * admin * et * Mot de passe * sera le mot de passe administrateur IPA que vous avez défini précédemment. Le haut de la page indiquera * Authentification… * et vous serez ensuite amené à la page principale de l’IPA, qui ressemble à ceci:
image: https: //assets.digitalocean.com/articles/freeipa/sYI5paO.jpg [Page principale de l’interface utilisateur de FreeIPA]
Enfin, explorons certaines des fonctionnalités de FreeIPA en ajoutant un nouvel utilisateur.
Étape 6 - Configuration des utilisateurs IPA
FreeIPA dispose d’un ensemble très complet de fonctionnalités de gestion des utilisateurs et de stratégies. Semblables aux utilisateurs Unix standard, les utilisateurs FreeIPA peuvent appartenir à des groupes. L’accès aux groupes (ou aux utilisateurs individuels) peut être autorisé ou refusé aux hôtes (machines client) ou aux groupes d’hôtes (groupes d’hôtes) en fonction de stratégies. FreeIPA peut également gérer les accès sudo; Les groupes ou les utilisateurs peuvent se voir attribuer un accès sudo sur des hôtes ou des groupes d’hôtes.
Ce tutoriel va juste expliquer comment ajouter de nouveaux utilisateurs pour vous aider à démarrer.
Pour ajouter un utilisateur, cliquez sur l’onglet * Identity *, puis sur * Utilisateurs *. Cela affichera un tableau des utilisateurs. Cliquez sur le bouton * + Ajouter * au-dessus du tableau pour ajouter un nouvel utilisateur. Remplissez les champs obligatoires (comme le prénom et le nom) dans le formulaire qui s’ouvre, puis cliquez sur * Ajouter * pour ajouter l’utilisateur tel quel ou * Ajouter et modifier * pour configurer les détails avancés.
Vous pouvez également accéder aux détails avancés en cliquant sur l’utilisateur dans la table d’origine. C’est ce que voit un administrateur qui examine les détails d’un utilisateur:
image: https: //assets.digitalocean.com/articles/freeipa/TcJR35O.jpg [Modification de l’utilisateur de l’interface utilisateur de FreeIPA]
Les utilisateurs réguliers peuvent également se connecter à l’interface graphique IPA. Ils pourront voir leurs propres autorisations et éditer leurs détails personnels.
Les nouveaux utilisateurs seront invités à modifier leur mot de passe lors de leur première connexion à un ordinateur IPA. Cela fonctionne dans l’interface graphique IPA ainsi que sur SSH. Une fonctionnalité utile est la possibilité d’ajouter des clés SSH. Un utilisateur peut télécharger ses clés SSH publiques et les transmettre aux machines IPA, permettant ainsi une connexion sans mot de passe. L’utilisateur peut ensuite supprimer la clé SSH à tout moment sans avoir à s’inquiéter de sa présence sur des serveurs individuels.
Conclusion
Maintenant que vous avez un serveur FreeIPA en état de fonctionnement, vous devez http://www.freeipa.org/page/Client&configurez les clients] pour vous authentifier auprès de celui-ci. Vous pouvez suivre this Ubuntu 16.04 Tutoriel client FreeIPA ou https: // www.digitalocean.com/community/tutorials/how-to-configure-a-freeipa-client-on-centos-7[cet tutoriel destiné au client CentOS 7 FreeIPA]. De plus, FreeIPA est un serveur LDAP. Tout service prenant en charge l’authentification LDAP peut être configuré pour s’authentifier auprès de votre serveur FreeIPA.
Vous pouvez configurer les utilisateurs, les groupes et les stratégies d’accès via l’interface graphique de FreeIPA ou via son interface de ligne de commande. Les règles Sudo peuvent fournir un moyen relativement simple de gérer l’accès root. Pour les déploiements plus importants, il est recommandé de configurer plusieurs serveurs IPA avec réplication. Enfin, si vous souhaitez vous connecter à un environnement Windows, vous pouvez configurer une approbation sur un serveur Active Directory.
FreeIPA est un outil d’authentification extrêmement polyvalent, et ce que vous devrez faire ensuite dépend en grande partie de la façon dont vous avez l’intention de l’utiliser. Pour plus d’informations, le site Web FreeIPA contient une liste de ressources documentaires.