Administratorenhilfe:Installation LDAP
Aus GROUP-E
Inhaltsverzeichnis |
Installation LDAP
Diese Installationsart ermöglicht die Zentralisierung der Benutzerdatenbasis in einem LDAP Verzeichnis. Alle Server sind so eingestellt das sie sich über das LDAP Directory authentifizieren können. UNIX Systeme können über "libnss" Benutzer und Gruppen aus dem LDAP Directory lesen. Samba ist als PDC (Primary Domain Controller) eingestellt. Über GROUP-E können auch die Benutzer in der Sambadomäne verwaltet werden.
GROUP-E wird durch den Parameter $CFG['USER_CLASS']='ldap_full' in der www/cfg/global.inc.php in den LDAP Modus gesetzt.
$CFG['USER_CLASS']='ldap_full'; // For LDAP use 'ldap_full' for Mysql 'mysql'
Für diese Installationsart müssen noch folgende Pakete installiert werden.
$ apt-get update $ apt-get install gcc make libc6-dev cyrus-admin-2.2 cyrus-clients-2.2 cyrus-common-2.2 \ cyrus-imapd-2.2 sasl2-bin libsasl2-modules php5-imap php5-ldap php5-mcrypt \ php5-mhash php5-imap tnef postfix postfix-ldap libpam-ldap slapd zip unzip \ samba samba-doc smbldap-tools libnss-ldap ldap-utils libpam-cracklib smbclient acl
LDAP einrichten
| Achtung: Ab Debian Squeeze hat sich die Konfiguration des LDAP Servers geändert. Siehe Einrichten von LDAP mit dynamischer Konfiguration (cn=config) |
Zuerst sollten alle benötigten Schemas nach /etc/ldap/schema kopiert werden
$ cp doc/examples/LDAP/schema/*.schema /etc/ldap/schema $ cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema $ gunzip /etc/ldap/schema/samba.schema.gz
Damit die Schemas auch verwendet werden, müssen sie in die /etc/ldap/slapd.conf eingetragen werden. Der Parameter "sizelimit" begrenzt die Anzahl der gefundenen Ergebnisse (default:500). Wir empfehlen mindestens 10000. Zusätzlich müssen noch die Attribute angegeben werden welche indiziert werden sollen. Die Datei mit einem Editor öffnen und folgendes eintragen.
include /etc/ldap/schema/samba.schema include /etc/ldap/schema/postfix.schema include /etc/ldap/schema/group-e.schema sizelimit 10000 index uidGroup-e eq index permsGroup-e eq index gidGroup-e eq index cn pres,sub,eq index sn pres,sub,eq index uid pres,sub,eq index displayName pres,sub,eq index uidNumber eq index gidNumber eq index memberUID eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq index default sub index mailacceptinggeneralid sub
Zusätzlich sollte auch der Parameter "suffix" in dieser Datei überprüft werden. Der Wert der diesem Parameter zugewiesen wird muss der LDAP BaseDN im weiter unten verwendeten LDIF-Dump entsprechen. In unserem Beispiel wäre das
suffix dc=EXAMPLE,dc=com
Jetzt kann die LDAP Datenbank eingerichtet werden. Der LDIF-Dump liegt unter etc/dump/initial_group-e.ldif. Dieser Dump enthält einige Platzhalter die durch die richtigen Werte ersetzt werden müssen.
- dc=EXAMPLE,dc=com ersetzen durch eigene Domäne z.B. dc=huber,dc=com
- o: EXAMPLE.com ersetzen durch eigene Domäne z.B. o: huber.com
- dc: EXAMPLE ersetzen durch einen Namen z.B. dc=Huber
- sambaDomainName=TEST der gewünschte Name der Samba Domäne
- sambaDomainName:TEST der gewünschte Name der Samba Domäne
Wenn gewünscht kann natürlich auch die SAMBA SID angepasst werden.
Der Dump kann jetzt folgendermaßen eingelesen werden.
| Achtung: ACHTUNG: alle bestehenden Daten in dem LDAP Directory werden damit gelöscht. |
$ /etc/init.d/slapd stop $ mv /var/lib/ldap/DB_CONFIG /tmp $ rm /var/lib/ldap/* $ mv /tmp/DB_CONFIG /var/lib/ldap $ slapadd -l dump/initial_group-e.ldif $ chown openldap:openldap /var/lib/ldap/* $ /etc/init.d/slapd start
Das Passwort des Adminbenutzers (cn=admin,dc=EXAMPLE,dc=COM) ist standardmäßig auf "group-e" gesetzt. Bitte ändere jetzt das Passwort. Du musst hier natürlich auch die LDAPROOT (dc=EXAMPLE,dc=COM) auf den Wert setzen denn du weiter oben angegeben hast.
$ ldappasswd -x -w "group-e" -D "cn=admin,dc=EXAMPLE,dc=COM" \
-S cn=admin,dc=EXAMPLE,dc=COM
GROUP-E für LDAP konfigurieren
Jetzt als Benutzer "config" in GROUP-E einloggen und alle "Ldap Konfiguration" Einträge unter dem Tab Konfiguration auf die richtigen Werte setzen. Eine genaue Anleitung wie die Werte einzutragen sind findest du hier. Jetzt müsste unter "Install Check" in dem Bereich "GROUP-E Ldap" alles auf OK stehen.
Samba mit LDAP Zugriff einrichten
Kopiere die Datei doc/examples/LDAP/samba/smb.conf nach /etc/smb.conf. Diese Konfigurationsdatei ist nur ein Beispiel die für diese Installation erstellt worden ist. Sie muss auf die jeweiligen Bedürfnisse angepasst werden. Folgenden Platzhalter müssen ersetzt werden.
- YOUR_DOMAIN mit der weiter oben eingesetzten Samba Domäne ersetzen.
- SERVER_NAME einen NETBIOS Namen für den Server einsetzen (Standard ist LINUX)
- dc=YOURDOMAIN,dc=YOURCOUNTRY die verwendete LDAPROOT einsetzen.
$ cp doc/examples/LDAP/samba/smb.conf /etc/samba
Jetzt müssen die Verzeichnisse die die Profile und Netlogon Skripte enthalten erstellt werden und die Rechte richtig gesetzt werden.
$ mkdir -p /var/lib/samba/profdata $ chown root:root /var/lib/samba/profdata $ chmod 755 /var/lib/samba/profdata $ mkdir -p /var/lib/samba/profiles $ chown root:root /var/lib/samba/profiles $ chmod 755 /var/lib/samba/profiles $ mkdir -p /var/lib/samba/netlogon/scripts
Samba benötigt Schreibrechte auf das LDAP Directory. Dazu wird das Passwort von cn=admin,dc=EXAMPLE,dc=COM in die Samba Password Datenbank geschrieben.Das Passwort ist natürlich mit dem weiter oben verwendeten zu ersetzen.
$ smbpasswd -w "group-e"
Den Samba Server neu starten und mit pdbedit überprüfen ob Samba die Benutzer root und nobody im Directory auslesen kann.
$ /etc/init.d/samba restart $ pdbedit -L
Mkntpwd und Smbldap Tools einrichten
GROUP-E muss Windows NT Passwörter erstellen können. Dazu verwenden wir das externe Programm "mkntpwd". Da es für Debian leider kein Paket gibt muss das Programm selbst kompiliert werden.
$ wget http://www.nomis52.net/data/mkntpwd.tar.gz $ tar -zxf mkntpwd.tar.gz $ cd mkntpwd $ make $ cp mkntpwd /usr/local/sbin $ chmod 555 /usr/local/sbin/mkntpwd $ cd .. $ rm -r mkntpwd/ $ rm mkntpwd.tar.gz
Jetzt können die Pakete gcc, make unnd libc6-dev wieder entfernt werden. Die haben auf einem Server auch nichts zu suchen.
$ apt-get remove --purge gcc make libc6-dev
Die Smbldap-tools werden benötigt um automatisch einen Unix Account zu erstellen wenn eine neue Workstation in die Samba Domäne aufgenommen wird. Wenn das nicht nötig ist kann man die Smbldap-Tools wieder deinstallieren. Die Smbldap Aufrufe in der smb.conf müssen dann entfernt werden. Für die Konfiguration der Smbldap-tools verwendet man am besten die Beispieldateien des Paketes.
$ zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > \ /etc/smbldap-tools/smbldap.conf $ cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/ \ smbldap_bind.conf
Öffne die Dateien mit einem Editor und ändere die Parameter das sie deinen Einstellungen entsprechen. Folgende Parameter müssen geändert werden.
/etc/smbldap-tools/smbldap.conf
- SID: entspricht der SID in deinem LDAP Dump
| Tipp: Die SID kann auch mit dem Aufruf "net getlocalsid YOURWORKGROUP" direkt aus dem laufenden Samba ausgelesen werden. |
- suffix: entspricht der LDAPROOT die du oben gesetzt hast.
- sambaDomain: Domänenname von Samba
- sambaUnixIdPooldn: auf "sambaDomainName=YOURSAMBADOMAIN,${suffix}" setzen.
/etc/smbldap-tools/smbldap_bind.conf
- slaveDN="cn=admin,YOUR_LDAPROOT"
- slavePw="YOUR_PASSWORD"
- masterDN="cn=admin,YOUR_LDAPROOT"
- masterPw="YOUR_PASSWORD"
Jetzt noch die richtigen Rechte setzen...
$ chmod 0644 /etc/smbldap-tools/smbldap.conf $ chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
...und den Zugriff über smbldap testen.
$ smbldap-usershow root
NSSwitch und PAM einrichten
Die Datei /etc/nsswitch.conf muss folgendermaßen geändert werden.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
In der Datei /etc/libnss_ldap.conf müssen folgende Parameter auf die richtigen Werte gesetzt werden.
base dc=YOUR,dc=BASE
host 127.0.0.1
ldap_version 3
pam_password exop
bind_timelimit 30
timelimit 30
pam_filter objectclass=posixAccount
nss_base_passwd dc=YOUR,dc=BASE?sub
nss_base_shadow ou=Users,dc=YOUR,dc=BASE?one
nss_base_group ou=Groups,dc=YOUR,dc=BASE?one
Jetzt kann das Linux System Benutzer und Gruppen aus dem LDAP Directory lesen. Mit den folgenden Befehlen kann man das überprüfen.
$ getent passwd $ getent group
Für die Authentifizierung über PAM müssen im Verzeichnis /etc/pam.d folgende Dateien mit einem LDAP Eintrag erweitert werden. Dieser Eintrag muss vor der normalen Authentifizierung stehen und als sufficient (ausreichend) markiert werden. Hier 2 Beispiele.
/etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
/etc/pam.d/common-auth
auth required pam_nologin.so
auth sufficient pam_ldap.so
auth sufficient pam_unix.so shadow use_first_pass
auth required pam_deny.so
Cyrus IMAP Server einrichten
Der Cyrus IMAP Server wird hier so konfiguriert das er Passwörter in "PLAINTEXT" mit dem Saslauthdaemon austauscht. Der Saslauthdaemon authentifiziert den Benutzer dann über PAM. Wer eine sicherere Lösung benötigt sollte sich näher mit den SASL Mechanismen von Cyrus beschäftigen. In Zukunft werden wir auch im WIKI Security Lösungen anbieten.
In der Konfigurationsdatei /etc/imapd.conf müssen folgende Parameter gesetzt sein.
admins: cyrus allowplaintext: yes sasl_mech_list: PLAIN LOGIN sasl_minimum_layer: 0 sasl_pwcheck_method: saslauthd
Standarmäßig ist der Saslauthdaemon bei Debian ausgeschalten. Um in einzuschalten muss in der Datei /etc/default/saslauthd der Parameter "START=yes" gesetzt werden. Danach den Daemon restarten.
$ /etc/init.d/saslauthd restart
Zum Schluss erhält noch der Benutzer "cyrus" ein Passwort. Dieses Passwort muss später bei GROUP-E "Config" eingtragen werden. Also bitte wieder merken.
$ passwd cyrus (enter cyrus password when prompted)
Erst die Verzeicnisse anlegen.
$ mkdir -p /var/spool/postfix/var/run/cyrus/socket/ $ chown cyrus:mail -R /var/spool/postfix/var/run/*
Und jetzt die Datei /etc/cyrus.conf ändern.
lmtpunix<------>cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20 ändern auf lmtpunix<------>cmd="lmtpd" listen="/var/spool/postfix/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
Postfix SMTP einrichten
Als Grundlage für die Postfix Konfiguration kannst du die Beispiel-Datei doc/examples/Postfix-ldap/main.cf verwenden. Dieses Beispiel enthält keinen Spam- und Virenschutz und soll nur eine Möglichkeit zeigen wie man die GROUP-E Mailaliase mit Postfix verwenden kann.
$ cp doc/examples/Postfix-ldap/main.cf /etc/postfix
Folgende Parameter innerhalb von main.cf müssen auf die lokalen Gegebenheiten angepasst werden werden.
- myhostname = YOUR_FQDN der FQDN des Systems kann z.B. mail.example.com sein
- mydestination = $myhostname, localhost.localdomain, localhost, YOUR_DOMAINS hier muss die lokale Domäne eingtragen werden welche Postfix an Cyrus weiterleiten soll z.B. example.com
- relayhost = A_RELAY_IF_YOU_NEED_ONE wenn das System direkt E-Mails versenden soll muss dieser Parameter leer bleiben.
- mynetworks = 127.0.0.0/8, YOUR_NETWORK der IP Bereich den Postfix als lokal ansieht. Von hier aus werden ohne Prüfung E-MAils angenommen.
- inet_interfaces = localhost, YOUR_IP_ADDRESS die IP Adressen bei der Postfix auf Anfragen wartet
- PostfixUser_search_base = ou=Users,dc=YOUR,dc=BASE der Zweig im LDAP Verzeichnis der die Benutzer enthält.
Der Benutzer "postfix" muss in der Gruppe "mail" sein um E-Mails an Cyrus übergeben zu können.
$ adduser postfix mail
Jetzt Postfix neu starten
$ /etc/init.d/postfix restart
Einstellungen im Config Interface
Jetzt noch einmal als "Config" einloggen und die E-Mail Parameter von oben unter Konfiguration/E-Mail eintragen. Eine Übersicht über die Parameter und ihre Verwendung findest du hier. Danach nochmal auf "Install Check" und überprüfen ob alles auf OK steht.
Fertig !
Du kannst dich jetzt als Benutzer "sysadmin" mit Passwort "sysadmin" einloggen. Als erstes solltest du das Passwort von "sysadmin" unter "Persönliche Einstellungen" neu setzen. "Persönliche Einstellungen" findest du links neben dem "Zeiterfassung starten" Link. Hier kann auch die Sprache verändert werden.
Hilfe zur Konfiguration findest du unter



