Dies ist ein copy paste Mini-Howto für Openldap. LDAP steht für Lightweight Directory Access Protocol und hier wird nur eine simple Methode angewendet, um einen LDAP-Server zu konfigurieren. Achtung: Hier werden keine Verschlüsselungsmethoden verwendet !!
Deshalb ist es besser, das offizielle Gentoo-Howto auf http://www.gentoo.org/doc/en/ldap-howto.xml zu benutzen!
Du solltest auch unbedingt einen Blick auf diese Seite http://www.openldap.org/doc/admin21/ werfen.
Na gut, ich habe Dich gewarnt. Los gehts:
Pakete installieren, falls nicht schon geschehen.
Code: Select all
[ebuild R ] net-nds/openldap-2.1.26 +berkdb +crypt -debug +gdbm -ipv6 -kerberos -odbc +perl +readline -samba -sasl (-slp) +ssl +tcpd 0 kB
Code: Select all
# emerge openldap migrationtools
sodann Berechtigungen setzen.
Code: Select all
# chown ldap:ldap /var/lib/openldap-ldbm /var/lib/openldap-data /var/lib/openldap-slurp
Zunächst wird die /etc/openldap/slapd.conf angepasst:
Code: Select all
######################################################
# Anfang von /etc/openldap/slapd.conf
######################################################
# Welche schemas gebraucht werden, richtet sich nach den individuellen Anforderungen
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/openldap.schema
schemacheck off
# LDAPv2 Client Verbindungen erlauben.
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
#Verschlüsselung, das sollten Sie später nutzen:
#password-hash {crypt}
#TLSCertificateFile /etc/ssl/ldap.pem
#TLSCertificateKeyFile /etc/openldap/ssl/ldap.pem
#TLSCACertificateFile /etc/ssl/ldap.pem
#########################################################
# ldbm database definitions
#########################################################
#
database ldbm
suffix "dc=ldapdaten,dc=de"
rootdn "cn=Manager,dc=ldapdaten,dc=de"
#
# Um ein verschlüsseltes root Passwort zu generieren
# benutzen Sie bitte /etc/ssl/certs/slappasswd -h {Md5}
# das Ergebnis kopieren und in diese Datei einfügen
# rootpw {MD5}-Summe
#
#rootpw {MD5}-Summe
# zunächst ohne Verschlüsselung und im Klartext (böse,böse,böse) ;-))
rootpw secret
#
directory /var/lib/openldap-data
# Indexe definieren
#
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
# Bitte ausprobieren ob die Zugriffsrechte funktionieren
# Wenn nicht, bitte selbständig abändern ;-)
access to attr=userPassword
by dn.base="cn=Manager,dc=ldapdaten,dc=de" write
by self write
by anonymous auth
by * none
# Damit Benutzer in eigenem Verzeichnis Einträge
# hinzufügen, ändern oder löschen können.
access to dn="^.*,uid=([^,]+),ou=People,(.*)$"
by dn="uid=$1,ou=People,$2" write
by * none
access to *
by dn.base="cn=Manager,dc=ldapdaten,dc=de" write
by self write
by * read
#########################################################
# Ende von /etc/openldap/slapd.conf
#########################################################
Code: Select all
#########################################################
# Anfang von /etc/openldap/ldap.conf
#########################################################
#
SIZELIMIT 12
TIMELIMIT 15
DEREF never
BASE dc=ldapdaten,dc=de
URI ldap://192.168.0.2
TLS_REQCERT allow
#
#########################################################
# Ende von /etc/openldap/ldap.conf
#########################################################
Code: Select all
# rc-update add slapd default
# /etc/init.d/slapd start
Schlaue Leute testen den ldap.daemon mit:
Code: Select all
# ldapsearch -D "cn=Manager,dc=ldapdaten,dc=de" -W -d 255
Mit Hilfe der MigrationTools werden einige configs in das LDIF-Format übersetzt. Doch es müssen noch einige Variablen in der Konfigurationsdatei "/usr/share/migrationtools/migrate_common.ph" angepasst werden.
Code: Select all
cd /usr/share/migrationtools/
$DEFAULT_MAIL_DOMAIN = "ldapdaten.de";
$DEFAULT_BASE = "dc=ldapdaten,dc=de";
$DEFAULT_MAIL_HOST = "mail.ldapdaten.de";
$EXTENDED_SCHEMA = 1;
Code: Select all
export ETC_SHADOW=/etc/shadow #ob man`s wirklich braucht weiss ich nicht
./migrate_base.pl > /tmp/base.ldif
./migrate_group.pl /etc/group /tmp/group.ldif
./migrate_hosts.pl /etc/hosts /tmp/hosts.ldif
./migrate_passwd.pl /etc/passwd /tmp/passwd.ldif
# Die Reihenfolge könnte wichtig sein und jede Zeile einzeln aufrufen!
Code: Select all
ldapadd -x -D "cn=Manager,dc=ldapdaten,dc=de" -W -f /tmp/base.ldif
ldapadd -x -D "cn=Manager,dc=ldapdaten,dc=de" -W -f /tmp/group.ldif
ldapadd -x -D "cn=Manager,dc=ldapdaten,dc=de" -W -f /tmp/hosts.ldif
ldapadd -x -D "cn=Manager,dc=ldapdaten,dc=de" -W -f /tmp/passwd.ldif
cd /etc
Es kann sein, dass beim Importieren der passwd.ldif ein Fehler auftritt. Die Ursache wurde noch nicht identifiziert. Macht nichts, weitermachen.
[EDIT]
In der /tmp/passwd.ldif können die Einträge:
Code: Select all
#objectClass: kerberosSecurityObject
#krbName: user@LOCALHOST
[EDIT Ende]
Als nächstes kommt die /etc/ldap.conf in den nano -w:
Code: Select all
#########################################################
# Anfang der /etc/ldap.conf
#########################################################
#
# Mein LDAP Server ist:
host 192.168.0.2
#
# Die Suchbasis ist:
base dc=ldapdaten,dc=de
#
# Sicher ist der Port 636
# Wir nutzen aber den unsicheren Port 389 ;-))
port 389
#
# Das LDAP Server Zertifikat nicht überprüfen
#
tls_checkpeer no
#
#ssl on
#pam_password md5
#
#########################################################
# Ende der /etc/ldap.conf
#########################################################
Code: Select all
emerge phpldapadmin
Code: Select all
cd /var/www/localhost/htdocs/phpldapadmin
folgende Zeilen ändern:
Code: Select all
$blowfish_secret = '1234567890'; ## oder was auch immer
$servers[$i]['name'] = 'LdapDaten'; ## oder was auch immer, ist nicht wichtig.
$servers[$i]['host'] = '192.168.0.2';
$servers[$i]['base'] = 'dc=ldapdaten,dc=de';
$servers[$i]['port'] = 389;
$servers[$i]['login_dn'] = 'cn=Manager,dc=ldapdaten,dc=de';
$servers[$i]['login_pass'] = 'secret'; ##(böse,böse) ;-)
$servers[$i]['auto_uid_number_search_base'] = 'ou=people,dc=ldapdaten,dc=de';
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=ldapdaten,dc=de';
$language = 'de';
Code: Select all
http://localhost/phpldapadmin/index.php
Mit herzlichem Dank an die Forenmitglieder, die mir hier schon mal geholfen haben.
[Nachtrag]
Je und je stellt sich die Frage nach der Zugangskontrolle über ldap. Um dies zu realisieren sind zwei Dateien zu modifizieren.
In der /etc/nsswitch.conf ist bei den drei Einträgen ldap zu ergänzen.
Sowie die /etc/pam.d/system-auth. Hier sind die Ergänzungen farbig dargestellt.# /etc/nsswitch.conf:
passwd: compat ldap
shadow: compat ldap
group: compat ldap
--schnapp--
Bitte die Reihenfolge der Zeilen nicht verändern!#%PAM-1.0
auth required /lib/security/pam_env.so
#nächste Zeile für ldap
#auth sufficient /lib/security/pam_ldap.so
#nächste Zeile Original
auth sufficient /lib/security/pam_unix.so likeauth nullok
# nächste Zeile ist die obige Zeile, nur ergänzt um ldap
#auth sufficient /lib/security/pam_unix.so likeauth nullok use_first_pass
auth required /lib/security/pam_deny.so
#nächste Zeile für ldap
#account required /lib/security/pam_ldap.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3
# nächste Zeile Ldap
#password sufficient /lib/security/pam_ldap.so
password sufficient /lib/security/pam_unix.so nullok md5 shadow use_authtok
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
Aber VORSICHT. Sollte ldap nicht sauber laufen kann man sich selbst, einschließlich root, aussperren.
Auch nach einem Wechsel des Profils z.B. auf 2005.0 ist die Gefahr hoch, sich nicht mehr einloggen zu können.
Ansonsten:
Viel Spaß mit Gentoo!
[utf8-test@; sz=ß, ae=äÄ, oe=öÖ, ue=üÜ, q=qQ, <>,;.:-_'#+*~'`? \{} ()&%$§"!]




