Website-Suche

So installieren und konfigurieren Sie FreeIPA unter Red Hat Linux


Objektiv

Unser Ziel ist es, einen eigenständigen FreeIPA-Server auf Red Hat Enterprise Linux zu installieren und zu konfigurieren.

Betriebssystem- und Softwareversionen

  • Betriebssystem: Red Hat Enterprise Linux 7.5
  • Software: FreeIPA 4.5.4-10

Anforderungen

Privilegierter Zugriff auf den Zielserver, das verfügbare Software-Repository.

Schwierigkeit

MITTEL

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl sudo
  • $ – gegebene Linux-Befehle, die als normaler, nicht privilegierter Benutzer ausgeführt werden sollen

Einleitung

FreeIPA ist hauptsächlich ein Verzeichnisdienst, in dem Sie Informationen über Ihre Benutzer und ihre Rechte in Bezug auf die Anmeldung, das Root-Werden oder einfach das Ausführen eines bestimmten Befehls als root auf Ihren Systemen, die Ihrer FreeIPA-Domain beigetreten sind, speichern können und vieles mehr. Obwohl dies das Hauptmerkmal des Dienstes ist, gibt es optionale Komponenten, die sehr nützlich sein können, wie DNS und PKI – dies macht FreeIPA zu einem wesentlichen infrastrukturellen Bestandteil eines Linux-basierten Systems. Es hat eine schöne webbasierte GUI und eine leistungsstarke Befehlszeilenschnittstelle.

In diesem Tutorial erfahren Sie, wie Sie einen eigenständigen FreeIPA-Server auf einem Red Hat Enterprise Linux 7.5 installieren und konfigurieren. Beachten Sie jedoch, dass in einem Produktionssystem empfohlen wird, mindestens ein weiteres Replikat zu erstellen, um Hochverfügbarkeit zu gewährleisten. Wir hosten den Dienst auf einer virtuellen Maschine mit 2 CPU-Kernen und 2 GB RAM – auf einem großen System möchten Sie vielleicht noch einige Ressourcen hinzufügen. Auf unserem Laborcomputer läuft RHEL 7.5, Basisinstallation. Fangen wir an.

Einen FreeIPA-Server zu installieren und zu konfigurieren ist ziemlich einfach – der Haken ist in der Planung. Sie sollten darüber nachdenken, welche Teile des Software-Stacks Sie verwenden möchten und in welcher Umgebung Sie diese Dienste ausführen möchten. Da FreeIPA mit DNS umgehen kann, kann es nützlich sein, wenn Sie ein System von Grund auf neu erstellen, eine ganze DNS-Domain an FreeIPA zu übergeben, wo alle Client-Rechner die FreeIPA-Server für DNS aufrufen. Diese Domain kann eine Subdomain Ihrer Infrastruktur sein, Sie können sogar eine Subdomain nur für die FreeIPA-Server festlegen – aber überlegen Sie sich das gut, da Sie die Domain später nicht mehr ändern können. Verwenden Sie keine vorhandene Domain, FreeIPA muss davon ausgehen, dass es sich um den Master der angegebenen Domain handelt (das Installationsprogramm prüft, ob die Domain aufgelöst werden kann und ob sie einen anderen SOA-Eintrag als sich selbst hat).

PKI ist eine andere Frage: Wenn Sie bereits eine CA (Certificate Authority) in Ihrem System haben, möchten Sie FreeIPA möglicherweise als untergeordnete CA einrichten. Mit Hilfe von Certmonger hat FreeIPA die Möglichkeit, Client-Zertifikate (wie das SSL-Zertifikat eines Webservers) automatisch zu erneuern, was sich als nützlich erweisen kann – aber wenn das System keinen internetseitigen Dienst hat, benötigen Sie den PKI-Dienst von FreeIPA möglicherweise überhaupt nicht. Es hängt alles vom Anwendungsfall ab.

In diesem Tutorial ist die Planung bereits abgeschlossen. Wir möchten ein neues Testlabor aufbauen, daher werden wir alle Funktionen von FreeIPA installieren und konfigurieren, einschließlich DNS und PKI mit einem selbstsignierten CA-Zertifikat. FreeIPA kann dies für uns generieren, es ist nicht erforderlich, eines mit Tools wie openssl zu erstellen.

Anforderungen

Was zuerst eingerichtet werden sollte, ist eine zuverlässige NTP-Quelle für den Server (FreeIPA fungiert auch als NTP-Server, benötigt aber natürlich eine Quelle) und ein Eintrag in der /etc/hosts-Datei des Servers, der auf sich selbst verweist:

cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.122.147	rhel7.ipa.linuxconfig.org	rhel7

Und der in der Hostdatei angegebene Hostname MUSS der FQDN des Computers sein.

hostname
rhel7.ipa.linuxconfig.org

Dies ist ein wichtiger Schritt, verpassen Sie ihn nicht. Derselbe Hostname, der in der Netzwerkdatei benötigt wird:

grep HOSTNAME /etc/sysconfig/network
HOSTNAME=rhel7.ipa.linuxconfig.org

Installieren von Paketen

Die benötigte Software ist im ISO-Image des Red Hat Enterprise Linux Servers oder im Subskriptionskanal enthalten, es werden keine zusätzlichen Repositories benötigt. In dieser Demo gibt es ein lokales Repository-Set, das den Inhalt des ISO-Images enthält. Der Software-Stack ist gebündelt, so dass ein einziger yum-Befehl ausreicht:

yum install ipa-server ipa-server-dns

Bei einer Basisinstallation stellt yum eine lange Liste von Abhängigkeiten bereit, einschließlich Apache Tomcat, Apache Httpd, 389-ds (der LDAP-Server) und so weiter. Nachdem yum abgeschlossen ist, öffnen Sie die benötigten Ports in der Firewall:

firewall-cmd --add-service=freeipa-ldap
success
firewall-cmd --add-service=freeipa-ldap --permanent
success

Einrichtung

Lassen Sie uns nun unseren neuen FreeIPA-Server einrichten. Dies wird einige Zeit in Anspruch nehmen, aber Sie benötigen es nur für den ersten Teil, wenn der Installer nach Parametern fragt. Die meisten Parameter können als Argumente an den Installer übergeben werden, aber wir geben keine an, so können wir von den vorherigen Einstellungen profitieren.

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.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * 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.

WARNING: conflicting time&date synchronization service 'chronyd' will be disabled
in favor of ntpd

## we'll use the integrated DNS server
Do you want to configure integrated DNS (BIND)? [no]: yes

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.

## pressing 'enter' means we accept the default in the bracelets
## this is the reason we set up the proper FDQN for the host
Server host name [rhel7.ipa.linuxconfig.org]: 						

Warning: skipping DNS resolution of host rhel7.ipa.linuxconfig.org
The domain name has been determined based on the host name.

## now we don't have to type/paste domain name
## and the installer don’t need to try setting the host’s name
Please confirm the domain name [ipa.linuxconfig.org]: 					
											
The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.

## the Kerberos realm is mapped from the domain name
Please provide a realm name [IPA.LINUXCONFIG.ORG]: 					
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 user is for the low-level operations, like creating replicas
Directory Manager password: 
## use a very strong password in a production environment!						
Password (confirm): 									

The IPA server requires an administrative user, named 'admin'.
This user is a regular system account used for IPA server administration.

## admin is the "root" of the FreeIPA system – but not the LDAP directory
IPA admin password: 									
Password (confirm): 

Checking DNS domain ipa.linuxconfig.org., please wait ...
## we could setup forwarders, but this can be set later as well
Do you want to configure DNS forwarders? [yes]: no					
No DNS forwarders configured
Do you want to search for missing reverse zones? [yes]: no

The IPA Master Server will be configured with:
Hostname:       rhel7.ipa.linuxconfig.org
IP address(es): 192.168.122.147
Domain name:    ipa.linuxconfig.org
Realm name:     IPA.LINUXCONFIG.ORG

BIND DNS server will be configured to serve IPA domain with:
Forwarders:       No forwarders
Forward policy:   only
Reverse zone(s):  No reverse zone

Continue to configure the system with these values? [no]: yes

## at this point the installer will work on its own,
## and complete the process in a few minutes. The perfect time for coffee.
The following operations may take some minutes to complete.				
Please wait until the prompt is returned.						

Configuring NTP daemon (ntpd)
  [1/4]: stopping ntpd ...

Die Ausgabe des Installationsprogramms ist ziemlich lang, Sie können sehen, dass alle Komponenten konfiguriert, neu gestartet und überprüft wurden. Am Ende der Ausgabe sind einige Schritte erforderlich, um die volle Funktionalität zu erhalten, aber nicht für den Installationsprozess selbst.

... The ipa-client-install command was successful

==============================================================================
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
		  * 53: bind
		UDP Ports:
		  * 88, 464: kerberos
		  * 53: bind
		  * 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

Wie das Installationsprogramm darauf hinweist, stellen Sie sicher, dass Sie das CA-Zertifikat sichern und zusätzliche erforderliche Ports in der Firewall öffnen.

Lassen Sie uns nun die Erstellung des Home-Verzeichnisses bei der Anmeldung aktivieren:

authconfig --enablemkhomedir –-update

Verifizierung

Wir können damit beginnen zu testen, ob wir einen funktionierenden Service-Stack haben. Lassen Sie uns testen, ob wir ein Kerberos-Ticket für den Admin-Benutzer erhalten können (mit dem Passwort, das der Admin-Benutzer während der Installation erhalten hat):

kinit admin
Password for admin@IPA.LINUXCONFIG.ORG: 
klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@IPA.LINUXCONFIG.ORG

Valid starting       Expires              Service principal
2018-06-24 21.44.30  2018-06-25 21.44.28  krbtgt/IPA.LINUXCONFIG.ORG@IPA.LINUXCONFIG.ORG

Der Hostcomputer ist in unserer neuen Domäne registriert, und die Standardregeln gewähren dem oben erstellten Admin-Benutzer ssh-Zugriff auf alle registrierten Hosts. Lassen Sie uns testen, ob diese Regeln wie erwartet funktionieren, indem wir die SSH-Verbindung zum localhost öffnen:

ssh admin@localhost
Password: 
Creating home directory for admin.
Last login: Sun Jun 24 21:41:57 2018 from localhost
pwd
/home/admin
exit

Schauen wir uns den Status des gesamten Software-Stacks an:

ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

Und fragen Sie – mit dem zuvor erworbenen Kerberos-Ticket – mit dem CLI-Tool nach Informationen über den Admin-Benutzer:

ipa user-find admin
--------------
1 user matched
--------------
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  Principal alias: admin@IPA.LINUXCONFIG.ORG
  UID: 630200000
  GID: 630200000
  Account disabled: False
----------------------------
Number of entries returned 1
----------------------------

Melden Sie sich schließlich mit den Anmeldeinformationen des Admin-Benutzers auf der webbasierten Verwaltungsseite an (der Computer, auf dem der Browser ausgeführt wird, muss in der Lage sein, den Namen des FreeIPA-Servers aufzulösen). Verwenden Sie HTTPS, der Server leitet um, wenn einfaches HTTP verwendet wird. Da wir ein selbstsigniertes Root-Zertifikat installiert haben, warnt uns der Browser davor.

Login-Seite der FreeIPA WUI

Auf der Standardseite nach dem Login wird die Liste unserer Benutzer angezeigt, wobei nun nur noch der Admin-Benutzer angezeigt wird.

Die Standardseite nach der Anmeldung ist die Benutzerliste in FreeIPA WUI

Damit haben wir unser Ziel erreicht, wir haben einen laufenden FreeIPA-Server, der bereit ist, mit Benutzern, Hosts, Zertifikaten und verschiedenen Regeln gefüllt zu werden.

Verwandte Artikel: