Samba PDC mit LDAP

Es wird angenommen, dass schon ein LDAP-Server im Einsatz ist. Wenn nicht dann bitte den Artikel LDAP lesen und zuerst den LDAP-Server aufsetzen. 

 

Ausgangspinformationen:

Computername: Ldapserver

Domänen Controller (Name): Server-DC

IP-Adresse des DC: 192.168.0.250 Maske: 255.255.255.0

Domäne: MONOPLAN

Gateway: 192.168.0.1

DNS: 192.168.0.200

 

Es wird ein Webbasierendes Verwaltungstool benutzt, deshalb werden wir auch ein Apache Server aufsetzten.
Folgende Pakete werden nachinstalliert.

  • samba
  • samba-client
  • apache2
  • apache2-mod_php5
  • php5-ldap
  • php5-gettext
  • php5-mcrypt
  • php5-mbstring

1.

Nach der Installation den Apache-Server starten

Ldapserver:/ # /etc/init.d/apache start

2.

Im Internet unter http://sourceforge.net/projects/lam finden Sie ein LDAP Account Manager (LAM). Downloaden und im Ordner /install speichern, dannach entpacken, Ordner umbenennen, verschieben und die Rechte ändern

Ldapserver:/ # mkdir /install
Ldapserver:/ # tar -xvf ldap-account-manager-2.7.0.tar.gz
Ldapserver:/ # mv ldap-account-manager-2.7.0 lam
Ldapserver:/ # mv lam /srv/www/htdocs/
Ldapserver:/ # cd /srv/www/htdocs/
Ldapserver:/ # chown -Rv wwwrun:www lam/

3.

Die Konfigurationsdatei muss man noch anpassen, aus diesem Grund muss man die config.cfg_sample ins config.cfg und lam.conf_sample ins lam.conf umbenennen. Außerdem muss man noch die lam.conf editieren, anpassen.

Ldapserver:/ # mv config.cfg_sample config.cfg
Ldapserver:/ # mv lam.conf_sample lam.conf

 

 

Die lam.conf anpassen

# server address (e.g. ldap://localhost:389 or ldaps://localhost:636)
serverURL: ldap://localhost:389

# list of users who are allowed to use LDAP Account Manager
# names have to be seperated by semicolons
# e.g. admins: cn=admin,dc=yourdomain,dc=org;cn=root,dc=yourdomain,dc=org
admins: cn=Manager,dc=monoplan,dc=de

# password to change these preferences via webfrontend (default: lam)
passwd: {SSHA}RjBruJcTxZEdcBjPQdRBkDaSQeY= iueleA==

# suffix of tree view
# e.g. dc=yourdomain,dc=org
treesuffix: dc=monoplan,dc=de

# default language (a line from config/language)
defaultLanguage: en_GB.utf8:UTF-8:English (Great Britain)

# Path to external Script
scriptPath:

# Server of external Script
scriptServer:

# Access rights for home directories
scriptRights: 750

# Number of minutes LAM caches LDAP searches.
cachetimeout: 5

# Module settings

modules: posixAccount_minUID: 10000
modules: posixAccount_maxUID: 30000
modules: posixAccount_minMachine: 50000
modules: posixAccount_maxMachine: 60000
modules: posixGroup_minGID: 10000
modules: posixGroup_maxGID: 20000
modules: posixGroup_pwdHash: SSHA
modules: posixAccount_pwdHash: SSHA

# List of active account types.
activeTypes: user,group,host,smbDomain

types: suffix_user: ou=users,dc=monoplan,dc=de
types: attr_user: #uid;#givenName;#sn;#uidNumber;#gidNumber
types: modules_user: inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount

types: suffix_group: ou=groups,dc=monoplan,dc=de
types: attr_group: #cn;#gidNumber;#memberUID;#description
types: modules_group: posixGroup,sambaGroupMapping

types: suffix_host: ou=computers,dc=monoplan,dc=de
types: attr_host: #cn;#description;#uidNumber;#gidNumber
types: modules_host: account,posixAccount,sambaSamAccount

types: suffix_smbDomain: dc=monoplan,dc=de
types: attr_smbDomain: sambaDomainName:Domain name;sambaSID:Domain SID
types: modules_smbDomain: sambaDomain

 

Im Browser unter der Adresse http://IP-Adresse-des-Servers/lam können Sie sich jetzt einloggen. Passwort ist das
LDAP-Passwort das schon früher definiert war. Das Passwort für die andere Einstellungen ist das Wort: lam

4.

Die Datei /etc/samba/smb.conf anpassen

[global]
   workgroup = MONOPLAN
   netbios name = SERV-DC
   printing = cups
   printcap name = cups
   printcap cache time = 750
   cups options = raw
   map to guest = Bad User
   os level = 200
   passdb backend = ldapsam:ldap://127.0.0.1/
   domain master = yes
   domain logons = yes
   ldap admin dn = cn=Manager,dc=monoplan,dc=de
   ldap group suffix = ou=groups
   ldap machine suffix = ou=computers
   ldap user suffix = ou=users
   ldap passwd sync = yes
   ldap suffix = dc=monoplan,dc=de
   ldap ssl = No
   enable privileges = yes
   add machine script = /usr/sbin/useradd -g 100 -s /bin/false -M %u

[homes]
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = No
    read only = No
    inherit acls = Yes

[netlogon]
    comment = Netlogon Share (Read-Only)
    path = /var/lib/samba/netlogon
    read only = Yes
    write list = root
    browseable = YES

[profiles]
    comment = Benutzerprofile
    path = /var/lib/samba/profiles
    read only = No
    create mask = 0600
    directory mask = 0700
    browseable = No
    store dos attributes = Yes

[printers]
    comment = All Printers
    path = /var/tmp
    printable = Yes
    create mask = 0600
    browseable = No

[print$]
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = @ntadmin root
    force group = ntadmin
    create mask = 0664
    directory mask = 0775

[software]
    comment = firmen eigene software
    path = /data/software
    read only = no
    browseable = yes
    inherit acls = yes
    inherit permissions = yes
    # sicherheitskarte wird nicht angezeigt
    # nt acl support = no
    admin users = MONOPLAN\Administrator, MONOPLAN\manfred

5.

Die Rechtes des Ordners /var/lib/samba/profiles ändern

Ldapserver:/ # chmod 777 /var/lib/samba/profiles

 

6.

Die Rechtes des Ordners /data/software ändern. Die Änderung ist notwendig, sonnt funktionieren die gesetzte ACL's unter Windows nicht korrekt.

Ldapserver:/ # chmod 2770 /data/software
Ldapserver:/ # chown root:root /data/software

 

7.

Jetzt müssen wir noch das LDAP-Passwort dem Dienst SAMBA mitteilen. Das machen wir mit folgendem Befehl. In unserem Fall secret ist LDAP-Passwort

Ldapserver:/ # smbpasswd -w secret

 

8.

Wir überprüfen noch, ob in der Datei /etc/openldap/slapd.conf SAMBA-Schema eingetragen ist. Wenn dieser Eintrag nicht vorhanden ist, dann bitte eintragen und den LDAP-Server neu starten.

...
include /etc/openldap/schema/samba3.schema
...

 

9.

der LDAP-Client muss auch eingerichtet sein. Beschreibung findet man unter LDAP-Authentifizierung

10.

Samba neu starten. Danach die SID-Nummer erfragen. MONOPLAN ist unsere Domäen

Ldapserver:/ # /etc/init.d/smb restart
Ldapserver:/ # /etc/init.d/nmb restart
Ldapserver:/ # net getlocalsid MONOPLAN

 

Die SID - Nummer kopieren

11.

Starten Sie in Browser den LDAP Account Manager http://IP-Adresse-des-Servers/lam, melden Sie sich an. Danach erstellen Sie:

Sollte ein Benutzer die Domänen-Administratorrechte haben, dann bitte den Benutzer zu der Windows-Gruppe: Domänenadministratoren zuweisen und zu der Spezieller Benutzer auch die Gruppe Domänenadministratoren. Die Gruppe hat die RID-Nummer 512, bedeutet der Benutzer kann die Domäne beitreten und hat auch Adminrechte auf jedem Computer der die Domäne beigetreten hat.

Beispiel: Erstellung einer Gruppe in LAM die dann als primäre Gruppe dem Benutzer zugewiesen werden kann.

LAM Gruppenerstellung

12.

Erstellen Sie in LDAP Account Manager einen neuen Benutzer mit dem Benutzernamen: Administrator.
Dem Benutzer weisen Sie der Windows-Gruppe: Domänenadministratoren zu und auch der
Spezieller Benutzer: Domänenadministratoren.
Den Benutzer kann man jetzt bei der Beitretung der Domäne auf dem Windows-Client einsetzen werden.

Bildausschnitt aus dem LDAP Account Manager. Einstellungen für die Administratoren.

LDAP Account Manager Administratoren

 

Bildausschnitt aus dem LDAP Account Manager. Einstellungen für die Domänenbenutzer.

LDAP Account Manager Domänenbenutzer

13.

In LAM oder anderem Verwaltungtool unter Profilpfad schreiben Sie den folgenden Pfad:
\\serv-dc\profiles\$user
serv-dc - ist unser Servername und statt $user schreib man den loginnamen. 

 

 

Zusatzinfo, wenn Sie auf dem Sambaserver Apache nicht installieren möchten.

Mit Ldapadmin Programm kann man auch bequem arbeiten, allerdings muss man am ein Samba-Objekt in die LDAP-Struktur einbinden. Auf dem Samba-Server erstellen wir eine LDIF Datei samba.ldif mit folgendem Inhalt. Selbstverständlich muss man einige Daten anpassen.

dn: sambaDomainName=MONOPLAN,dc=monoplan,dc=de
objectclass: sambaDomain
sambaalgorithmicridbase: 1000
sambadomainname: MONOPLAN
sambaforcelogoff: -1
sambalockoutduration: 30
sambalockoutobservationwindow: 30
sambalockoutthreshold: 0
sambalogontochgpwd: 0
sambamaxpwdage: -1
sambaminpwdage: 0
sambaminpwdlength: 5
sambanextuserrid: 1000
sambapwdhistorylength: 0
sambarefusemachinepwdchange: 0
sambasid: S-1-5-21-278533937-2567160482-3822163271

 

danach können wir die Objekte mit dem Befehl ldapadd in den Verzeichnisdienst einfügen

Ldapserver:/ # ldapadd -x -D cn=Manager,dc=monoplan,dc=de -W -f samba.ldif

 

Danach können wir noch zwei Gruppen, das sind Domain-Admins und Domain-User, einfügen. Und einen Benutzer: administrator mit dem Password: admin. Der Inhalt der Datei pack.ldif ist wie folgt. Die SID der Domäne muss angepasst werden.

# Eintrag 1: cn=Domain-Admins,ou=groups,dc=monoplan,dc=de
dn: cn=Domain-Admins,ou=groups,dc=monoplan,dc=de
cn: Domain-Admins
displayname: Domain-Admins
gidnumber: 10512
memberuid: administrator
objectclass: posixGroup
objectclass: top
objectclass: sambaGroupMapping
sambagrouptype: 2
sambasid: S-1-5-21-278533937-2567160482-3822163271-512


# Eintrag 2: cn=Domain-User,ou=groups,dc=monoplan,dc=de
dn: cn=Domain-User,ou=groups,dc=monoplan,dc=de
cn: Domain-User
displayname: Domain-User
gidnumber: 10513
objectclass: posixGroup
objectclass: top
objectclass: sambaGroupMapping
sambagrouptype: 2
sambasid: S-1-5-21-278533937-2567160482-3822163271-513


# Eintrag 3: uid=administrator,ou=users,dc=monoplan,dc=de
dn: uid=administrator,ou=users,dc=monoplan,dc=de
cn: administrator
displayname: administrator
gidnumber: 10513
homedirectory: /home/administrator
objectclass: posixAccount
objectclass: top
objectclass: inetOrgPerson
objectclass: shadowAccount
objectclass: sambaSamAccount
sambaacctflags: [U]
sambadomainname: MONOPLAN
sambakickofftime: 2147483647
sambalmpassword: F0D412BD764FFE81AAD3B435B51404EE
sambantpassword: 209C6174DA490CAEB422F3FA5A7AE634
sambaprimarygroupsid: S-1-5-21-278533937-2567160482-3822163271-513
sambaprofilepath: \\serv-dc\profiles\administrator
sambapwdlastset: 1271272803
sambapwdmustchange: 0
sambasid: S-1-5-21-278533937-2567160482-3822163271-500
shadowexpire: 99999
shadowflag: 0
shadowinactive: 99999
shadowlastchange: 12011
shadowmax: 99999
shadowmin: 0
shadowwarning: 0
sn: administrator
uid: administrator
uidnumber: 10100
userpassword: {SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=

 

danach können wir die Objekte mit dem Befehl ldapadd in den Verzeichnisdienst einfügen

Ldapserver:/ # ldapadd -x -D cn=Manager,dc=monoplan,dc=de -W -f pack.ldif