Konfiguration eines Linux Samba-Servers zur Authentifizierung gegen einen Windows Active Directory Server.
Ein Linux Samba Fileserver kann als Memberserver einer Windows Active Directory Domäne hinzugefügt werden, um die User- und Gruppenberechtigungen aus dem Active Directory zu beziehen.
In dem Beispiel wird von folgenden Daten ausgegangen:
Domaincontroller OS: Windows Server 2008
Windows Domäne: osnets.de
NT4 Domäne: OSNETS
Domaincontroller: dc01.osnets.de
Samba-Server OS: CentOS V. 5.3
Samba Server: fs01.osnets.de
Samba-Pakete: samba, samba-common, samba-client (Version > 3.0.20)
Zus. Pakete: krb5-workstation (Version 1.6.1), ntp
Einrichten der Zeitsynchronisation:
0 * * * * /usr/sbin/ntpdate -sb dc01.osnets.de
Vorher syncen nicht vergessen:
Einrichten der Kerberos-Authentifizierung (Achtung! Case Sensitiv):
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = OSNETS.DE
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
OSNETS.DE = {
kdc = dc01.osnets.de
admin_server = dc01.osnets.de
default_domain = osnets.de
}
[domain_realm]
.kerberos.server = OSNETS.DE
.osnets.de = OSNETS.DE
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Testen der Kerberos-Konfiguration (Keine Meldung nach dem Login bedeutet, es funktioniert):
Password for Administrator@OSNETS.DE: KENNWORT eingeben
[root@fs01 ~]#
Anpassen der NSSwitch Konfiguration:
passwd: files winbind
shadow: files winbind
group: files winbind
Anpassen der PAM Konfiguration:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
# NEU
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
# NEU
account sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
# NEU
password sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
# NEU
session required /lib/security/$ISA/pam_winbind.so use_first_pass
Anpassen der Samba Konfiguration:
[global]
workgroup = OSNETS
realm = OSNETS.DE
preferred master = no
server string = FS01
security = ADS
encrypt passwords = yes
log level = 3
log file = /var/log/samba/%m
max log size = 50
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
winbind separator = +
idmap uid = 600-20000
idmap gid = 600-20000
#template primary group = “Domain Users”
#template homedir = /home/%U
template shell = /bin/bash
[homes]
browseable = no
comment = Homeverzeichnisse
writeable = yes
valid users = @OSNETS.DE+g_users
[daten]
writeable = yes
write list = @OSNETS.DE+g_daten
path = /home/daten
force directory mode = 775
force group = g_daten
force create mode = 664
force user = nobody
comment = Daten
valid users = @OSNETS.DE+g_daten
Dies bedeutet nun:
Alle Mitglieder der Gruppe g_users haben Zugriff auf ihr Homeverzeichnis (= Username)
(Die Homes-Verzeichnisse liegen dabei unter: /home/OSNETS/USERNAME)
Alle Mitglieder der Gruppe g_daten haben Zugriff auf das Share daten.
Alle Verzeichnisse müssen von Hand angelegt werden und die entsprechenden Berechtigungen vergeben werden.
Die User- und Gruppennamen werden auf dem Samba-Server Lowercase angelegt (wie per wbinfo angezeigt)
Starten des Winbind Daemons und Eintragen des Autostarts:
[root@fs01 ~]# chkconfig –level 3 winbind on
Starten des Samba Daemons und Eintragen des Autostarts:
[root@fs01 ~]# chkconfig –level 3 smb on
Aufnahme des Samba-Servers in die Active Directory Domäne:
Nach dem erfolgreichen Join im AD kontrollieren, ob das Computerobjekt im Container Computers angelegt wurde!
Administrator’s password: KENNWORT eingeben
Using short domain name — OSNETS
Joined ‘FS01′ to realm ‘OSNETS.DE’
Testen des Joins:
Join is OK
Testen des Winbind-Daemons:
Sollten nicht alle User oder Gruppen angezeigt werden, müssen die Parameter idmap uid und idmap gid in der smb.conf entsprechend erhöht werden.
Abfrage aller AD-User:
administrator
gast
hans
hermann
kurt
…
Abfrage aller AD-Gruppen:
BUILTIN+administrators
BUILTIN+users
domänencomputer
domänencontroller
schema-admins
g_users
g_daten
…
Anmelden am AD:
Anlegen der Verzeichnisse und deren Berechtigungen:
Nachdem die Anbindung an das AD nun funktioniert können die Verzeichnisse nun angelegt werden
und mit Berechtigungen aus dem AD versehen werden.
Anlegen der Homes-Verzeichnisse:
[root@fs01 ~]# chmod 777 /home/OSNETS
[root@fs01 ~]# mkdir /home/OSNETS/hans
[root@fs01 ~]# chown hans /home/OSNETS/hans
[root@fs01 ~]# chmod 700 /home/OSNETS/hans
.. usw
Anlegen des Daten-Verzeichnisses:
[root@fs01 ~]# chgrp g_daten /home/daten
[root@fs01 ~]# chmod 770 /home/daten
… usw
Das war’s.
Der Samba-Server ist nun Mitglied des Active Directory Domäne und authentifiziert
AD-User und Gruppen auf den Shares.