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 DC2 u2 <-> 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.

  1. Reichen Sie diese /root/ipa.csr bei Ihrer internen Zertifikatsstelle ein.
  2. Stellen Sie sicher, dass das Zertifikat für die Zertifikatsausstellung (Sub-CA / CA:TRUE) freigegeben ist.
  3. Exportieren Sie das signierte Zertifikat als PEM (Base64)-Datei (z. B. ipa-ca.crt).
  4. Exportieren Sie die vollständige Stammzertifikatskette (Root-CA und alle Intermediates) ebenfalls als PEM-Datei (z. B. root-chain.crt).
  5. Kopieren Sie beide Dateien zurück auf den Server idm-u1 nach /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.