Slapd
Installation
nach installation von slapd mit
apt-get install slapd
wird die Datenbank mit
dpkg-reconfigure slapd
gesäubert:
Frage nach “Soll die OpenLDAP-Server-Konfiguration ausgelassen werden” mit “nein” Frage nach “Soll die Datenbank entfernt werden, wenn slapd vollständig gelöscht wird?” mit “ja” (Achtung sichern!) Frage nach “Allow LDAPv2 protocol?” mit “ja”
Schemas hinzufügen
Dann die Schemas hinzufügen
Dazu wird eine conf Datei angelegt in der alle Schemas mit include aufgeführt sind.
slapcat -f schema_convert.conf -F /tmp/ldif_output -n0
cd /tmp/ldif_output/cn=config/cn=schema/
Die noch benötigten Ldifs werden jetz angepasst
die Ldif Dateien für die schemas müssen folgendes format haben
dn: cn=samba,cn=schema,cn=config
...
cn: cn=samba
Diese werden dann mit
ls /etc/ldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
die Ldif Dateien für die schemas müssen folgendes format haben
dn: cn=samba,cn=schema,cn=config
...
cn: cn=samba
Da das “Core Schema schon installiert ist gibt es eine Fehlermeldung
adding new entry "cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"
Datenbank_anlegen”
Datenbank anlegen
Die Datei db.ldif anlegen, in dieser wird hier die Domain dc=tenschert,dc=net angelegt, nur cn=admin,dc=tenschert,dc=net kann mit passwort “admin” ändern
# db.ldif
###########################################################
# DATABASE SETUP
###########################################################
# Load modules for database type
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
# Create directory database
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=tenschert,dc=net
olcRootDN: cn=admin,dc=tenschert,dc=net
olcRootPW: 1234
# olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=tenschert,dc=net" write by anonymous auth by self write by * none
olcAccess: to attrs=userPassword by dn="cn=admin,dc=tenschert,dc=net" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=tenschert,dc=net" write by * read
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
Folgende Modifikationen werden im Ubuntu Wiki erwähnt. Wenn diese ausgeführt werden kann aber keine Schemas mehr hinzugefügt werden.
###########################################################
# DEFAULTS MODIFICATION
###########################################################
# Some of the defaults need to be modified in order to allow
# remote access to the LDAP config. Otherwise only root
# will have administrative access.
dn: cn=config
changetype: modify
delete: olcAuthzRegexp
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}...
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
mit
user@server:~/# slappasswd
New password:
Re-enter new password:
{SSHA}fdlgjklfdjkhödjhökljhölgjfdhölfjghöldf
kann das Klartextpasswort umgangen werden, dafür die Zeile {SSHA} …. verwenden.
Mit folgender Zeile an slapd übergeben
sudo ldapadd -vvv -Y EXTERNAL -H ldapi:/// -f db.ldif
# Create top-level object in domain
# Name toplevel.ldif
dn: dc=tenschert,dc=net
objectClass: top
objectClass: dcObject
objectclass: organization
o: tenschert.net
dc: tenschert
description: Tenschert.net
dn: ou=people,dc=tenschert,dc=net
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=tenschert,dc=net
objectClass: organizationalUnit
ou: groups
Dann die Ldap Datenbank anlegen
sudo ldapadd -vvv -x -D cn=admin,dc=tenschert,dc=net -W -f toplevel.ldif
Beispiel für Benutzer
#people.ldif
dn: uid=john,ou=people,dc=tenschert,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 1000
gidNumber: 10000
userPassword: password
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: john.doe@tenschert.net
postalCode: 31000
l: Toulouse
o: Example
mobile: +33 (0)6 xx xx xx xx
homePhone: +33 (0)5 xx xx xx xx
title: System Administrator
postalAddress:
initials: JD dn: cn=example,ou=groups,dc=tenschert,dc=net
objectClass: posixGroup
cn: example
gidNumber: 10000
Einfügen per
sudo ldapadd -vvv -x -D cn=admin,dc=tenschert,dc=net -W -f people.ldif
Links
http://wiki.ubuntuusers.de/OpenLDAP
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]