6.9. Wiederverwendung von Benutzereigenschaften verhindern#
Neu in Version 5.0-6-erratum-974: Seit UCS 5.0 erratum 974 unterstützt UCS Blocklisten, um die Wiederverwendung von Benutzer- oder Gruppeneigenschaftswerten zu verhindern.
Blocklisten ist ein Modul in UDM. Es ermöglicht die Konfiguration von Blocklisten für UDM Eigenschaften. Ändert oder entfernt ein Administrator oder eine Software eine UDM Eigenschaft an einem UDM Objekt, fügt die Blockliste automatisch einen Eintrag über diese Eigenschaft mit ihrem Wert in die Blockliste ein. Der Eintrag in der Blockliste verhindert, dass ein anderes UDM Objekt den gleichen Wert der UDM Eigenschaft verwenden kann. Blocklisten arbeiten auf der UDM Ebene.
Sie wollen zum Beispiel verhindern, dass UCS die Werte der UDM Eigenschaft mailPrimaryAddress
der UDM Objekte user wiederverwendet. Sie konfigurieren eine Blockliste für die UDM Eigenschaft mailPrimaryAddress
. Wenn Sie dann den Wert chef@example.com
für die UDM Eigenschaft mailPrimaryAddress
aus einem UDM Benutzerobjekt entfernen, erzeugt die UDM Blockliste einen Eintrag für diesen Wert. Wenn Sie den Wert von james@example.com
auf john@example.com
für die UDM Eigenschaft mailPrimaryAddress
ändern, erzeugt die UDM Blockliste einen weiteren Eintrag für james@example.com
.
UDM Blocklisten verhindern nun die Wiederverwendung der Werte chef@example.com
und james@example.com
. Sie können in anderen UDM Benutzerobjekten für die UDM Eigenschaft mailPrimaryAddress
nicht mehr verwendet werden.
6.9.1. Aktivieren von Blocklisten#
Bevor Sie die Blocklisten aktivieren können, müssen Sie zuerst die UCS Systeme, in denen Sie UDM Objekte verwalten, mindestens auf UCS 5.0 erratum 974 aktualisieren.
Zweitens müssen Sie die Univention Configuration Registry Variable directory/manager/blocklist/enabled
mit ucr set
auf allen UCS-Systemen, auf denen Sie UDM Objekte verwalten, auf true
setzen.
6.9.2. Konfigurieren von Blocklisten#
Sie können Blocklisteneinträge mit dem UMC-Modul Blocklisten oder über das Kommandozeilenwerkzeug udm blocklists/list erstellen, auflisten und entfernen.
Für jede Blockliste müssen Sie die folgenden Eigenschaften festlegen:
- Name
Gibt der Blockliste einen menschenlesbaren Namen für die spätere Identifizierung.
- Aufbewahrungszeit
Legt die Aufbewahrungszeit für Einträge in dieser Blockliste fest. Die Aufbewahrungszeit ist der Zeitraum, der ablaufen muss, um Einträge automatisch aus der Blockliste zu entfernen. Zum Beispiel
1m 20d
, was für einen Monat und zwanzig Tage steht.- Zu blockierende Eigenschaften
Definiert die UDM Module und ihre Eigenschaften, deren Wiederverwendung die Blockliste verhindert.
Das folgende Beispiel für udm blocklists/list zeigt, wie man eine Blockliste über die Befehlszeile erstellt wird. Die Blockliste verhindert die Wiederverwendung der UDM Eigenschaft mailPrimaryAddress
für users/user
Objekte und die UDM Eigenschaft mailAddress
für groups/group
Objekte.
$ udm blocklists/list create \
--set name=user-and-group-emails \
--set retentionTime=40d \
--append blockingProperties="users/user mailPrimaryAddress" \
--append blockingProperties="groups/group mailAddress"
6.9.3. Einträge in der Blockliste verwalten#
Sie können Blocklisteneinträge im UMC-Modul Blocklisten oder über das Kommandozeilenwerkzeug udm blocklists/list verwalten.
Wenn Sie Blocklisten aktiviert haben, erstellt UDM automatisch Einträge in der konfigurierten Blockliste, wenn Sie einen Wert aus einer UDM Eigenschaft eines UDM Objekts entfernen. UDM löscht abgelaufene Einträge automatisch aus der Blockliste.
Jeder Blocklisteneintrag hat die folgenden Eigenschaften:
- Wert
Ein SHA-256-Hash, der den Wert darstellt, den die Blockliste für die Wiederverwendung blockiert. Der Wert für die UDM Eigenschaft ist ein Klartextwert. Bevor UDM den Blocklisteneintrag erstellt, wird der Wert in Kleinbuchstaben umgewandelt. Alle groß- und kleingeschriebenen Varianten des Wertes stimmen dann mit dem Blocklisteneintrag überein, wenn er von UDM validiert wird.
- Blockiert bis
Der Zeitstempel, zu dem der Eintrag in der Blockliste abläuft. Er verwendet das GeneralizedTime-LDAP-Syntax Format.
Wenn UDM einen Blocklisteneintrag erstellt, nimmt es das aktuelle Datum und die aktuelle Uhrzeit, addiert die konfigurierte Aufbewahrungszeit der entsprechenden Blockliste und schreibt das Ergebnis nach Blockiert bis.
Eine Änderung der Aufbewahrungszeit der Blockliste führt nicht zur Aktualisierung der Eigenschaft Blockiert bis des Blocklisteneintrags.
- ID des Ursprungsobjekts
Die ID des UDM Objekts, das den Blocklisteneintrag verursacht hat. Sie können weiterhin den Wert des Blocklisteneintrags für dieses UDM Objekt verwenden.
Wichtig
Wenn Sie die Einträge der Blockliste auflisten, erhalten Sie nur die Hashes der blockierten Werte.
Sie können jedoch nach dem Klartextwert eines bestimmten Eintrags suchen, z. B. wenn Sie diesen Eintrag löschen möchten.
$ udm blocklists/entry list
DN: cn=sha256:a859cd5964b6ac...,cn=emails,cn=blocklists
DN: cn=sha256:b859cd5964b6ac...,cn=emails,cn=blocklists
DN: cn=sha256:c859cd5964b6ac...,cn=emails,cn=blocklists
$ udm blocklists/entry list --filter value=blocked_email@example.com
DN: cn=sha256:c859cd5964b6ac...,cn=emails,cn=blocklists
6.9.4. Abgelaufene Blocklisteneinträge#
Jeder Eintrag in einer Blockliste hat eine Eigenschaft Blockiert bis. Blocklisteneinträge laufen nach Ablauf dieses Zeitstempels ab. Ein Cron-Job auf dem Primary Directory Node löscht abgelaufene Blocklisteneinträge.
Sie können die Häufigkeit, mit der Cron den Job ausführt, mit dem Parameter Univention Configuration Registry Variable directory/manager/blocklist/cleanup/cron
konfigurieren. Die Protokolldatei /var/log/univention/blocklist-clean-expired-entries.log
listet die abgelaufenen Einträge auf, die UDM gelöscht hat.
6.9.5. LDAP ACLs für Blocklisten#
Standardmäßig kann jeder UCS Knoten in der Domäne und jedes Mitglied der Gruppe Domain Admins
Blocklisteneinträge schreiben. Und jeder kann lesen. Sie können die Berechtigungen für den Primary Directory Node und den Backup Directory Nodes mit den folgenden Univention Configuration Registry Variablen konfigurieren:
Wenn Sie zum Beispiel einem Benutzer das Recht geben wollen, Einträge in der Blockliste zu löschen, der nicht Mitglied der Gruppe Domain Admins
ist, müssen Sie eine Gruppe mit diesem Benutzer als Mitglied erstellen und den LDAP DN dieser Gruppe zu ldap/database/internal/acl/blocklists/groups/write
hinzufügen.