Diskussion:Entwicklungsumgebung/LDAP Einrichtung

Aus Delixs
Version vom 10. Juli 2009, 09:56 Uhr von Schoffer (Diskussion | Beiträge) (verschoben nach Diskussion:Entwicklungsumgebung/Userverwaltung)
Zur Navigation springen Zur Suche springen

Weitere Konfiguration des LDAP hier:

Installation des LDAP (E-Mail von Hans-Dietrich Kirmse)

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
cp samba.schema /etc/ldap/schema/


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

Nachtrag zu PAM: --Harry 2009/03/29 in DD

Problem: smbldap-passwd nimmt nur den Namen als Parameter an, die Krücke

 'echo -e "geheim\ngehein\n" | smbldap-passwd mmustermann'

als Konstruktion mag mir gar nicht so gefallen im Skript!

Eigentlich ist nur ein "passwd user" erforderlich. Den Rest kann PAM erledigen. Auch das erstellten der NT & LM hashes  :-)

 alias cgrep='grep -Ev '\(^$|^space:*#|^space:*;)'\'
 cgrep /etc/pam.d/common-password
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

und ein

 aptitude install libpam-smbpass

6. die /etc/ldap/ldap.conf (Datei im Paket http://www.arktur.th.schule.de/delixs-ldap.zip)

     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
             (verschü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:1002: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"

Aus DD-Mails von Hans-Dietrich Kirmse 04./05.02.09