Sichern von OpenLDAP
Anzeige Hier werben
Die Erstinstallation und Grundkonfiguration eines OpenLDAP Servers ist schnell durchgeführt. Für den Effektiveinsatz müssen allerdings meist strenge Sicherheitsrichtlinien befolgt werden, um die gespeicherten Daten vor unbefugtem Zugriff zu schützen. Dieser Artikel zeigt einige Möglichkeiten zur Sicherung eines OpenLDAP Servers und die Implementierung von Administrativen Rollen.
Erlaubte Passwort Algorithmen
OpenLDAP ermöglicht die exakte spezifikation des verwendeten Passwort Verschlüsselungsalgorithmus über die Option password-hash. Erlaubte Werte sind hier {SSHA}, {SHA}, {SMD5}, {MD5}, {CRYPT}, und {CLEARTEXT}.
Wird keine Angabe gemacht, wird {SSHA} verwendet.
<<TODO>>
1 | password-hash {ssha} {sha}
|
Zugriffsrechte
Sicherheitsanforderungen
Über das Schlüsselwort security ist es möglich sogenannte Security Strength Factors (SSF) anzugeben die von Clients erfüllt werden müssen. Innerhalb der Einstellung können verschiedene Parameter (Format: einstellung=wert) und Werte angegeben werden.
Die Angabe der Werte erfolgt numerisch, die Angabe von 0 bedeutet, dass keine gesonderten Sicherheitseinstellungen verwendet werden. 1 stellt die Datenintegrität sicher und eine Angabe eines Wertes größer als 1 legt fest, welche (ungefähre) Schlüssellänge für die Kommunikation mit dem Server verwendet werden muss, um die definierte Aktion durchführen zu können.
Erlaubte Paramter für security sind zum Beispiel:
ssf- Allgemeine Security Strength Factorsupdate_ssf- Für Updates benötigte Sicherheitseinstellungensimple_bind- Für einfache Verbindungen benötigte Sicherheitseinstellungen
Zugriffskontrolle via slapd.conf
<<TODO>> Statische Config in slapd.conf - Seit 2.3 auch über slapd.d via LDAP Objekte möglich, blah blah
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <access directive> ::= access to <what>
[by <who> <access> <control>]+
<what> ::= * |
[dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
[filter=<ldapfilter>] [attrs=<attrlist>]
<basic-style> ::= regex | exact
<scope-style> ::= base | one | subtree | children
<attrlist> ::= <attr> [val[.<basic-style>]=<regex>] | <attr> , <attrlist>
<attr> ::= <attrname> | entry | children
<who> ::= * | [anonymous | users | self
| dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
[dnattr=<attrname>]
[group[/<objectclass>[/<attrname>][.<basic-style>]]=<regex>]
[peername[.<basic-style>]=<regex>]
[sockname[.<basic-style>]=<regex>]
[domain[.<basic-style>]=<regex>]
[sockurl[.<basic-style>]=<regex>]
[set=<setspec>]
[aci=<attrname>]
<access> ::= [self]{<level>|<priv>}
<level> ::= none | auth | compare | search | read | write
<priv> ::= {=|+|-}{w|r|s|c|x|0}+
<control> ::= [stop | continue | break]
|
Laufzeitkonfiguration
<<TODO>> slapd.d blah blah blah
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | olcAccess: <access directive>
<access directive> ::= to <what>
[by <who> <access> <control>]+
<what> ::= * |
[dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
[filter=<ldapfilter>] [attrs=<attrlist>]
<basic-style> ::= regex | exact
<scope-style> ::= base | one | subtree | children
<attrlist> ::= <attr> [val[.<basic-style>]=<regex>] | <attr> , <attrlist>
<attr> ::= <attrname> | entry | children
<who> ::= * | [anonymous | users | self
| dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
[dnattr=<attrname>]
[group[/<objectclass>[/<attrname>][.<basic-style>]]=<regex>]
[peername[.<basic-style>]=<regex>]
[sockname[.<basic-style>]=<regex>]
[domain[.<basic-style>]=<regex>]
[sockurl[.<basic-style>]=<regex>]
[set=<setspec>]
[aci=<attrname>]
<access> ::= [self]{<level>|<priv>}
<level> ::= none | auth | compare | search | read | write
<priv> ::= {=|+|-}{w|r|s|c|x|0}+
<control> ::= [stop | continue | break]
|
SSL/SASL/TLS
<<TODO>>
Weitere Artikel zu LDAP auf Webmasterpro
Weitere Informationen
- Sicherheitshinweise zu OpenLDAP (englisch)
- Zugriffskontrolle für OpenLDAP (englisch)
- Alte Zugriffskontrolle via slapd.conf (englisch)

