Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| fortgeschrittene:samba-ldap-pdc [2011/04/07 16:17] iw [PDC mit LDAP Backend] | fortgeschrittene:samba-ldap-pdc [2013/10/16 15:52] (aktuell) | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== PDC mit LDAP Backend ====== | ====== PDC mit LDAP Backend ====== | ||
| - | Vorraussetzung: slapd wie in [[samba-ldap]] beschrieben konfiguriert. | + | Vorraussetzung: slapd wie in [[samba-ldap]] beschrieben konfiguriert und [[nss-ldap]] konfiguriert. | 
| Dieses Beispiel beschreibt eine minimale Konfiguration.  | Dieses Beispiel beschreibt eine minimale Konfiguration.  | ||
| - | |||
| ===== Samba ===== | ===== Samba ===== | ||
| Zeile 20: | Zeile 19: | ||
| #LDAP Anbindung: | #LDAP Anbindung: | ||
| passdb backend = ldapsam:ldap://ldap1.villa.local | passdb backend = ldapsam:ldap://ldap1.villa.local | ||
| - | ldap suffix = dc=villa,dc=local | + | ldap suffix  = dc=villa,dc=local | 
| - | ldap admin dn = "cn=admin,dc=villa,dc=local" | + | ldap admin dn = "cn=admin,dc=villa,dc=local" | 
| - | ldap user suffix = ou=people | + | ldap user suffix  = ou=people | 
| - | ldap group suffix = ou=groups | + | ldap group suffix  = ou=groups | 
| ldap machine suffix = ou=computers | ldap machine suffix = ou=computers | ||
| + | ldap idmap suffix  = ou=people | ||
| ldap ssl = off | ldap ssl = off | ||
| - | ldapsam:trusted = yes | + | obey pam restrictions = no | 
| + | #ldapsam:trusted = yes | ||
| [daten] | [daten] | ||
| Zeile 36: | Zeile 37: | ||
| Debian | Debian | ||
| /etc/init.d/samba restart | /etc/init.d/samba restart | ||
| + | Das Passwort des in der ''smb.conf'' genannten LDAP Admin muß dem Samba Server im Klartext vorliegen: | ||
| + | smbpasswd -W | ||
| ==== Testen ==== | ==== Testen ==== | ||
| Zeile 41: | Zeile 44: | ||
| nmblookup -m kurs#1b | nmblookup -m kurs#1b | ||
| + | ===== Rechner der Domäne hinzufügen ===== | ||
| + | Dazu gibt es 4 Möglichkeiten: | ||
| + | * von Hand | ||
| + | * mit den smbldap-tools | ||
| + | * ''ldapsmb'' | ||
| + | * und ab Samba 3.0.25 kann samba das mit den Parametern ''ldapsam:trusted'' und ''ldapsam:editposix'' selbst | ||
| - | ===== LDAP Verzeichnis anpassen ===== | + | ==== von Hand ==== | 
| + | === LDAP Verzeichnis anpassen === | ||
| Im LDAP Verzeichnis müssen nun noch Einträge für | Im LDAP Verzeichnis müssen nun noch Einträge für | ||
| * den in der ''smb.conf'' im Parameter ''ldap machine suffix'' genannten Teilbaum, | * den in der ''smb.conf'' im Parameter ''ldap machine suffix'' genannten Teilbaum, | ||
| - | * die Gruppe, der die Maschininaccounts zugeordnet werden sollen | + | * die Gruppe, der die Maschinenaccounts zugeordnet werden sollen | 
| * 3 Gruppen mit den Namen "domadmin", "domusers", "domguests" und der jeweils genannten sambaSID  | * 3 Gruppen mit den Namen "domadmin", "domusers", "domguests" und der jeweils genannten sambaSID  | ||
| * und einen Domänenadministrator  | * und einen Domänenadministrator  | ||
| Zeile 57: | Zeile 67: | ||
| </code> | </code> | ||
| <file> | <file> | ||
| - | dn: ou=computers,$DOMAIN | + | TODO muss neu erzerugt werden | 
| - | objectClass: top | + | |
| - | objectClass: organizationalUnit | + | |
| - | ou: computers | + | |
| - | + | ||
| - | dn: cn=workstations,ou=groups,$DOMAIN | + | |
| - | objectClass: top | + | |
| - | objectClass: posixGroup | + | |
| - | gidNumber: 515 | + | |
| - | cn: workstations | + | |
| - | + | ||
| - | dn: cn=domadmins,ou=groups,$DOMAIN | + | |
| - | objectClass: posixGroup | + | |
| - | objectClass: sambaGroupMapping | + | |
| - | gidNumber: 512 | + | |
| - | cn: domadmins | + | |
| - | sambaSID: $SID-512 | + | |
| - | sambaGroupType: 2 | + | |
| - | displayName: Domain Admins | + | |
| - | description: Domain Administrators | + | |
| - | + | ||
| - | dn: cn=domusers,ou=groups,$DOMAIN | + | |
| - | objectClass: posixGroup | + | |
| - | objectClass: sambaGroupMapping | + | |
| - | gidNumber: 513 | + | |
| - | cn: domusers | + | |
| - | sambaSID: $SID-513 | + | |
| - | sambaGroupType: 2 | + | |
| - | displayName: Domain Users | + | |
| - | description: Domain Users | + | |
| - | + | ||
| - | dn: cn=domguests,ou=groups,$DOMAIN | + | |
| - | objectClass: posixGroup | + | |
| - | objectClass: sambaGroupMapping | + | |
| - | gidNumber: 514 | + | |
| - | cn: domguests | + | |
| - | sambaSID: $SID-514 | + | |
| - | sambaGroupType: 2 | + | |
| - | displayName: Domain Guests | + | |
| - | description: Domain Guests Users | + | |
| - | + | ||
| - | dn: uid=smbadmin,ou=people,$DOMAIN | + | |
| - | objectClass: top | + | |
| - | objectClass: posixAccount | + | |
| - | objectClass: account | + | |
| - | cn: Samba Domain Admin | + | |
| - | uid: smbadmin | + | |
| - | uidNumber: 10001 | + | |
| - | gidNumber: 512 | + | |
| - | homeDirectory: /home/smbadmin | + | |
| - | loginShell: /bin/false | + | |
| - | LDIF | + | |
| </file> | </file> | ||
| - | + | === Domänenadmin anpassen === | |
| - | ===== Domänenadmin anpassen ===== | + | |
| smbpasswd -a smbadmin | smbpasswd -a smbadmin | ||
| Unter Windows hat der Domänenadmin immer die RID 500: | Unter Windows hat der Domänenadmin immer die RID 500: | ||
| Zeile 125: | Zeile 83: | ||
| Überprüfen: | Überprüfen: | ||
| net -U smbadmin rpc rights list smbadmin | net -U smbadmin rpc rights list smbadmin | ||
| + |  | ||
| + | Alternativ: | ||
| + | net sam rights grant ntadmin SeMachineAccountPrivilege SeAddUsersPrivilege | ||
| + | |||
| - | ===== Rechner der Domäne hinzufügen ===== | + | === Rechner hinzufügen === | 
| Wie bei normalen Benutzern auch muß zu einem Samba-Maschinen-Account auch ein Unix/Linux Account existieren. Um einen Rechner mit dem Namen "vm2000" der Domäne hinzuzufügen sind daher folgende Schritte notwendig: | Wie bei normalen Benutzern auch muß zu einem Samba-Maschinen-Account auch ein Unix/Linux Account existieren. Um einen Rechner mit dem Namen "vm2000" der Domäne hinzuzufügen sind daher folgende Schritte notwendig: | ||
| Zeile 144: | Zeile 106: | ||
| loginShell: /bin/false | loginShell: /bin/false | ||
| uid: $MACHINE$ | uid: $MACHINE$ | ||
| + | |||
| LDIF | LDIF | ||
| </file> | </file> | ||
| - | samba-Maschinen-Account anlegen: | + | Jetzt kann der Rechner unter Windows der Domaene hinzugefügt werden. (( samba-Maschinen-Account anlegen: | 
| smbpasswd -a -m $MACHINE | smbpasswd -a -m $MACHINE | ||
| + | )) | ||
| - | Jetzt kann der Rechner unter Windows der Domaene hinzugefügt werden. | + | ==== smbldap-tools ==== | 
| - | Dazu gibt es 4 Möglichkeiten: | + | ''/etc/samba/smb.conf'' : | 
| - | * von Hand | + | <file> | 
| - | * mit den smbldap-tools | + | [global] | 
| - | * ''ldapsmb'' | + | </file> | 
| - | * und ab Samba 3.0.25 kann samba das mit den Parametern ''ldapsam:trusted'' und ''ldapsam:editposix'' selbst | + | <file> | 
| + | ldap delete dn = Yes | ||
| + | unix password sync = Yes | ||
| + | passwd program = /usr/sbin/smbldap-passwd %u | ||
| + | add user script = /usr/sbin/smbldap-useradd -m "%u" | ||
| + | delete user script = /usr/sbin/smbldap-userdel "%u" | ||
| + | add machine script = /usr/sbin/smbldap-useradd -t 2 -w "%u" | ||
| + | add group script = /usr/sbin/smbldap-groupadd -a "%g" | ||
| + | delete group script = /usr/sbin/smbldap-groupdel "%g" | ||
| + | add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" | ||
| + | delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" | ||
| + | set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" | ||
| + | </file> | ||
| + | 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 | ||
| + | ''/etc/smbldap-tools/smbldap_bind.conf'' : | ||
| + | <file> | ||
| + | slaveDN="cn=admin,dc=linuxhotel,dc=de" | ||
| + | slavePw="villa" | ||
| + | masterDN="cn=admin,dc=linuxhotel,dc=de" | ||
| + | masterPw="villa" | ||
| + | </file> | ||
| + | |||
| + | ''/etc/smbldap-tools/smbldap.conf'' : | ||
| + | <file> | ||
| + | #SID="S-1-5-21-2320849130-3131792283-2083377348" | ||
| + | </file> | ||
| + | <file> | ||
| + | sambaDomain="kurs" | ||
| + | </file> | ||
| + | <file> | ||
| + | slaveLDAP="localhost" | ||
| + | </file> | ||
| + | <file> | ||
| + | masterLDAP="localhost" | ||
| + | </file> | ||
| + | <file> | ||
| + | ldapTLS="0" | ||
| + | </file> | ||
| + | <file> | ||
| + | suffix="dc=linuxhotel,dc=de" | ||
| + | </file> | ||
| + | <file> | ||
| + | usersdn="ou=People,${suffix}" | ||
| + | </file> | ||
| + | <file> | ||
| + | idmapdn="ou=People,${suffix}" | ||
| + | </file> | ||
| + | <file> | ||
| + | userSmbHome="" | ||
| + | </file> | ||
| + | <file> | ||
| + | userProfile="" | ||
| + | </file> | ||
| + | <file> | ||
| + | userScript="" | ||
| + | </file> | ||
| + | chmod 0644 /etc/smbldap-tools/smbldap.conf | ||
| + | chmod 0600 /etc/smbldap-tools/smbldap_bind.conf | ||
| + | smbldap-populate -a smbadmin -e /tmp/samba.ldif | ||
| + | ''/tmp/samba.ldif'' prüfen (( Todo: ''smbadmin'' checken: ''uidNumber'' und ''gidNumber'' auf einen anderen Wert als 0 ändern ... )) | ||
| + | ldapadd -x -W -D cn=admin,dc=example,dc=com -f /tmp/samba.ldif -h ldap1.example.com | ||
| + | (( oder direkt | ||
| + | smbldap-populate -a smbadmin | ||
| + | eingeben und nachträglich ''uidNumber'' und ''gidNumber'' auf einen anderen Wert als 0 ändern | ||
| + | )) | ||
| + | |||
| + | |||
| + | === Doku === | ||
| + | * ''/usr/share/doc/smbldap-tools/README.Debian.gz'' | ||
| + | |||
| + | ==== ldapsmb ==== | ||
| Alternativ gibt es bei SuSE das Paket ''ldapsmb'' als einfaches Beispiel für ein ''add machine script'': | Alternativ gibt es bei SuSE das Paket ''ldapsmb'' als einfaches Beispiel für ein ''add machine script'': | ||
| ( noch nicht getestet ) | ( noch nicht getestet ) | ||
| - | <file> | + | ==== ldapsam:editposix ==== | 
| - | add user script = ldapsmb -a -u | + | siehe | 
| - | delete user script = ldapsmb -d -u | + | man smb.conf | 
| - | add group script = ldapsmb -a -g | + | |
| - | delete group script = ldapsmb -d -g | + | Ist beschrankt auf ''obejectclass=account'', kann aktuell noch nicht mit inetOrgPerson u.ä. umgehen. | 
| - | add user to group script = ldapsmb -j -u | + | |
| - | delete user from group script = ldapsmb -j -u | + | |
| - | set primary group script = ldapsmb -m -u | + | |
| - | add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$ | + | |
| - | </file> | + | |
| - | Auch die Idealix-Skripte sind für diesen Einsatzfall geschrieben worden. | ||
| - | Debian-Paket: ''smbldap-tools'' | ||
| ====== Webmin - Modul LDAP Useradmin ====== | ====== Webmin - Modul LDAP Useradmin ====== | ||
| Zeile 188: | Zeile 216: | ||
| samba_domain=S-1-5-21-2516115203-501549975-3175969160 | samba_domain=S-1-5-21-2516115203-501549975-3175969160 | ||
| </file> | </file> | ||
| - | + |  | |
| - | ====== Die smbldap-tools von IDEALX ====== | + | |
| - | Auf Debian mit Samba 3.0.24 und den mitgelieferten smbldap-tools funktionierte das Hinzufügen von Maschinenaccounts zu einem PDC. Getestet von MichaelWandel. | + | |
| Zeile 196: | Zeile 222: | ||
| * Howto für SuSE: http://en.opensuse.org/Howto_setup_SUSE_as_SAMBA_PDC_with_OpenLDAP%2C_DYNDNS_and_CLAM | * Howto für SuSE: http://en.opensuse.org/Howto_setup_SUSE_as_SAMBA_PDC_with_OpenLDAP%2C_DYNDNS_and_CLAM | ||
| * Alternatives LDAP Setup : http://wiki.samba.org/index.php/Ldapsam_Editposix | * Alternatives LDAP Setup : http://wiki.samba.org/index.php/Ldapsam_Editposix | ||
| + | |||