Entwicklungsumgebung/LDAP Einrichtung: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
K (Link)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
__NOTOC__
{{Uberarbeiten}}
{{EditStatus|1|Kirmse}}  




== Konfiguration von SAMBA (Teil 2 - SAMBA-LDAP-Einrichtung) ==
== Konfiguration von SAMBA (Teil 2 - SAMBA-LDAP-Einrichtung) ==


Nach der Installation und Grundeinrichtung des LDAP nach der Beschreibung unter: [[Entwicklungsumgebung/LDAP]] und der Installation und Grundeinrichtung von SAMBA nach der Beschreibung unter: [[Entwicklungsumgebung/Samba]] erfolgt nun die Konfiguration zu einem Schulserver:
Nach der Installation und Grundeinrichtung des LDAP nach der Beschreibung unter: [[Entwicklungsumgebung/LDAP]] und der Installation und Grundeinrichtung von SAMBA nach der Beschreibung unter: [[Entwicklungsumgebung/Samba]] erfolgt nun die Konfiguration zu einem Schulserver.


=== Gruppen einrichten ===


=== Die Datei /etc/ldap/ldap.conf  ===
Nun können Sie die Gruppen im LDAP anlegen mit den Befehlen:




      BASE dc=delixs-schule,dc=de
  smbldap-groupadd -g 1000 -a wsuser
      URI  ldap://localhost
  smbldap-groupadd -g 1001 -a teacher
      SIZELIMIT      12
  smbldap-groupadd -g 1002 -a students
      TIMELIMIT      15
  smbldap-groupadd -g 1003 -a exam
      DEREF          always
  smbldap-groupadd -g 1004 -a machines
  smbldap-groupadd -g 1005 -a administration
  smbldap-groupadd -g 1006 -a online
  smbldap-groupadd -g 1007 -a material
  smbldap-groupadd -g 1008 -a internet
  smbldap-groupadd -g 1009 -a www
  smbldap-groupadd -g 1010 -a fachl
  smbldap-groupadd -g 1011 -a tadmin
  smbldap-groupadd -g 1012 -a cadmin
  smbldap-groupadd -g 1013 -a hadmin




=== Die Datei /etc/ldap/slapd.conf ===


das samba-Schema wurde schon am Anfang kopiert, jetzt einbinden:
=== Population im LDAP erzeugen ===


  include /etc/ldap/schema/samba.schema
Mit dem Befehl "smbldap-populate" kann direkt der LDAP mit der Population gefüllt werden. Die Einträge haben gleich die richtige SID (wegen der schon fertig konfigurierten smbldap.conf). Bevor der Befehl ausgeführt wird, sind noch einige Leerzeichen zu entfernen. Auch bei den Einträgen "sambaGroupType" sind Änderungen vorzunehmen. Die Gruppe 2 ist die Domänengruppe und die Gruppe 4 ist für lokale Gruppen. Eine Gruppe 5 gibt es derzeit in Windows nicht. Öffnen Sie dafür in einem Editor die Datei "/usr/sbin/smbldap-populate". Ab der Zeile 280 suchen Sie nun folgende Einträge und entfernen jeweils ein Leerzeichen:


(*hinter* den anderen Zeilen eintragen)
  dn: cn=Domain Admins    -> dn: cn=DomainAdmins
  cn: Domain Admins        -> cn: DomainAdmins
  dn: cn=Domain Users      -> dn: cn=DomainUsers
  cn: Domain Users        -> cn: DomainUsers
  dn: cn=Domain Guests    -> dn: cn=DomainGuests
  cn: Domain Guests        -> cn: DomainGuests
  dn: cn=Domain Computers  -> dn: cn=DomainComputers
  cn: Domain Computers    -> cn: DomainComputers
  cn: Administrators
  sambaGroupType: 5        -> sambaGroupType: 4
  dn: cn=Account Operators -> dn: cn=AccountOperators
  cn: Account Operators    -> cn: AccountOperators
  sambaGroupType: 5        -> sambaGroupType: 4
  dn: cn=Print Operators  -> dn: cn=PrintOperators
  cn: Print Operators      -> cn: PrintOperators
  sambaGroupType: 5        -> sambaGroupType: 4
  dn: cn=Backup Operators  -> dn: cn=BackupOperators
  cn: Backup Operators    -> cn: BackupOperators
  sambaGroupType: 5        -> sambaGroupType: 4
  cn: Replicators
  sambaGroupType: 5        -> sambaGroupType: 4


      loglevel  384  (wenn Entwicklung abgeschlossen, auf 0 setzen)
Speichern Sie die geänderte Datei nun ab und führen Sie diese dann aus:
      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:
  smbldap-populate


      cd /etc/ldap
Es wurden folgende Einträge im LDAP für Samba angelegt. Auf dem Bildschirm erscheint jeweils "adding new entry":
      slappasswd -u >> slapd.conf


(verschlüsselte Passwort wird angehangen, mit mcedit verschieben)
  ou=Idmap,dc=delixs-schule,dc=de
  uid=root,ou=people,ou=accounts,dc=delixs-schule,dc=de
  uid=nobody,ou=people,ou=accounts,dc=delixs-schule,dc=de
  cn=DomainAdmins,ou=groups,dc=delixs-schule,dc=de
  cn=DomainUsers,ou=groups,dc=delixs-schule,dc=de
  cn=DomainGuests,ou=groups,dc=delixs-schule,dc=de
  cn=DomainComputers,ou=groups,dc=delixs-schule,dc=de
  cn=Administrators,ou=groups,dc=delixs-schule,dc=de
  cn=AccountOperators,ou=groups,dc=delixs-schule,dc=de
  cn=PrintOperators,ou=groups,dc=delixs-schule,dc=de
  cn=BackupOperators,ou=groups,dc=delixs-schule,dc=de
  cn=Replicators,ou=groups,dc=delixs-schule,dc=de
  sambaDomainName=SCHULE,dc=delixs-schule,dc=de




=== Die Datei /etc/libnss-ldap.conf ===
=== Passwort für root setzen ===


Bevor man irgendwas mit NSS und/oder PAM testen oder konfigurieren will, muss der nscd ausgeschaltet werden:
Nun muss dem Domänen Benutzer "root" (das ist nicht identisch mit "root" aus dem Linux-System) das Passwort gesetzt werden, damit eine Workstation dieser Domäne beitreten kann. Das Domänen Passwort und Unix-Passwort können unterschiedlich gewählt werden. Das setzen des Passwortes "schule" erfolgt mit der Befehlszeile:


        /etc/init.d/nscd stop
  smbpasswd -w schule


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


        base dc=delixs-schule,dc=de
=== Konfiguration neu einlesen ===
        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


Nach erfolgter Änderung kann der nscd wieder eingeschaltet werden.
Nach Abschluss der Installation und Konfiguration wird noch der Dienst neu gestartet:


    /etc/init.d/nscd start
      /etc/init.d/samba restart
 
=== Neustart des slapd ===
 
      /etc/init.d/slapd restart




=== Test ===
=== Test ===


'slapcat'  sollte 2 Entries anzeigen. Wenn man die Ausgabe umleitet mit 'slapcat > test.ldif', dann kommen 2 Warnungen
Ob der Samba-Server nun auf Anfragen vom Client aus reagieren kann, testen Sie mit folgendem Befehl:
 
==== Diese Warnungen beseitigen ====
 
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!)
 
 
=== 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.
 
 
<pre>
            .----- ou=groups
            /
          /
          /                  .------ ou=people
        /                  /
LDAPBASE -------- ou=accounts
        \                  \
          \                  `------ ou=machines
          \
            \
            `----- cn=admin
</pre>
 
'''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 nun 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) oder http://www.arktur.th.schule.de/killinitldap.del
 
  ldapdelete -x -D cn=admin,dc=delixs-schule,dc=de -W -f /root/killinitldap.del
 
 
=== Konfiguration von NSS ===
 
Die datei /etc/nsswitch.conf
 
  passwd:      compat ldap
  shadow:      compat ldap
  group:       compat ldap
 


    smbclient -L alix -N


=== Konfiguration von PAM ===
Als Ergebnis sollten folgende Ausgaben auf dem Bildschirm erfolgen:


als root eine 2. Konsole aufgemacht!


Die datei /etc/pam_ldap.conf
:[[Datei:Smbclient01.png| Ausgabe smbclient]]
:''Abbildung: Ausgabe smbclient''


  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.


== Administrative Rechte einrichten (Default-ACL) ==


Die Datei /etc/pam.d/common-account
Da für die Anbindung an die verschiedenen Clientsysteme auch verschiedene Dienste auf dem delixs-Server zuständig sind (beispielsweise NFS für Linux-Clients oder SAMBA für Windows-Clients), sollten die Rechte direkt im Dateisystem des Servers gesetzt werden und nicht im SAMBA selbst.
 
  account [success=1 default=ignore]  pam_unix.so
  account required                    pam_ldap.so
  account required                    pam_permit.so
 
Die Datei /etc/pam.d/common-auth
 
  auth    [success=1 default=ignore]  pam_unix.so
  auth    required      pam_ldap.so use_first_pass ignore_authinfo_unavail
  auth    required                    pam_permit.so
 
Die Datei /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
 
Die Datei /etc/pam.d/common-session
 
  session    required          pam_unix.so
  session    required          pam_mkhomedir.so skel=/etc/skel umask=0022
 
 
 
=== Ergänzungen an der /etc/ldap/slapd.conf ===
 
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
 
=== Neustart des LDAP ===
 
  /etc/init.d/slapd restart
 
=== Testen der PAM-Konfiguration ===
 
Speichern Sie zum Test den folgenden Text in die Datei mit dem Namen "mmustermann.ldif" ab und legen diese auf dem Server unter "/root" ab.
 
<pre>
#
# Login: mmustermann
# Passwort: geheim
#
dn: uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: mmustermann
sn: mmustermann
givenName: mmustermann
uid: mmustermann
uidNumber: 2000
gidNumber: 1002
homeDirectory: /home/students/mmustermann
loginShell: /bin/bash
gecos: Schueler
displayName: mmustermann
sambaSID: S-1-5-21-22721786-4218643269-2274238902-3002
sambaAcctFlags: [U          ]
sambaNTPassword: C2AE1FE6E648846352453E816F2AEB93
userPassword:: e1NTSEF9dGpzaVNabEVaYXBiTW1PZ0JHdXlWR09xYlJLVFRJdTk=
</pre>
 
Damit das Homeverzeichnis automatisch erstellt werden kann, legen Sie noch das Verzeichnis "/home/students" an:
 
  mkdir /home/students
 
 
Jetzt spielen Sie diese Date in den LDAP ein mit dem Befehl:
 
  ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/mmustermann.ldif
 
 
Nun sollte folgendes funktionieren:
 
* anmelden auf einer weiteren Console mit 'mmustermann' und dem Passwort 'geheim'
* 'getent passwd mmustermann'  liefert
 
  mmustermann:x:2000:102:Manfred Mustermann,testklasse:/home/students/mmustermann:/bin/bash
 
* 'id mmustermann' liefert
 
    uid=2000(mmustermann) gid=1002(crontab) Gruppen=1002(crontab)
 
* mit 'passwd mmustermann' kann man das Passwort ändern
 
 
Es ging hier nur um den Test der PAM-Konfiguration, also können Sie diesen User wieder löschen. Dazu geben Sie diesen Befehl in einer einzigen langen Zeile ein:
 
ldapdelete -x -D "cn=admin,dc=delixs-schule,dc=de" -W "uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de"
 


Es würde sonst die Gefahr bestehen, das je nach Clientsystem verschiedene Rechte für ein und denselben Nutzer bestehen.


Die Beschreibung der Tests dieser Grundrechte erfolgt im Kapitel: [[Entwicklungsumgebung/ACL_Einrichtung]]




== Weblinks ==
== Weblinks ==


* http://www.arktur.th.schule.de/initldap.ldif
* http://www.arktur.th.schule.de/doku/initall.ldif
* http://www.arktur.th.schule.de/doku/initall.ldif
* http://www.arktur.th.schule.de/killinitldap.del
* http://www.openldap.org/
* http://www.openldap.org/
* http://linuxwiki.de/OpenLDAP
* http://ppbwiki.rz-berlin.mpg.de/Main/SambaPDC
* http://de.wikipedia.org/wiki/Ldap
* http://wiki.debian.org/LDAP
* http://www.webmasterpro.de/server/article/ldap.html
* http://dkluenter.gmxhome.de/
* http://dkluenter.gmxhome.de/
* http://www.debian-administration.org/article/OpenLDAP_installation_on_Debian
* http://www.debian-administration.org/article/OpenLDAP_installation_on_Debian
Zeile 275: Zeile 124:
----
----
<div align="right">[[Installation:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>
<div align="right">[[Installation:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>
Harry Jede, Hans-Dietrich Kirmse 2009
[[Kategorie:DebianSqueeze]]

Aktuelle Version vom 28. März 2011, 19:35 Uhr


Diese Seite ist momentan eine Baustelle im Zustand: 1

Wird bearbeitet von: Kirmse
Hilfe zum Bearbeitungsstatus: Hilfe:Status eines Artikels


Konfiguration von SAMBA (Teil 2 - SAMBA-LDAP-Einrichtung)

Nach der Installation und Grundeinrichtung des LDAP nach der Beschreibung unter: Entwicklungsumgebung/LDAP und der Installation und Grundeinrichtung von SAMBA nach der Beschreibung unter: Entwicklungsumgebung/Samba erfolgt nun die Konfiguration zu einem Schulserver.

Gruppen einrichten

Nun können Sie die Gruppen im LDAP anlegen mit den Befehlen:


 smbldap-groupadd -g 1000 -a wsuser
 smbldap-groupadd -g 1001 -a teacher
 smbldap-groupadd -g 1002 -a students
 smbldap-groupadd -g 1003 -a exam
 smbldap-groupadd -g 1004 -a machines
 smbldap-groupadd -g 1005 -a administration
 smbldap-groupadd -g 1006 -a online
 smbldap-groupadd -g 1007 -a material
 smbldap-groupadd -g 1008 -a internet
 smbldap-groupadd -g 1009 -a www
 smbldap-groupadd -g 1010 -a fachl
 smbldap-groupadd -g 1011 -a tadmin
 smbldap-groupadd -g 1012 -a cadmin
 smbldap-groupadd -g 1013 -a hadmin


Population im LDAP erzeugen

Mit dem Befehl "smbldap-populate" kann direkt der LDAP mit der Population gefüllt werden. Die Einträge haben gleich die richtige SID (wegen der schon fertig konfigurierten smbldap.conf). Bevor der Befehl ausgeführt wird, sind noch einige Leerzeichen zu entfernen. Auch bei den Einträgen "sambaGroupType" sind Änderungen vorzunehmen. Die Gruppe 2 ist die Domänengruppe und die Gruppe 4 ist für lokale Gruppen. Eine Gruppe 5 gibt es derzeit in Windows nicht. Öffnen Sie dafür in einem Editor die Datei "/usr/sbin/smbldap-populate". Ab der Zeile 280 suchen Sie nun folgende Einträge und entfernen jeweils ein Leerzeichen:

 dn: cn=Domain Admins     -> dn: cn=DomainAdmins
 cn: Domain Admins        -> cn: DomainAdmins
 dn: cn=Domain Users      -> dn: cn=DomainUsers
 cn: Domain Users         -> cn: DomainUsers
 dn: cn=Domain Guests     -> dn: cn=DomainGuests
 cn: Domain Guests        -> cn: DomainGuests
 dn: cn=Domain Computers  -> dn: cn=DomainComputers
 cn: Domain Computers     -> cn: DomainComputers
 cn: Administrators
 sambaGroupType: 5        -> sambaGroupType: 4
 dn: cn=Account Operators -> dn: cn=AccountOperators
 cn: Account Operators    -> cn: AccountOperators
 sambaGroupType: 5        -> sambaGroupType: 4
 dn: cn=Print Operators   -> dn: cn=PrintOperators
 cn: Print Operators      -> cn: PrintOperators
 sambaGroupType: 5        -> sambaGroupType: 4
 dn: cn=Backup Operators  -> dn: cn=BackupOperators
 cn: Backup Operators     -> cn: BackupOperators
 sambaGroupType: 5        -> sambaGroupType: 4
 cn: Replicators
 sambaGroupType: 5        -> sambaGroupType: 4

Speichern Sie die geänderte Datei nun ab und führen Sie diese dann aus:

 smbldap-populate

Es wurden folgende Einträge im LDAP für Samba angelegt. Auf dem Bildschirm erscheint jeweils "adding new entry":

 ou=Idmap,dc=delixs-schule,dc=de
 uid=root,ou=people,ou=accounts,dc=delixs-schule,dc=de
 uid=nobody,ou=people,ou=accounts,dc=delixs-schule,dc=de
 cn=DomainAdmins,ou=groups,dc=delixs-schule,dc=de
 cn=DomainUsers,ou=groups,dc=delixs-schule,dc=de
 cn=DomainGuests,ou=groups,dc=delixs-schule,dc=de
 cn=DomainComputers,ou=groups,dc=delixs-schule,dc=de
 cn=Administrators,ou=groups,dc=delixs-schule,dc=de
 cn=AccountOperators,ou=groups,dc=delixs-schule,dc=de
 cn=PrintOperators,ou=groups,dc=delixs-schule,dc=de
 cn=BackupOperators,ou=groups,dc=delixs-schule,dc=de
 cn=Replicators,ou=groups,dc=delixs-schule,dc=de
 sambaDomainName=SCHULE,dc=delixs-schule,dc=de


Passwort für root setzen

Nun muss dem Domänen Benutzer "root" (das ist nicht identisch mit "root" aus dem Linux-System) das Passwort gesetzt werden, damit eine Workstation dieser Domäne beitreten kann. Das Domänen Passwort und Unix-Passwort können unterschiedlich gewählt werden. Das setzen des Passwortes "schule" erfolgt mit der Befehlszeile:

 smbpasswd -w schule


Konfiguration neu einlesen

Nach Abschluss der Installation und Konfiguration wird noch der Dienst neu gestartet:

      /etc/init.d/samba restart


Test

Ob der Samba-Server nun auf Anfragen vom Client aus reagieren kann, testen Sie mit folgendem Befehl:

   smbclient -L alix -N

Als Ergebnis sollten folgende Ausgaben auf dem Bildschirm erfolgen:


Ausgabe smbclient
Abbildung: Ausgabe smbclient


Administrative Rechte einrichten (Default-ACL)

Da für die Anbindung an die verschiedenen Clientsysteme auch verschiedene Dienste auf dem delixs-Server zuständig sind (beispielsweise NFS für Linux-Clients oder SAMBA für Windows-Clients), sollten die Rechte direkt im Dateisystem des Servers gesetzt werden und nicht im SAMBA selbst.

Es würde sonst die Gefahr bestehen, das je nach Clientsystem verschiedene Rechte für ein und denselben Nutzer bestehen.

Die Beschreibung der Tests dieser Grundrechte erfolgt im Kapitel: Entwicklungsumgebung/ACL_Einrichtung


Weblinks



zurück | Hauptseite

Harry Jede, Hans-Dietrich Kirmse 2009