FreeIPA: Admin Benutzer des Directory Servers absichern
Posted on Do 26 Dezember 2024 in Blog
Ich habe schon in unterschiedlichsten Beiträgen, siehe FreeIPA, pgbouncer und Postgres oder Data Engineering, Datensicherheit und Zugriffsrechte, berichtet, wie ich FreeIPA einsetze, um die Berechtigungen für Personen zu verwalten.
Ich will heute kurz zeigen, wie man den Zugriff Admin-Benutzer Directory Manager
einschränken kann, um die Sicherheit der eigenen IPA-Instanz zu erhöhen.
Inhalt:
Einleitung
FreeIPA besteht aus unterschiedlichsten Komponenten und bietet die Möglichkeit, Benutzer:innen zentral zu verwalten. Ich nutze dies, wie eingangs bereits erwähnt, um die unterschiedlichsten Datenbank-Nutzer:innen und deren Rechte zu verwalten. Der inkludierte LDAP-Server selbst, kann natürlich auch noch wesentlich besser abgesichert werden, als es standardmäßig der Fall ist.
Aus Sicherheitsgründen wäre es gut, wenn man den Zugriff des Admin-Benutzers Directory Manager
limitieren würden.
Dieser kann sich standardmäßig von jedem Rechner im Netzwerk einloggen, der mit dem LDAP-Server kommunizieren kann.
Zugriffsbeschränkungen im 389 Directory Server
Der 389 Directory Server, der bei FreeIPA inkludiert ist, bietet die Möglichkeit auch zusätzliche Plug-ins zu aktivieren.
Eines davon nennt sich Root DN Access Control und ermöglicht es, den Zugriff auf den Admin-Account Directory Manager
auf unterschiedlichste Arten zu beschränken.
ACHTUNG: bevor man sich an dem Plug-in versucht, sollte man jedenfalls ein Backup machen, da man sonst im Falle einer Fehlkonfiguration den Zugriff auf den Directory-Server verlieren könnte.
Aus Sicherheitsgründen sollte der Zugriff auf den Admin-Account nur von ausgewählten Hosts möglich sein.
Für den Directory Manager
gelten die normalen Möglichkeiten User einzuschränken nicht, da er über den normalen ACI-Regeln steht.
Daher gibt es dieses zusätzliche Plug-in.
Zusätzlich neben der Einschränkung nach Hosts, bietet das Plug-in auch die Möglichkeit den Zugriff zeitlich (Zeit, Tage) zu begrenzen. Damit könnte beispielsweise der Zugriff außerhalb von Bürozeiten verhindert werden.
In einem ersten Schritt, kann man sich die Liste der Plug-ins ausgeben lassen, um zu sehen, ob das Plug-in auch wirklich vorhanden ist:
dsconf -D "cn=Directory Manager" ldap://example.com plugin list
Hier sollte dann RootDN Access Control
in der Liste auftauchen. Wenn dem so ist, dann kann man das Plug-in aktivieren:
dsconf -D "cn=Directory Manager" ldap://example.com plugin root-dn enable
Danach kann man die Hosts aktivieren, von denen man zugreifen will. Dabei kann man auch mehrere IP-Adressen angeben. ACHTUNG: alle IP-Adressen, die nicht erlaubt sind, sind automatisch verboten. Daher sollte man sehr gut überlegen, welche Adressen man angibt. Denn bei einer Fehlkonfiguration kann man sonst sehr leicht den Zugriff auf den Directory Server verlieren.
dsconf -D "cn=Directory Manager" ldap://example.com plugin root-dn set --allow-ip 127.0.0.1 999.999.999.999
Die Änderungen selbst haben erst nach einem Neustart des LDAP-Servers einen Effekt. Allerdings kann man sich davor schon überzeugen, ob die Änderungen in die entsprechenden Dateien geschrieben worden sind:
cat /etc/dirsrv/slapd-NAME_MEINES_SERVERS/dse.ldif | grep -i 'allow-ip'
Wenn alles funktioniert hat, dann sollte es nach einem Neustart, von allen nicht erlaubten Servern bei Abfragen mit dem Benutzer Directory Manager
folgende Meldung geben:
ldap_bind: Server is unwilling to perform (53)
additional info: RootDN access control violation
Weitere Informationen:
Fazit
Das Plug-in RootDN Access Control
bietet eine mächtige, aber auch gefährliche Möglichkeit, um den Admin-Zugriff auf den Server abzusichern.
Warum gefährlich?
Bei einer Fehlkonfiguration kann man sich vom LDAP-Server ausschließen. Andrerseits bietet es auch eine gute Möglichkeit, um die Nutzungsmöglichkeiten auf bestimmte Hosts einzuschränken und damit die Angriffsoberfläche zu reduzieren.