Samba 3.0 in ein Active Directory von Microsoft integrieren

Schon seit längerem kann man einen Samba-Server in einen Active Directory von Microsoft integrieren. Dazu sind nur wenige Zeilen Konfiguration nötig. Allerdings wird für die Integration ein Kerberos 5 benötigt. Im folgenden eine kurze Beschreibung der nötigen Schritte für Debian Linux.

Bei Debian bekommt man alle benötigten Pakete, wenn man mit aptitude die dep-Files samba, winbind und heimdal-clients installiert. Die restlichen Pakete werden dabei durch die Abhängigkeiten automatisch installiert.

Als erstes muss Kerberos eingerichtet werden. Dazu muss die Konfigurationsdatei /etc/krb5.conf angepasst werden. Sie sollte hinterher in etwa wie folgt aussehen:

[libdefaults]
        default_realm = BUTTERNET.BIZ
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true

        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
        fcc-mit-ticketflags = true

[realms]
        BUTTERNET.BIZ = {
                kdc = server01.butternet.biz
                kdc = server02.butternet.biz                
                admin_server = server01.butternet.biz
        }

[domain_realm]

[login]
        krb4_convert = true
        krb4_get_tickets = false

Danach kann man mit kinit user und klist testen, ob man ein Ticket von dem Kerberos-Server (Windows Domain Controller) bekommen hat.

Nachdem Kerberos läuft muss Samba angepasst werden. Dazu müssen die globalen Parameter in der Konfigurationsdatei /etc/samba/smb.conf wie folgt angepasst werden:

# Global parameters
[global]
workgroup = BUTTERNET
netbios name = GARGOYLE
realm = BUTTERNET.BIZ
security = ADS
template shell = /bin/bash
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind use default domain = Yes
winbind nested groups = Yes

Eine genaue Beschreibung der nötigen Parameter ist auf Webseite des Samba-Projektes zu finden.

Danach muss dem Linux-Server noch beigebracht werden winbind zu benutzen. Er soll ja nicht nur die lokalen User, Passworte und Gruppen kennen, sondern auch die des Active Directory. Dazu muss die Datei /etc/nsswitch.conf wie folgt angepaßt werden:

...
passwd: files winbind
shadow: files winbind
group:  files winbind
...
hosts:  files [dns] wins
...

Zum Schluss muss man mit dem Befehl net ads join -UAdministrator%passwort den Samba-Server der Windows Domäne beitreten lassen. Danach kann man mit dem Befehl net ads testjoin testen, ob der Server ein Mitglied der Domäne ist. Des weiteren sollte der Befehlt wbinfo -u alle Benutzer des AD anzeigen.

Nachdem die Konfiguration wie oben beschrieben getätigt ist, sollten Zugriffe von von Windows-Usern auf den Samba-Server möglich sein. Sie sollten z.B. auf die Freigabe testfreigabe zugreifen können, wenn in der Datei /etc/samba/smb.conf die folgende Freigabe konfiguriert wird:

[testfreigabe]
        comment = Testfreigabe
        inherit acls = Yes
        path = /home/irgendeinverzeichnis
        read only = No

Die Voraussetzung ist natürlich, dass es ein Verzeichnis /home/irgendeinverzeichnis gibt und der Benutzer die notwendigen Berechtigungen hat 😉