Einrichten der zentralen Linux-Authentifizierung mit FreeIPA unter CentOS 7

Einführung

FreeIPA ist eine Open-Source-Sicherheitslösung für Linux, die ähnlich wie Active Directory von Microsoft Kontoverwaltung und zentralisierte Authentifizierung bietet. FreeIPA basiert auf mehreren Open Source-Projekten, darunter 389 Directory Server, MIT Kerberos und SSSD.

FreeIPA hat Clients für CentOS 7, Fedora und Ubuntu 14.04 / 16.04. Diese Clients vereinfachen das Hinzufügen von Computern zu Ihrer IPA-Domäne. Andere Betriebssysteme können sich mit SSSD oder LDAP gegen FreeIPA authentifizieren.

In diesem Tutorial installieren wir den FreeIPA-Server auf einem CentOS 7-Server. Anschließend können Sie Client-Computer konfigurieren, sodass sich FreeIPA-Benutzer mit ihren IPA-Anmeldeinformationen anmelden können.

Nachdem Sie dieses Tutorial befolgt haben, können Sie einen FreeIPA-Client unter Ubuntu 16.04 https://www.digitalocean.com/community/tutorials/how-to-configure-a-freeipa-client-on-ubuntu-16-04/ konfigurieren ] oder konfigurieren Sie einen FreeIPA-Client unter CentOS 7.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein CentOS 7-Server mit mindestens 1 GB RAM. Standardmäßig verwendet CentOS 7 nur den Root-Benutzer. Da wir FreeIPA zum Verwalten von Benutzern verwenden, muss kein weiterer Benutzer manuell hinzugefügt werden. Sie können diesem Tutorial einfach als Root-Benutzer folgen.

  • Auf Ihrem Server ist eine Firewall aktiviert, die Sie unter https://www.digitalocean.com/community/tutorials/additional-recommended-steps-for-new-centos-7-servers#configuring-a-basic- einrichten können. Firewall [der Firewall-Schritt im Tutorial Weitere empfohlene Schritte für CentOS 7]. Dies wird dringend empfohlen, da FreeIPA vertrauliche Benutzeranmeldeinformationen verarbeitet.

  • Eine vollständig registrierte Domain, die für den Server und die Clients verwendet werden soll. Sie können eine unter https://namecheap.com [Namecheap] erwerben oder kostenlos unter Freenom herunterladen.

  • Die folgenden DNS-Einträge wurden für Ihren Server eingerichtet. Weitere Informationen zum Hinzufügen von Hostnamen finden Sie unter this hostname tutorial.

  • Ein A-Datensatz mit Ihrem Servernamen (z. + ipa. +) zeigt auf die IPv4-Adresse Ihres Servers.

  • Ein AAAA-Eintrag mit Ihrem Servernamen, der auf die IPv6-Adresse Ihres Servers verweist, wenn Sie möchten, dass Ihr Server über IPv6 erreichbar ist.

  • Optional kann der Texteditor "+ nano " mit " yum install nano " installiert werden. CentOS wird standardmäßig mit dem Texteditor ` vi ` ausgeliefert, ` nano +` kann jedoch benutzerfreundlicher sein.

Schritt 1 - Vorbereiten des IPA-Servers

Bevor wir mit der Installation beginnen, müssen wir einige Schritte ausführen, um sicherzustellen, dass der Server für die Ausführung von FreeIPA bereit ist. Insbesondere werden wir den Server-Hostnamen festlegen, die Systempakete aktualisieren, prüfen, ob die DNS-Einträge aus den Voraussetzungen übernommen wurden, und sicherstellen, dass die Firewall den Datenverkehr zu FreeIPA zulässt.

Zunächst muss der Hostname Ihres Servers mit Ihrem vollqualifizierten Domänennamen (FQDN) übereinstimmen, damit FreeIPA ordnungsgemäß funktioniert. In diesem Lernprogramm wird "+ ipa. +" Als vollqualifizierter Domänenname verwendet.

Sie können den Hostnamen entweder beim Erstellen des Servers oder über die Befehlszeile nach dem Erstellen des Servers mit dem Befehl + hostname + festlegen:

hostname ipa.example.org

Aktualisieren Sie nun das Paket-Repository mit + yum +.

yum update

Öffnen Sie anschließend die erforderlichen Ports für FreeIPA in der Firewall.

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}

Laden Sie die Firewall neu, damit die Änderungen wirksam werden.

firewall-cmd --reload

Schließlich müssen Sie überprüfen, ob die DNS-Namen ordnungsgemäß aufgelöst werden. Sie können dazu den Befehl + dig + verwenden. Installieren Sie das Paket + bind-utils +, um + dig + und andere DNS-Testprogramme zu erhalten.

yum install bind-utils

Verwenden Sie dann + dig +, um den A-Datensatz zu überprüfen.

dig +short ipa. A

Dies sollte "++" zurückgeben.

Wenn Sie IPv6 aktiviert haben, können Sie die AAAA-Aufzeichnung auf die gleiche Weise testen.

dig +short ipa. AAAA

Dies sollte "++" zurückgeben.

Sie können auch die umgekehrte Suche testen. Hiermit wird getestet, ob Sie den Hostnamen von der IP-Adresse auflösen können.

dig +short -x
dig +short -x

Diese sollten beide + ipa .. + zurückgeben

FreeIPA nutzt DNS in hohem Maße. Im nächsten Schritt werden wir sicherstellen, dass unser Server die spezifischen DNS-Anforderungen erfüllt, die FreeIPA für eine ordnungsgemäße Funktion benötigt.

Schritt 2 - DNS einrichten

Alle Computer, auf denen FreeIPA ausgeführt wird, müssen vollqualifizierte Domänennamen (FQDNs) als Hostnamen verwenden, die wir im vorherigen Schritt eingerichtet haben. Außerdem muss der Hostname jedes Servers in seine IP-Adresse aufgelöst werden, nicht in "+ localhost +".

Auf DigitalOcean können Sie die öffentlichen IP-Adressen Ihres Servers im control panel anzeigen. Sie können die Server-IP-Adressen auch mit dem Befehl + ip + ermitteln.

ip addr show

Dies sollte eine Ausgabe ähnlich der folgenden ergeben:

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
. . .
Die IPv4-Adresse wird direkt nach * inet * und die IPv6-Adresse, sofern aktiviert, nach * inet6 * angezeigt. Möglicherweise werden auch zusätzliche private IP-Adressen angezeigt, wenn Sie das private Netzwerk aktiviert haben. Sie können diese Adressen ignorieren. Beachten Sie zur Unterscheidung zwischen öffentlichen und privaten IP-Adressen, dass private IPv4-Adressen in den folgenden Bereichen liegen: +192.168. *. * +, +10. *. * + Oder + 172.16. *. * + `bis 172.31. *. * + `. Private IPv6-Adressen beginnen immer mit dem Präfix " fe80

+".

Jetzt müssen wir die Hostdatei ändern, um den Hostnamen des Servers auf seine externe IP-Adresse zu verweisen. Die hosts-Datei + / etc / hosts + ordnet Domainnamen IP-Adressen lokal auf dem Computer zu. Öffnen Sie diese Datei mit + nano + oder Ihrem bevorzugten Texteditor.

nano /etc/hosts

Suchen Sie nach der Zeile mit dem Hostnamen Ihres Servers nach + 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
. . .

Ändern Sie "+ 127.0.01 +" in die IPv4-Adresse Ihres Servers.

Geänderte / 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
. . .
Wenn Sie IPv6 aktiviert haben, müssen Sie auch die IPv6-Zuordnung bearbeiten, indem Sie die Zeile `+

1 +` mit Ihrem Hostnamen ändern.

/ etc / hosts

...
# The following lines are desirable for IPv6 capable hosts

::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Ändern Sie "+

1 +" in die IPv6-Adresse Ihres Servers.

Geänderte / etc / hosts

...
# The following lines are desirable for IPv6 capable hosts

::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...

Speichern und schließen Sie die Datei.

Standardmäßig bei jedem Systemstart. CentOS verwendet die Konfiguration in "+ / etc / cloud / templates / hosts.redhat.tmpl ", um " / etc / hosts +" zu generieren. Um diese Konfigurationsänderung dauerhaft zu machen, müssen wir ähnliche Änderungen auch in dieser Datei vornehmen.

Öffne die Datei.

nano /etc/cloud/templates/hosts.redhat.tmpl

Ändern Sie die Zeile +127.0.0.1 $ {fqdn} $ {hostname} +, um die IPv4-Adresse Ihres Servers zu verwenden.

Geändert /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
...
Ändern Sie in ähnlicher Weise die Zeile "+

1 $ {fqdn} $ {hostname} +", um Ihre IPv6-Adresse zu verwenden, falls Sie eine verwenden.

Geändert /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
...

Beenden und speichern Sie die Datei.

Als nächstes werden wir die Zufallszahlengeneratoren in CentOS konfigurieren. Dadurch kann FreeIPA die für die Authentifizierung erforderlichen kryptografischen Funktionen ausführen.

Schritt 3 - Konfigurieren des Zufallszahlengenerators

Zum Einrichten von FreeIPA sind viele zufällige Daten für die ausgeführten kryptografischen Vorgänge erforderlich. Standardmäßig gehen einer virtuellen Maschine sehr schnell die zufälligen Daten oder die Entropie aus. Um dies zu umgehen, verwenden wir + rngd +, einen Software-Zufallszahlengenerator. + rngd + nimmt Daten von den an den Server angeschlossenen Hardwaregeräten und speist sie in den Zufallszahlengenerator des Kernels ein.

Installieren Sie zuerst + rngd +.

yum install rng-tools

Dann aktivieren Sie es.

systemctl start rngd

Stellen Sie sicher, dass der Dienst beim Booten automatisch gestartet wird.

systemctl enable rngd

Stellen Sie abschließend sicher, dass "+ rngd +" ausgeführt wird.

systemctl status rngd

Die Ausgabe sollte "+ active (running) +" in Grün enthalten.

Wenn alle Abhängigkeiten konfiguriert sind und funktionieren, können wir die FreeIPA-Serversoftware selbst installieren.

Schritt 4 - Installieren des FreeIPA-Servers

Wir können mit der Installation von "+ ipa-server +", dem FreeIPA-Serverpaket selbst, fortfahren.

yum install ipa-server

Führen Sie dann den FreeIPA-Installationsbefehl aus. Dadurch wird ein Skript ausgeführt, das Sie zur Eingabe von Konfigurationsoptionen auffordert und FreeIPA installiert.

ipa-server-install

Neben der Authentifizierung kann FreeIPA auch DNS-Einträge für Hosts verwalten. Dies kann die Bereitstellung und Verwaltung von Hosts vereinfachen. In diesem Lernprogramm wird das integrierte DNS von FreeIPA nicht verwendet. Es wird für eine Grundeinstellung nicht benötigt.

Installation script promptDo you want to configure integrated DNS (BIND)? [no]:

Als Nächstes müssen Sie den Hostnamen des Servers, den Domänennamen und den Kerberos-Bereichsnamen eingeben. Kerberos ist ein Authentifizierungsprotokoll, das FreeIPA im Hintergrund zur Authentifizierung von Host-Computern verwendet. Es wird dringend empfohlen, Ihren Domainnamen als Kerberos-Realm zu verwenden. Die Verwendung eines anderen Namensschemas führt zu Problemen bei der Active Directory-Integration von FreeIPA und möglicherweise zu anderen Problemen.

Installation script promptServer host name [ipa.example.org]:
Please confirm the domain name [example.org]:
Please provide a realm name [EXAMPLE.ORG]:

Erstellen Sie als Nächstes ein Kennwort für den LDAP-Verzeichnismanager. Dies wird für die LDAP-Funktionalität von FreeIPA benötigt. Dann das IPA-Administratorkennwort, das verwendet wird, wenn Sie sich als Administrator bei FreeIPA anmelden. Es wird dringend empfohlen, hier sichere, zufällig generierte Kennwörter zu verwenden, da die Sicherheit Ihres gesamten Systems davon abhängt.

Bestätigen Sie die Konfiguration. Danach wird das Installationsprogramm ausgeführt.

Installation script promptContinue to configure the system with these values? [no]:

Der Installationsvorgang kann abhängig von der Geschwindigkeit Ihres Servers einige Minuten dauern.

Nachdem die Serverinstallation abgeschlossen ist, müssen wir sie testen.

Schritt 5 - Überprüfen der FreeIPA Server-Funktionen

Stellen Sie zunächst sicher, dass der Kerberos-Bereich ordnungsgemäß installiert wurde, indem Sie versuchen, ein Kerberos-Token für den Administrator zu initialisieren.

kinit admin

Wenn dies ordnungsgemäß funktioniert, sollten Sie zur Eingabe des IPA-Administratorkennworts aufgefordert werden, das während des Installationsvorgangs eingegeben wurde. Tippen Sie es ein und drücken Sie dann + ENTER.

Stellen Sie als Nächstes sicher, dass der IPA-Server ordnungsgemäß funktioniert.

ipa user-find admin

Dies sollte folgendes ausgeben:

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
----------------------------

Wir sollten auch in der Lage sein, auf die Web-Benutzeroberfläche unter "+ https: // ipa. +" Zuzugreifen.

Melden Sie sich in der Web-Benutzeroberfläche als Administrator an. * Benutzername * ist * admin * und * Passwort * ist das zuvor festgelegte IPA-Administratorkennwort. Am oberen Rand der Seite wird * Authentifizierung… * angezeigt. Anschließend werden Sie zur IPA-Hauptseite weitergeleitet, die wie folgt aussieht:

Lassen Sie uns abschließend einige der Funktionen von FreeIPA untersuchen, indem Sie einen neuen Benutzer hinzufügen.

Schritt 6 - IPA-Benutzer konfigurieren

FreeIPA verfügt über umfangreiche Funktionen zur Benutzerverwaltung und für Richtlinien. Ähnlich wie Standard-Unix-Benutzer können FreeIPA-Benutzer Gruppen angehören. Entweder Gruppen oder einzelnen Benutzern kann der Zugriff auf Hosts (Clientcomputer) oder Gruppen von Hosts (Hostgruppen) basierend auf Richtlinien gewährt oder verweigert werden. FreeIPA kann auch den Sudo-Zugriff verwalten. Gruppen oder Benutzern kann sudo-Zugriff auf Hosts oder Hostgruppen gewährt werden.

In diesem Tutorial wird nur erläutert, wie Sie neue Benutzer hinzufügen, um den Einstieg zu erleichtern.

Um einen Benutzer hinzuzufügen, klicken Sie auf die Registerkarte * Identität * und dann auf * Benutzer *. Daraufhin wird eine Benutzertabelle angezeigt. Klicken Sie auf die Schaltfläche * + Hinzufügen * über der Tabelle, um einen neuen Benutzer hinzuzufügen. Füllen Sie die erforderlichen Felder (wie Vor- und Nachname) in dem sich öffnenden Formular aus und klicken Sie dann auf * Hinzufügen *, um den Benutzer so wie er ist hinzuzufügen, oder auf * Hinzufügen und bearbeiten *, um erweiterte Details zu konfigurieren.

Auf die erweiterten Details kann auch zugegriffen werden, indem der Benutzer in der Originaltabelle angeklickt wird. Dies sieht ein Administrator, wenn er sich die Details eines Benutzers ansieht:

Bild: https://assets.digitalocean.com/articles/freeipa/TcJR35O.jpg [Benutzeroberfläche von FreeIPA bearbeiten]

Normale Benutzer können sich auch bei der IPA-Benutzeroberfläche anmelden. Sie können ihre eigenen Berechtigungen anzeigen und persönliche Daten bearbeiten.

Neue Benutzer werden aufgefordert, ihr Kennwort zu ändern, wenn sie sich zum ersten Mal bei einem IPA-Computer anmelden. Dies funktioniert sowohl in der IPA-GUI als auch über SSH. Eine hilfreiche Funktion ist das Hinzufügen von SSH-Schlüsseln. Ein Benutzer kann seine öffentlichen SSH-Schlüssel hochladen und sie auf die IPA-Computer übertragen, sodass eine Anmeldung ohne Kennwort möglich ist. Der Benutzer kann den SSH-Schlüssel dann jederzeit entfernen, ohne befürchten zu müssen, dass er auf einzelnen Servern noch vorhanden ist.

Fazit

Nachdem Sie über einen funktionierenden FreeIPA-Server verfügen, müssen Sie sich unter configure clients authentifizieren. Sie können this Ubuntu 16.04 FreeIPA client tutorial oder https: // www.digitalocean.com/community/tutorials/konfigurieren-des- CentOS 7 FreeIPA-Client]. Außerdem ist FreeIPA ein LDAP-Server. Jeder Dienst, der die LDAP-Authentifizierung unterstützt, kann so eingerichtet werden, dass er sich bei Ihrem FreeIPA-Server authentifiziert.

Sie können Benutzer, Gruppen und Zugriffsrichtlinien über die FreeIPA-GUI oder über die CLI konfigurieren. Sudo-Regeln bieten eine relativ einfache Möglichkeit, den Root-Zugriff zu verwalten. Für größere Bereitstellungen wird empfohlen, mehrere IPA-Server mit Replikation einzurichten. Wenn Sie eine Verbindung zu einer Windows-Umgebung herstellen möchten, können Sie eine Vertrauensstellung zu einem Active Directory-Server einrichten.

FreeIPA ist ein äußerst vielseitiges Authentifizierungstool. Was Sie als Nächstes tun müssen, hängt weitgehend davon ab, wie Sie es verwenden möchten. Weitere Informationen finden Sie auf der FreeIPA-Website unter list of documentation resources.