Red Hat Identity Management (IdM) Multi-Zone & Multi-DC Produktions-Handbuch
Dieses Handbuch beschreibt die vollständige Implementierung einer hochverfügbaren Red Hat Identity Management (IdM) Infrastruktur mit 3 logischen Sicherheitszonen (Links, Rechts, Unten) über 2 physische Rechenzentren (DC1, DC2) für die Domäne 0x42.dev.
Es deckt die Architektur-Matrix, die Integration von vertrauenswürdigen Drittanbieter-Zertifikaten (External CA), die Serverkonfiguration, den sicheren Domänenbeitritt sowie die zentrale Verwaltung von Benutzern, Gruppen und Sudo-Regeln ab.
1. Architektur- & Replikations-Design
1.1 Das Zonen- und RZ-Grid (6-Server-Matrix)
Um Netzwerksperren zu überbrücken und gleichzeitig den Ausfall eines kompletten Rechenzentrums abzufangen, ist eine 6-Server-Matrix das absolute strukturelle Minimum. Nur so ist sichergestellt, dass jede logische Netzwerkzone in jedem physischen Standort ein lokales, direkt erreichbares Gateway besitzt.
| Netzwerk-Zone | Physisches RZ 1 (DC1) | Physisches RZ 2 (DC2) | Rolle / Features |
|---|---|---|---|
| Zone Links (z.B. DMZ) | idm-l1.0x42.dev |
idm-l2.0x42.dev |
IdM-Replika + DNS |
| Zone Rechts (z.B. Produktion) | idm-r1.0x42.dev |
idm-r2.0x42.dev |
IdM-Replika + DNS |
| Zone Unten (Haupt-Mgmt) | idm-u1.0x42.dev (Initial Master) |
idm-u2.0x42.dev |
IdM-Master/Replika + CA + DNS |
1.2 Replikations-Topologie
Um den Replikations-Overhead zu minimieren, wird eine Doppel-Ring-Topologie mit Cross-Links verwendet:
- RZ-interne Ringe: Innerhalb von DC1 replizieren
u1 <-> r1 <-> l1. Innerhalb von DC2u2 <-> r2 <-> l2. - Zonen-übergreifende RZ-Brücken: Die Server der gleichen Netzwerkzone sind RZ-übergreifend direkt verbunden (
u1 <-> u2,r1 <-> r2,l1 <-> l2).
==================================================================================================
0x42.dev - MULTI-ZONE / MULTI-DC ARCHITECTURE
==================================================================================================
+-----------------------------------+ +-----------------------------------+
| DATA CENTER 1 (DC1) | | DATA CENTER 2 (DC2) |
+-----------------------------------+ +-----------------------------------+
| | | |
| +---------------------------+ | | +---------------------------+ |
ZONE | | idm-l1.0x42.dev |===|===|===| idm-l2.0x42.dev | |
LEFT | | (Replica + DNS) | | | | (Replica + DNS) | |
| +---------------------------+ | | +---------------------------+ |
| ^ | | ^ |
| | (DC-Internal | | | (DC-Internal |
| v Ring) | | v Ring) |
| +---------------------------+ | | +---------------------------+ |
ZONE | | idm-r1.0x42.dev |===|===|===| idm-r2.0x42.dev | |
RIGHT | | (Replica + DNS) | | | | (Replica + DNS) | |
| +---------------------------+ | | +---------------------------+ |
| ^ | | ^ |
| | | | | |
| v | | v |
| +---------------------------+ | | +---------------------------+ |
ZONE | | idm-u1.0x42.dev |===|===|===| idm-u2.0x42.dev | |
BOTTOM | | (Initial Master + CA) | | | | (Replica + CA + DNS) | |
(Mgmt) | +---------------------------+ | | +---------------------------+ |
| | | |
+-----------------------------------+ +-----------------------------------+
Legend:
=== : Cross-DC Zone Bridge (Failsafe WAN Link)
| : Data Center Internal Replication Ring
2. Voraussetzungen (Auf allen 6 Servern ausführen)
Führen Sie diese Schritte auf jedem der Systeme aus, bevor Sie mit der IdM-Installation beginnen.
Hostname & Firewall konfigurieren
⚠️ WICHTIG: Der RHEL-Installer öffnet Ports nicht automatisch. Ohne manuelle Vorkonfiguration bricht das Setup ab!
# Setzen Sie den FQDN entsprechend dem Server (Beispiel für idm-u1)
sudo hostnamectl set-hostname idm-u1.0x42.dev
# Benötigte IdM-Ports in der lokalen Firewall permanent freigeben
sudo firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,dns,kerberos,kpasswd,http,https}
sudo firewall-cmd --reload
RHEL Module & Pakete vorbereiten
# IdM AppStream-Modul aktivieren und Server-Pakete installieren
sudo dnf module enable idm:DL1 -y
sudo dnf install ipa-server ipa-server-dns -y
3. Schritt-für-Schritt Installations-Reihenfolge
Zertifikatsinfrastruktur (External CA Integration)
Standardmäßig erstellt IdM eine eigene, selbstsignierte Root-CA. Für eine produktive Enterprise-Umgebung binden wir IdM als Sub-CA (Intermediate CA) in Ihre bestehende Unternehmens-PKI ein.
Schritt 3.1: CSR (Zertifikatsanforderung) auf idm-u1 generieren
Führen Sie den ersten Teil der Installation auf idm-u1 mit dem Parameter --external-ca aus:
sudo ipa-server-install --realm=0X42.DEV --domain=0x42.dev --hostname=idm-u1.0x42.dev --setup-dns --auto-forwarder --no-ntp --external-ca
Schritt 3.2: Signierung durch die Unternehmens-PKI
Das Installationsskript legt eine CSR-Datei unter /root/ipa.csr ab.
- Reichen Sie diese
/root/ipa.csrbei Ihrer internen Zertifikatsstelle ein. - Stellen Sie sicher, dass das Zertifikat für die Zertifikatsausstellung (Sub-CA / CA:TRUE) freigegeben ist.
- Exportieren Sie das signierte Zertifikat als PEM (Base64)-Datei (z. B.
ipa-ca.crt). - Exportieren Sie die vollständige Stammzertifikatskette (Root-CA und alle Intermediates) ebenfalls als PEM-Datei (z. B.
root-chain.crt). - Kopieren Sie beide Dateien zurück auf den Server
idm-u1nach/root/.
Schritt 3.3: Installation auf idm-u1 fortsetzen
Führen Sie das Installationsskript erneut aus und übergeben Sie das signierte Zertifikat sowie die Vertrauenskette:
sudo ipa-server-install --external-cert-file=/root/ipa-ca.crt --external-cert-file=/root/root-chain.crt
Installation der verbleibenden 5 Server
Erzeugen Sie nach der Master-Installation auf idm-u1 ein gültiges Kerberos-Ticket:
kinit admin
Schritt 3.4: Zone Unten / DC2 (idm-u2.0x42.dev) aufsetzen
Dieser Server klont die CA-Infrastruktur von idm-u1 für maximale Redundanz:
sudo ipa-replica-install --server=idm-u1.0x42.dev --setup-dns --setup-ca
Schritt 3.5: Zonen Links & Rechts in DC1 aufsetzen
# Auf idm-l1.0x42.dev (Links / DC1)
sudo ipa-replica-install --server=idm-u1.0x42.dev --setup-dns
# Auf idm-r1.0x42.dev (Rechts / DC1)
sudo ipa-replica-install --server=idm-u1.0x42.dev --setup-dns
Schritt 3.6: Zonen Links & Rechts in DC2 aufsetzen
# Auf idm-l2.0x42.dev (Links / DC2)
sudo ipa-replica-install --server=idm-u2.0x42.dev --setup-dns
# Auf idm-r2.0x42.dev (Rechts / DC2)
sudo ipa-replica-install --server=idm-u2.0x42.dev --setup-dns
Schritt 3.7: Replikations-Topologie konfigurieren
Führen Sie diese Befehle auf idm-u1.0x42.dev aus, um die optimierte Netzwerktopologie zu etablieren:
# RZ-interne Ringe schließen
ipa topologysegment-add domain l1-to-r1 --leftnode=idm-l1.0x42.dev --rightnode=idm-r1.0x42.dev
ipa topologysegment-add domain l2-to-r2 --leftnode=idm-l2.0x42.dev --rightnode=idm-r2.0x42.dev
# RZ-übergreifende Zonen-Brücken schlagen
ipa topologysegment-add domain links-dc1-to-dc2 --leftnode=idm-l1.0x42.dev --rightnode=idm-l2.0x42.dev
ipa topologysegment-add domain rechts-dc1-to-dc2 --leftnode=idm-r1.0x42.dev --rightnode=idm-r2.0x42.dev
Schritt 3.8: DNS-Standorte (Locations) einrichten
# Standorte anlegen
for loc in dc1_links dc1_rechts dc1_unten dc2_links dc2_rechts dc2_unten; do ipa location-add $loc --description="Location $loc"; done
# Server zuweisen
ipa location-add-member dc1_links --servers=idm-l1.0x42.dev
ipa location-add-member dc1_rechts --servers=idm-r1.0x42.dev
ipa location-add-member dc1_unten --servers=idm-u1.0x42.dev
ipa location-add-member dc2_links --servers=idm-l2.0x42.dev
ipa location-add-member dc2_rechts --servers=idm-r2.0x42.dev
ipa location-add-member dc2_unten --servers=idm-u2.0x42.dev
4. Den ersten Linux-Client integrieren
Führen Sie diese Schritte auf dem Client-System aus, um es sicher in die Domäne aufzunehmen.
Schritt 4.1: DNS-Konfiguration des Clients prüfen (Kritisch!)
Der Client muss zwingend die IP-Adresse des IdM-Servers seiner eigenen Zone als primären DNS-Nameserver eingetragen haben.
# Überprüfen, ob die Namensauflösung für die Domäne funktioniert
host -t SRV _kerberos._udp.0x42.dev
Schritt 4.2: Vertrauenskette der Enterprise-PKI hinterlegen
# Root-Chain-Zertifikat in den vertrauenswürdigen Speicher kopieren
sudo cp /pfad/zu/root-chain.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
Schritt 4.3: Client-Pakete installieren und Domänenbeitritt ausführen
# Client-Paket installieren
sudo dnf install ipa-client -y
# Interaktiver Domänenbeitritt mit automatischer Konfiguration von SSSD und Kerberos
sudo ipa-client-install --mkhomedir
5. Zentrale Identity & Access Governance (Benutzer, Gruppen & Sudo)
Führen Sie die folgenden Schritte auf einem beliebigen IdM-Server mit einem active Admin-Ticket (kinit admin) aus.
Schritt 5.1: Benutzer und Gruppe erstellen
# 1. Eine Benutzergruppe für Linux-Administratoren erstellen
ipa group-add linux-admins --desc="Zentrale Administratoren für Linux-Systeme"
# 2. Einen neuen Benutzer anlegen
ipa user-add max.mustermann --first="Max" --last="Mustermann" --password --email="max@0x42.dev"
# 3. Den Benutzer der Administrator-Gruppe zuweisen
ipa group-add-member linux-admins --users=max.mustermann
Schritt 5.2: Host-Gruppe definieren
# 1. Host-Gruppe für produktive Systeme erstellen
ipa hostgroup-add prod-servers --desc="Systeme in der Zone Rechts (Produktion)"
# 2. Den bereits beigetretenen Client der Gruppe hinzufügen
ipa hostgroup-add-member prod-servers --hosts=appserver01.0x42.dev
Schritt 5.3: Zentrale Sudo-Regel (Sudo Policy) erstellen
# 1. Die Sudo-Regel in IdM registrieren
ipa sudorule-add run-all-as-root --desc="Erlaubt vollen Root-Zugriff für Linux-Admins"
# 2. Bestimmen, WER diese Regel nutzen darf (Unsere Benutzergruppe)
ipa sudorule-add-user run-all-as-root --groups=linux-admins
# 3. Bestimmen, WO diese Regel gilt (Unsere Host-Gruppe)
ipa sudorule-add-host run-all-as-root --hostgroups=prod-servers
# 4. Bestimmen, WELCHE Befehle erlaubt sind (In diesem Fall ALLE)
ipa sudorule-add-allow-command run-all-as-root --sudocmds=all
# 5. Bestimmen, als WELCHER Benutzer die Befehle ausgeführt werden dürfen (als root)
ipa sudorule-add-runasuser run-all-as-root --users=root
Schritt 5.4: Überprüfung auf dem Client-System
Melden Sie sich nun auf dem Client (appserver01.0x42.dev) mit dem neuen Benutzer an.
# 1. Per SSH auf den Client verbinden
ssh max.mustermann@appserver01.0x42.dev
# 2. Prüfen, welche Sudo-Regeln SSSD für diesen Benutzer vom IdM-Server geladen hat
sudo -l
6. Überwachung & Synchronisations-Check
Verwenden Sie diese Befehle auf einem beliebigen Server, um den Zustand zu validieren:
# Listet alle aktiven Replikations-Pfade auf
ipa topologysegment-find domain
# Überprüft die Netzwerk-Konnektivität aller Replikationspartner im Verzeichnis
ipa-replica-conncheck
# Zeigt den detaillierten Synchronisations-Status an
ipa server-status
7. Firewall- & Netzwerk-Konfigurationsmatrix (Spickzettel für Admins)
⚠️ WICHTIGER PRODUKTIONSHINWEIS: Die Freischaltung muss zwingend vor Schritt 3 manuell durchgeführt werden, andernfalls bricht die Installation ab.
| Dienst | Port | Protokoll | Richtung | Beschreibung |
|---|---|---|---|---|
| Kerberos KDC | 88 | TCP / UDP | Client → IdM Server ↔ Server |
Benutzer- & Maschinen-Authentifizierung |
| Kerberos Passwort | 464 | TCP / UDP | Client → IdM Server ↔ Server |
Passwortänderungen (kpasswd) |
| LDAP | 389 | TCP | Client → IdM Server ↔ Server |
Identitätsabfragen (SSSD / StartTLS) |
| LDAPS | 636 | TCP | Client → IdM Server ↔ Server |
Verschlüsselte LDAP-Abfragen |
| HTTP | 80 | TCP | Client → IdM Server ↔ Server |
CRL-Zertifikatslisten / Weiterleitung |
| HTTPS | 443 | TCP | Client → IdM Server ↔ Server |
IdM-API, Web-UI, Client-Joins |
| DNS | 53 | TCP / UDP | Client → IdM Server ↔ Server |
Lokale Namensauflösung & SRV Discovery |
| NTP | 123 | UDP | Client → IdM Server ↔ Server |
Zeitsynchronisation (Kritisch für Kerberos!) |
| SSH | 22 | TCP | Server ↔ Server | Nur Setup: Kopieren der Replikations-Schlüssel |
Kommunikationsregeln für Sicherheitszonen
- Clients zu Servern: Clients benötigen Zugriff auf die Ports 88, 464, 389, 636, 443 und 53 des IdM-Servers ihrer zugewiesenen Zone.
- Server zu Server (Replikation): Alle oben genannten Ports (inkl. Port 22 für das Setup) müssen zwischen den Servern, die laut Topologie-Plan miteinander verknüpft sind, vollständig bidirektional geöffnet sein.