Benutzer:Dorn/doku/ldap.txt

Aus Delixs
Zur Navigation springen Zur Suche springen
==== Installation des LDAP =============

1. wir stellen das samba.schema bereit (wer das schon gemacht hatte,
    dann kann das natürlich jetzt entfallen)

     aptitude install samba-doc

     cd /usr/share/doc/samba-doc/examples/LDAP
     gunzip samba.schema.gz



2. aptitude install slapd

     --|Konfiguriere slapd|--

     Administrator-Passwort:                     geheim



3. aptitude install ldap-utils libsasl2-modules




4. aptitude install libnss-ldap

     --|Konfiguriere libnss-ldap|--

     URI des LDAP-Servers verlangt:               ldap://127.0.0.1:389/


     Eindeutiger Name (DN - ...) der Suchbasis:   dc=delixs-schule,dc=de

     Benutzte LDAP-Version:                       3

     LDAP-Zugang für Root:                cn=admin,dc=delixs-schule,dc=de

     Passwort des LDAP-Zugangs für Root:        geheim




5. aptitude install libpam-ldap
    (Aufruf entfällt, da gleich bei 3. automatisch mit installiert wurde)

     --|Konfiguriere libpam-ldap|--

     Lokaler root zum Datenbank-Administrator machen:        Ja

     Benötigt die LDAP-Datenbank eine Anmeldung             Nein

     LDAP-Zugang für Root:               cn=admin,dc=delixs-schule,dc=de

     Passwort des LDAP-Zugangs für root:                    geheim




6. die /etc/ldap/ldap.conf                                   (Datei im Paket)

      BASE dc=delixs-schule,dc=de
      URI  ldap://localhost

      SIZELIMIT       12
      TIMELIMIT       15
      DEREF           always




7. die /etc/ldap/slapd.conf                                  (Datei im Paket)

    das samba-Schema wurde schon am Anfang kopiert, jetzt einbinden:

      include /etc/ldap/schema/samba.schema
                               (*hinter* den anderen Zeilen eintragen)

      loglevel   384   (wenn Entwicklung abgeschlossen, auf 0 setzen)
      sizelimit 3000
      backend hdb               gelassen

      rootdn      "cn=admin,dc=delixs-schule,dc=de"
      rootpw      wieder ergänzt, da in der Literatur so angegeben
                  erstellt mit:

                     cd /etc/ldap
                     slappasswd -u >> slapd.conf

              (verschlüsselte Passwort angehangen, mit mcedit verschieben)




8. /etc/libnss-ldap.conf                                    (Datei im Paket)

     Anm. von Harry: Bevor man irgendwas mit NSS und/oder PAM testen oder
      konfigurieren will, muss der nscd ausgeschaltet werden:

        /etc/init.d/nscd stop

      Die /etc/libnss-ldap.conf  wurde folgendermaßen abgeändert

        base dc=delixs-schule,dc=de
        deref   always
        uri ldap://127.0.0.1/
        ldap_version 3
        rootbinddn  cn=admin,dc=delixs-schule,dc=de
        scope sub
        bind_timelimit 30
        bind_policy soft
        nss_connect_policy persist

     /etc/init.d/nscd start




9. Neustart des slapd

      /etc/init.d/slapd restart




10. Test

      'slapcat'  sollte 2 Entries anzeigen
        Wenn man die Ausgabe umleitet mit 'slapcat > test.ldif', dann
        kommen 2 Warnungen




11. diese Warnungen beseitigen               (entfällt bei der Datei im Paket)

     in /etc/ldap/slapd.conf  müssen folgende Zeilen (105, 128*)
     bearbeitet werden:

       access to attrs=userPassword,shadowLastChange
          by dn="cn=admin,dc=delixs-schule,dc=de" write
          by anonymous auth
          by self write
          by * none

       access to *
          by dn="cn=admin,dc=delixs-schule,dc=de" write
          by * read

   jeweils die 2. Zeile (also 'by dn="cn=admin,dc=delixs-schule,dc=de"
   write') muss rausgelöscht werden (nicht nur auskommentiert!)




12. Initialisierung des LDAPs

   Da die smbldap-tools davon ausgehen, dass alle Gruppen unter einer 'ou'
   zu finden sind, wird nun doch diese sehr einfache Struktur gewählt.


             .----- ou=groups
            /
           /
          /                   .------ ou=people
         /                   /
LDAPBASE -------- ou=accounts
         \                   \
          \                   `------ ou=machines
           \
            \
             `----- cn=admin


Anmerkung: die Einträge für sambaDomain und für DHCP kommen später
            die Einträge für LDAPBASE und cn=admin sind schon drin


das LDIF-File http://www.arktur.th.schule.de/initldap.ldif   (Datei im Paket)

wird so eingespielt:

   ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/initldap.ldif

rückgängig gemacht werden kann es mit dem passenden Killfile    (Datei im Paket)
http://www.arktur.th.schule.de/killinitldap.del

   ldapdelete -x -D cn=admin,dc=delixs-schule,dc=de -W -f /root/killinitldap.del




13. Konfiguration von NSS

/etc/nsswitch.conf                                        (Datei im Paket)
-------------------

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap




14. Konfiguration von PAM

als root eine 2. Konsole aufgemacht!

/etc/pam_ldap.conf                                         (Datei im Paket)
------------------
base dc=delixs-schule,dc=de
uri ldap://127.0.0.1/                         # geändert
ldap_version 3
rootbinddn cn=admin,dc=delixs-schule,dc=de
scope sub                                     # geändert
bind_policy soft                              # geändert
pam_password exop                             # geändert

Anm.: wo geändert steht, da musste ich den Eintrag erstellen.
Die zwei anderen Einträge waren schon so.

/etc/pam.d/common-account                                  (Datei im Paket)
-------------------------
account [success=1 default=ignore]  pam_unix.so
account required                    pam_ldap.so
account required                    pam_permit.so

/etc/pam.d/common-auth                                      (Datei im Paket)
----------------------
auth    [success=1 default=ignore]  pam_unix.so
auth    required      pam_ldap.so use_first_pass ignore_authinfo_unavail
auth    required                    pam_permit.so

/etc/pam.d/common-password                                  (Datei im Paket)
--------------------------
password    [success=1 default=ignore]  pam_unix.so nullok obscure min=4 max=8 md5
password    required         pam_ldap.so try_first_pass
password    required         pam_smbpass.so nullok use_authtok try_first_pass
password    required         pam_permit.so

/etc/pam.d/common-session    (im Paket)
-------------------------
session     required          pam_unix.so
session     required          pam_mkhomedir.so skel=/etc/skel umask=0022



15. Ergänzungen an der /etc/ldap/slapd.conf               (Datei im Paket)

folgende indexe sollten angelegt werden:

#index   default                            eq
index   objectClass                         eq
index   uidNumber                           eq
index   gidNumber                           eq
index   uid,displayName                     eq
index   cn,sn                               pres,eq,sub
index   memberUid                           eq
index   sambaSID                            eq
index   sambaPrimaryGroupSID                eq
index   sambaDomainName                     eq

bei den ACLs kommentieren wir diese aus:
(Anm.: beim Testen unter Samba ging search nicht)

    access to dn.base="" by * read



16. Neustart des LDAP

   /etc/init.d/slapd restart



17. Testen der PAM-Konfiguration

die Datei unter

   http://www.arktur.th.schule.de/mmustermann.ldif              (Datei im Paket)

in den LDAP einspielen mit

    ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/mmustermann.ldif

    damit automatisch das Homeverzeichnis erstellt werden kann, legen
    wir noch das Verzeichnis /home/students/ an


jetzt sollte der Aufruf von

a) anmelden auf einer weiteren Console mit 'mmustermann' und dem Passwort 'geheim'

b) 'getent passwd mmustermann'  liefert

  mmustermann:x:2000:102:Manfred Mustermann,testklasse:/home/schueler/mmustermann:/bin/bash

c) 'id mmustermann' liefert

     uid=2000(mmustermann) gid=1002(crontab) Gruppen=1002(crontab)

d)  mit 'passwd mmustermann' kann man das Passwort ändern

Es ging hier nur um den Test der PAM-Konfiguration, also diesen User
wieder löschen.  (eine lange Zeile!)

 ldapdelete -x -D "cn=admin,dc=delixs-schule,dc=de" -W "uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de"





Dieser Text wurde eingearbeitet in Kapitel: Entwicklungsumgebung/LDAP_User

--Schoffer 11:32, 4. Mai 2009 (UTC)