Open Source im professionellen Einsatz

Ldap.conf und Samba

Als nächsten Schritt definieren Sie in der Datei »/etc/nsswitch.conf« LDAP als Quelle für die Abfragen von Usern, Gruppen und Hosts und aktivieren für letztere auch Wins:

passwd:     files ldap
group:      files ldap
hosts:      files dns wins

Damit das System Anfragen an den lokalen Server stellen kann, ergänzen Sie die Datei »/etc/ldap.conf« mit den passenden LDAP-Informationen:

base dc=mx,dc=local
uri ldap://127.0.0.1/
ssl no
pam_password md5

Nun kommt der Samba-Teil an die Reihe. Listing 10 zeigt eine für einen PDC geeignete Konfiguration für die Datei »smb.conf«. Damit Samba User-, Gruppen- und Rechner-Informationen aus dem LDAP beziehen kann, braucht es einen dedizierten User, der in Produktionsumgebungen besser nicht mit dem LDAP-Rootdn identisch ist. Smbpasswd speichert diese Daten in »secrets.tdb«, wie »smb passwd -w secret« zuverlässig verrät.

Listing 10: Samba-Konfiguration
als PDC

01 [global]
02 workgroup = MX                 # Windows Domänen Name
03 security = user
04 domain logons = Yes            # Domänen Logons
05 domain master = Yes            # Host ist Domänen Master
06 wins support = Yes
07 
08 hosts allow = 192.168.168.0/24 172.16.164.0/24 127.0.0.1/32
09 # Zugriffs Berechtigung auf den Server
10 
11 netbios name = fs2009          # Netbios Name des Servers
12 passdb backend = ldapsam:ldap://127.0.0.1   # Password Backend ist LDAP
13 username map = /etc/samba/smbusers          # User Mapping Datei
14 
15 log level = 2                  # Definition des Loglevels
16 log file = /var/log/samba/%m   # jeder Host erhält eigene Logdatei
17 
18 time server = Yes              # Fungiert der nmbd als Zeitserver für
19                                # Windows Clients
20 # Logon Einstellungen
21 logon script = logon.bat       # Logon Script
22 logon path = \fs2009profiles%u           # Pfad für roaming Profile
23 logon drive = H:               # Home auf dieses Laufwerk verbinden
24 
25 # LDAP Einstellungen
26 ldap admin dn = "cn=Manager,dc=mx,dc=local" # LDAP Admin User
27 ldap ssl = Off    # keine SSL-verschlüsselte Verbindung zum LDAP-Server
28 ldap suffix = dc=mx,dc=local   # LDAP Suffix Basis für Samba Objekte
29 ldap user suffix = ou=Users    # User Suffix relativ zum LDAP Suffix
30 ldap group suffix = ou=Groups  # Group Suffix relativ zum LDAP Suffix
31 ldap machine suffix = ou=Computers          # Suffix für Maschinen Konten relativ zum LDAP Suffix
32 ldap idmap suffix = ou=Idmap   # Suffix für idmap mappings relativ zum
33                                # LDAP-Suffix 
34 # User Mapping
35 idmap backend = ldap://127.0.0.1
36 idmap uid = 1000-20000 # lokaler reserv. UID-Bereich für Domänenbenutzer
37 idmap gid = 1000-20000 # Lokaler reserv. GID-Bereich für Domänengruppen
38 
39 # Definition der Freigaben
40 [homes]                        # Freigabe der Homelaufwerke
41 comment = Home Directories
42 valid users = %S
43 browseable = yes
44 writable = yes
45 create mask = 0600
46 
47 [netlogon]                     # Freigabe für Netlogon
48 comment = Network Logon Service
49 path = /mnt/iscsi/netlogon
50 writeable = yes
51 browseable = yes
52 read only = no
53 
54 [profiles]                     # Freigabe für roaming Profile
55 path = /mnt/iscsi/profiles
56 writeable = yes
57 browseable = no
58 read only = no
59 create mode = 0777
60 directory mode = 0777
61 
62 [data]                         # Freigabe des Daten-Shares
63 comment = data share
64 path = /mnt/iscsi/data
65 writeable = yes
66 browseable = yes
67 read only = no
68 valid users = "@Domain Users"
69 
70 [public]                       # Freigabe eines freien Zugriffsbereich
71 [...]

SE Linux wieder aktivieren

Auch in diesem Szenario müssen Sie die SE-Linux-Policies für den Einsatz als Domänen-Controller anpassen. Setsebool setzt Samba als Domänen-Controller ein und aktviert die Home-Directories auf dem Server. Chcon ordnet anschließend die Freigaben dem Kontext »samba_share_t« zu:

setsebool -P samba_domain_controller on
setsebool -P samba_enable_home_dirs on
chcon -t samba_share_t /mnt/iscsi/data
chcon -t samba_share_t /mnt/iscsi/public
chcon -t samba_share_t /mnt/iscsi/netlogon

Die Management-Tools zur Benutzerverwaltung sind nicht Bestandteil von CentOS, aber Server wie RPMforge bieten passende Pakete mit den Perl-Modulen und Skripten an. Nach deren Installation passen Sie die Konfigurationsdateien unter »/etc/smbldap-tools« für den Zugriff auf das LDAP Verzeichnis an. Im ersten Schritt ermitteln Sie dafür mit »net getlocalsid« die SID. Die Antwort:

SID for domain FS2009 is: S-1-5-21-1296147596-3054910190-1361742739 

Dieser String setzen Sie in »/etc/smbldap-tools/smbldap.conf«, zu sehen in Listing 11. Jetzt noch in der Datei »/etc/smbldap-tools/smbldap_bind.conf« die Parameter »masterDN« und »masterPw« für den LDAP-Zugriff anpassen:

_
masterDN="cn=Manager,dc=mx,dc=local"
masterPw="secret"

und fertig ist die Integration der Skripte. Ab sofort können Sie das LDAP-Verzeichnis befüllen.

Auch hierfür liefert das »smbldap-tools«-Paket ein passendes Skript namens »smbldap-populate«. Es fügt der Domäne alle notwendigen Einträge hinzu und gestattet die Eingabe eines Root-Passwords für den Administrator. Wenn Sie das automatische Hinzufügen von User- oder Maschinen-Konten gestatten wollen, müssen Sie den »[global]«-Abschnitt der Samba-Konfiguration um die Zeilen in Listing 12 erweitern.

Auch in diesem Szenario braucht der Samba-Server einen Restart. Außerdem müssen Sie die in der Konfiguration erwähnten Verzeichnisse anlegen und mit den korrekten Rechten ausstatten.

Listing 11:
»smbldap.conf«

01 SID="S-1-5-21-1296147596-3054910190-1361742739"
02 sambaDomain="MX"
03 masterLDAP="fs2009.mx.local"
04 ldapTLS="0
05 suffix="dc=mx,dc=local"
06 userSmbHome="\fs2009%U"
07 userProfile="\fs2009profiles%U"
08 mailDomain="mx.local"

Listing 12: Konten
automatisch

01 add user script = /usr/sbin/smbldap-useradd -a -m '%u'
02 delete user script = /usr/sbin/smbldap-userdel '%u'
03 add group script = /usr/sbin/smbldap-groupadd -p '%g'
04 delete group script = /usr/sbin/smbldap-groupdel '%g'
05 add user to group script = /usr/sbin/smbldap-groupmod -m '%g' '%u'
06 delete user from group script = /usr/sbin/smbldap-groupmod -x '%g' '%u'
07 set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
08 add machine script = /usr/sbin/smbldap-useradd -w '%u'

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook