Installation

    Um Linux in eine ActiveDirectory Umgebung müssen zu erst die notwendigen Pakete installiert werden

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

    Nun müssen die Dienste noch gestoppt werden

    /etc/init.d/samba stop
    /etc/init.d/winbind stop

    Kerberos

    Nun muss als erstes Kerberos konfiguriert werden, dazu muss in der Datei /etc/krb5.conf ein Abschnitt für die Domain hinzugefügt werden. In den folgenden Bespielen steht

    REALMNAME für den gesamten Domain Namen, also zum Beispiel test.domain.local.

    REALMNAME {
    kdc = dc_ip_adresse
    }

    Nun muss noch im Abschnitt libdefaults die Domain als Standard Domain eingetragen werden.

    [libdefaults]
     default_realm = REALMNAME

    Da bei einer Kerberos Authentifizierung die Uhrzeit zwischen dem Client und Server sich nicht um mehr als 5 Minunten unterscheiden darf sollten sie einen cronjob für die Zeitsynchronisierung mit einem DC einrichten

    #min  hour  day  month dow  user command */60  *     *    *     *    *    /usr/sbin/ntpdate dc01.test.domain.local

    Winbind

    Nun muss Winbind noch eingerichtet werden, dazu müssen in der Datei /etc/samba/smb.conf folgende Zeilen ergänzt oder geändert werden. REALMNAME ist wieder der gesamte Domainname test.domain.local. DOMAINNAME ist Kurzversion, in dem Fall test

    realm = REALMNAME
    workgroup = DOMAINNAME
    security = ads
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    template shell = /bin/bash
    template homedir = /home/%D/%U
    winbind use default domain = yes

    Nsswitch

    Über die Datei /etc/nsswitch.conf wird festgelegt, in welcher Reihenfolge das System nach Usern und Gruppen suchen soll.

    passwd:         files winbind
    group:          files winbind

    Dieser Änderung können sie durch das neu einlesen der Konfig Datei aktivieren

    ldconfig

    Domain Beitritt

    Nun noch kurz die Dienste neu starten

    /etc/init.d/winbind restart
    /etc/init.d/samba restart

    Anschließend kann der Computer der Domain beitreten

    net ads join -U Administrator

    Um das Computerkonto direkt innerhalb einer OU zu erstellen, sieht der Befehl wiefolgt aus

    net ads join createcomputer='domain/Computer/Desktop' -U Administrator

    PAM Authentifizierung

    Damit andere Applicationen die AD Authentifizierung nutzen können, muss PAM (Pluggable Authentication Module) für die Authentifizierung konfiguriert werden, dazu sin folgende Änderungen notwendig.

    # /etc/pam.d/common-account
    account sufficient pam_winbind.so
    account required pam_unix.so

     

    # /etc/pam.d/common-auth
    auth sufficient pam_winbind.so
    auth required pam_unix.so use_first_pass

     

    # /etc/pam.d/common-session
    session sufficient pam_winbind.so
    session required pam_unix.so

     

    # /etc/pam.d/common-session
    session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
    session sufficient pam_winbind.so
    session required pam_unix.so

    Der Unterscheid zwischen required  und sufficient ist, dass dass bei sufficient eine erfolgreiche Anmeldung über das angegebene Modul das Ende zu bearbeitenden Module bedeutet, während bei required die Authentifizierung noch alle nachfolgenden Module erfolgreich durchlaufen muss.

    use_first_pass bewirkt, dass das angegebene Kennwort bei einer fehlgeschlagenen Authentifizierung erneut für das angegebene Modul verwendet wird. Normalerweise bedeutet eine fehlgeschlagene Authentifizierung das für das nächste Modul erneut nach einem Kennwort gefragt wird.

    pam_mkhomedir.so erzeugt bei der erfolgreichen Anmeldung auf dem Linux System ein Homeverzeichniss für den Benutzer aus der Vorlage /etc/skel.

    SSH

    Nachdem die AD Integration erfolgreich verlaufen ist, kann nun auch bei einer SSH Anmeldung eine Authentifizierung gegen das AD erfolgen. Dazu muss in der Datei /etc/ssh/sshd_config der Parameter UsePAM auf yes stehen.

    Um nun die Anzahl der User einzuschränken die sich an dem Linux System anmelden können einzuschränken bieten sich die Parameter AllowUsersund AllowGroups, DenyUsers und DenyGroupsan. Um lediglich Domain Administratoren den Zugriff zu gewähren würde AllowGroups verwendet werden:

    AllowGroups root "domain admins"

    Achten Sie auf die Groß- und Kleinschreibung. Diese ist anders als im AD angezeigt. Prüfen sich Sie sicherheitshalber den Gruppennamen mit wbinfo -g nach. Sie sollten die Gruppe root immer mit unter AllowGroups aufführen, damit die Authentifizierung mit dem lokalen user root nicht ausgeschlossen wird.

    Troubleshooting

    Ports

    Für die Verbindung zur Domain muss sichergestellt sein, dass folgende Ports genutzt werdn können und nicht durch eine Firewall blockiert werden

    • 88/TCP
    • 88/UDP
    • 389/TCP
    • 464/UDP

    DNS Auflösung

    Am Client muss die DNS Auflösung des Domain Controllers möglich sein.

    host <ip domain controller>

    sollte den Namen des Domain Controllers liefern.

    Samba Konfiguration prüfen

    testparm

    AD Verbindung prüfen

    net ads info

    Test join

    net ads testjoin

    User gegenüber der Domain authentifizieren

    kinit <username>

    Kerberos Ticket anzeigen

    kinit

    Kerberos Ticket löschen

    kdestroy

    Verfügbarkeit der Domains anzeigen

    wbinfo --sequence

    User auflisten

    wbinfo -u

    Gruppen auflisten

    wbinfo -g

    RPC trust prüfen

    wbinfo -t

    Winbind Authorisierung prüfen

    winbind -a username%password

     Links:

    Leave A Reply