Debian 6.0 an eine Domäne binden

Ich kann mich nicht mehr anmelden
25. August 2011
Windows-Installation von USB-Stick
9. September 2011

Debian 6.0 an eine Domäne binden

Es macht in einem Unternehmen teilweise Sinn, einen Linux-Server an das Active-Directory zu binden. Möchte man z.B. die Rechte und Benutzer im Unternehmen nur an einer Stelle pflegen, so gibts es fast keine andere Wahl. Die vorangehensweise in dieser Anleitung ist auf andere Distributionen portierbar, eventuell müssen ein paar Pfade bzw. Packete angepasst werden.

Zu beginn müssen folgende Packete installiert werden

apt-get install krb5-config krb5-user krb5-doc winbind samba ntpdate

Anschließend, sollte überprüft werden, ob der Servername in /etc/hosts den Domänen-Suffix enthält:

10.0.0.20   server.domaene.local       server

Nun geht es daran, die Config-Files anzupassen. Als erstes nehmen wir die /etc/krb5.conf

[logging]
    default = FILE:/var/log/krb5.log
    kdc = FILE:/var/log/lrb5kdc.log
    admin_server = FILE:/var/log/kadmin.log

[libdefaults]
        default_realm = domaene.local
        forwardable = true
        dns_lookup_realm = false
        dns_lookup_kdc = false
        clock_skew = 300
        ticket_lifetime = 24h
[realms]
        GDV.INTRA = {
            kdc = dc.domaene.local
            admin_server = dc.domaene.local
            default_domain = domaene.local
        }

[domain_realm]
        .domaene = domaene.local
        domaene = domaene.local

kdc = dc.domaene.local ist hierbei der Domänen-Controller.

/etc/samba/sm.conf

[global]
workgroup = domaene
realm = domaene.local
load printers = no
preferred master = no
local master = no
server string = fileserver
password server = 10.0.0.1
encrypt passwords = yes
security = ads
netbios name = server
client signing = Yes
dns proxy = No
wins server = 10.0.0.1
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = /
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
template shell = /bin/bash
template homedir = /home/%D/%U

Unter „wins server“ und „password server“ ist die IP des Domänen-Controllers einzutragen. Nun ist es noch wichtig den Samba-Dienst neuzustarten.

root@server:~# /etc/init.d/samba restart

Im nächsten Schritt versuchen wir uns als Administrator der Domäne anzumelden. Hier zu wird folgendes eingegeben:

kinit Administrator@domaene.local

Hierbei ist Groß- und Kleinschreibung sehr wichtig.  Ein Fehler wie:

kinit: Cannot find KDC for requested realm while getting initial credentials

deutet darauf hin, dass in der Schreibweise etwas falsch ist. Wenn nach der Passwort eingabe keine Ausgabe erfolgt, war die Anmeldung erfolgreich. Mit dem Befehl klist kann man sich nun das Kerberos-Ticket anschauen, und wann es verfällt.

root@server:/opt# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@domaene.local

Valid starting     Expires            Service principal
08/25/11 18:45:01  08/26/11 06:45:03  krbtgt/domaene.local@domaene.local
        renew until 08/26/11 18:45:01

Wenn dies erfolgreich war können wir mit dem Server der Domäne beitreten:

root@server:~# net ads join -U administrator

Sollte der folgende Fehler auftreten:

kinit(v5): Clock skew too great while getting initial > credentials

Ist dies ein Hinweis darauf, dass die Zeit des Linux-Servers stark abweicht von der des Domänen-Controllers. Hier sollte mittels ntpdate die Zeitgestellt werden.

Wenn bisher alles ohne Probleme vonstatten gegangen ist, sollte der folgende Befehle eine Liste der User zurück geben, die im Active-Directory geführt werden:

root@server:~# wbinfo -u

Mittels

root@server:~# wbinfo -g

kann man sich eine Liste der Gruppen zurück geben lassen.

Abschließend muss man die /etc/nsswitch.conf anpassen und folgende Einträge ergänzen:

passwd:     compat winbind
shadow:     compat winbind
group:       compat winbind

Sollte es gewünscht sein, dass sich auch User mit den AD-Daten per SSH anmelden können muss zusätzlich noch PAM angepasst werden.

PAM liefert ein Shell-Skript mit, mit dem man die Anmelde-Rouine anpassen kann. Dies lautet  pam-auth-update.

root@server:~#  pam-auth-update

Es folgt ein ähnlicher Bildschirm wie dieser hier:

 ┌──────────────────────────────────────────────────────────────────────────┤  ├──────────────────────────────────────────────────────────────────────────┐
 │ Pluggable Authentication Modules (PAM) bestimmen, wie Authentifizierung, Berechtigung und Passwort-Änderung auf dem System gehandhabt werden. Ebenso   │
 │ erlauben sie die Konfiguration zusätzlicher Maßnahmen, die beim Start von Benutzersitzungen vorgenommen werden.                                        │
 │                                                                                                                                                        │
 │ Einige Pakete mit PAM-Modulen stellen Profile bereit, die das Verhalten aller Anwendungen, die PAM verwenden, automatisch anpassen können. Bitte       │
 │ geben Sie an, welche dieser Verhaltensweisen Sie aktivieren möchten.                                                                                   │
 │                                                                                                                                                        │
 │ Zu aktivierende PAM-Profile:                                                                                                                           │
 │                                                                                                                                                        │
 │    [*] Kerberos authentication                                                                                                                         │
 │    [*] Unix authentication                                                                                                                             │
 │    [*] Winbind NT/Active Directory authentication                                                                                                      │
 │                                                                                                                                                        │
 │                                                                                                                                                        │
 │                                             <Ok>                                                 <Abbrechen>                                           │
 │                                                                                                                                                        │
 └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Nachdem die Config-Files angepasst wurde muss in der Datei /etc/pam.d/common-session eine Zeile ergänzt werden. Diese erzeugt die Verzeichnisse, wenn ein User sich anmeldet.

session required                        pam_mkhomedir.so skel=/etc/skel/ umask=0022

Diese Zeile einfach unter

session optional                        pam_winbind.so

einfügen und schon sind wir damit fertig.

Zum Schluss muss nur noch der SSH-Dienst angepasst werden, damit ein Login erlaubt wird. Dafür wird in der Datei /etc/ssh/sshd_config folgendes geändert:

KerberosAuthentication yes
#KerberosGetAFSToken no
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes

AllowGroups domaenen-gruppe "linux-Gruppe"

Nachdem dies geändert wurde muss der Dienst nur noch neugestartet werden und schon kann man sich via SSH mit den Domänen-Usern, die in der Gruppe „domaenen-gruppe“ sind anmelden.

root@server:~# /etc/init.d/ssh restart

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *