Diese Seite beschreibt das Kerberos-Setup in Zeuthen. Das grundsätzliche Kerboros-Prinzip ist hier beschrieben: https://de.wikipedia.org/wiki/Kerberos_(Informatik)
Software
Wir nutzen die Kerberos-5 Implementation Heimdal in der Version 7.4 aktuell. RPM-Pakete werden von uns direkt aus den Quellen gebaut. Es gibt mittlerweile brauchbare Pakete in Fedora-EPEL, die aber teilweise andere Pfade nutzen und somit bei einer Migration Aufwand zu tätigen ist.
Client
Clients werden über das kerberos Feature konfiguriert. Das Feature erzeugt 2x die Konfiguration:
/etc/krb5.conf |
Konfiguration für MIT Implementation |
/etc/heimdal/krb5.conf |
Konfiguration für Heimdal Implementation |
Dies ist nötig, da manche Optionen in unterschiedliche benannt sind in den beiden Implementationen.
Zusätzlich zur standardmäßigen, im System enthaltenen MIT-Kerberos Implementation installieren wir auf allen (Client-)Systemen auch Heimdal. Primär deshalb, weil in den Heimdal-Clients eine sehr gute AFS-Unterstützung eingebaut ist. So generiert/aktualisiert ein Heimdal-Client beim kinit Aufruf automatisch das AFS-Token. Die MIT-Implementation macht das nicht, sodaß Wrapper o.ä. nötig wären in diesem Fall.
Alle im System enthaltene kerberisierte Software nutzt jedoch die MIT-Bibliotheken. Dieser Mischbetrieb läuft bislang problemlos.
Server
Wir betreiben 3 "Key Distribution Centre" (KDC) als VM auf den Hosts fred, wilma, barney. Alias-Namen: kdc{1..3}, wobei fred-vm1 (aka kdc1) die Master-Datenbank vorhält. Auf diesem läuft der kadmind, der für Änderungen der DB zuständig ist. Mittels des iprop-Service (inkrementelle Propagierung) wird die Kerberos-Datenbank auf die Slave-Server (kdc2, kdc3) synchronisiert.
Die Datenbank und weitere Konfigurationsdateien liegen auf den KDC Hosts unter /var/heimdal.
Unsere Realm heißt immer noch IFH.DE. Es ist geplant, "irgendwann" diese Realm abzulösen durch ZEUTHEN.DESY.DE. Die existiert schon, Nutzerpaßwörter werden seit langem auch in diese Realm synchronisiert.
Neustart der KDCs
- lange Authentisierungszeiten deuten auf ein Problem mit den KDCs hin
- auf kdc1 laufen:
- heimdal-ipropd-master.service
- heimdal-kadmind.service
- heimdal-kdc.service
- auf den anderen beiden:
- heimdal-ipropd-slave.service
- heimdal-kdc.service
- anscheindend kann man die Dienste auf der Maschine in beliebiger Reihenfolge restarten, aber den kdc1 mit seinen Diensten sollte man zuerst bearbeiten
Kerberisierte Dienste in Zeuthen
Dienst |
Principal |
evtl. Maschine(n) |
SSH |
host/<hostname> |
alle |
Apache |
HTTP/<hostname> |
z.B. Vamos, Subversion, WWW |
NFSv4 |
nfs/<hostname> |
z.B. alle Poolknoten und Chimera des ACS dCache |
ARCX |
arc/<hostname> |
z.B. acron, afs_admin-Server |
IMAP |
imap/<hostname> |
imap-admin.zeuthen.desy.de |
Automatisierte Verteilung von Kerberos Keytabs
Standardmäßig wird beim Aufruf von prepare-ai der host/<hostname>@IFH.DE Principal angelegt ( oder mit neuen Keys versehen!). Sollen weitere Principals für einen Host mit angelegt werden, sollte dies über das Setzen der Vamos-Variable AI_KRB5_KEYS geschehen. Bsp:
[wgs03] ~ % vamos -qx host tac-vm7 vars.AI_KRB5_KEYS imap
Die Keytab wird vom Postinstall Skript der Linuxinstallation nach /etc/krb5.keytab kopiert - sie ist nur von root lesbar. Für manche Dienste, die nicht unter der uid root laufen, ist eine separate Keytab-Datei die beste Lösung. Zum Extrahieren der Keys eines Dienstes in eine andere Keytab existiert im Sue/CfEngine Archiv das Skript ~TUTILS/extract-keytab-keys. Das dcache-Feature kann als Vorlage herangezogen werden.