Persönliche Werkzeuge

Administratorenhilfe:Installation LDAP

Aus GROUP-E

Wechseln zu: Navigation, Suche

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

Bild:Achtung.png 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.

Bild:Achtung.png 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)
Tipp: Unter Debian läuft der SMTP Postfix chrooted. Deswegen "sieht" Postfix die Standard LMTP Datei unter /var/run/cyrus/socket/lmtp nicht. Wir empfehlen daher die Startparameter in cyrus.conf auf /var/spool/postfix/var/run/cyrus/socket/lmtp zu ändern.

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

 
Powered by MediaWiki
GNU Free Documentation License 1.2