Linux als Mitglied einer Windows Domäne

Prerequisites

Bevor wir beginnen sollten folgende Dinge sicher gestellt sein. Da die Konfiguration sehr umfangreich ist können nicht alle Schritte im Detail betrachtet werden, daher wird folgendes voraus gesetzt:

  • Ein Windows Server 200x heraufgestuft zum Primären Domänen Controller mit Active Directory Realm hier bezeichnet als snakeoil.org. Im Folgenden wird der Windows Server als myPDC.snakeoil.org bezeichnet.
  • Ein DNS-Server der alle Hosts und insbesondere die SRV Einträge auflösen kann sodass sich der KDC Server auch im Realm, z.B. per snakeoil.org finden läßt. Tipp-Fehler werden schnell zur Stolperfalle wenn Hostnamen nicht mit dem Namen im KDC übereinstimmen oder etwaige lokale Hosts-Dateien auf einem Linux System den Namen anders auflösen als der DNS. Einfacher ist es hier den Windows DNS zu verwenden da dieser sowieso Voraussetzung für eine funktionierende Domäne ist. Die Pros richten häufig einen zusätzlichen Bind9 DNS Server auf einem Linux System als Slave-DNS mit entsprechendem Zonen-Transfer vom Windows DNS Server ein.
  • Auf der Linuxmaschine sollte man die Reihenfolge der Namensauflösung in /etc/host.conf beachten (!)
    Samba und Winbind verwenden abhängig von der Konfiguration trotz angegebener Reihenfolge der Namensauflösung manchmal trotzdem die Hosts-Datei oder den DNS daher sollte das Subnetz und die Domänennamen-Auflösung in /etc/networks identisch mit denen des Realms sein. Wenn /etc/hosts zusätzlich verwendet wird dann in [IP] [FQDN] [HOSTNAME] Notation z.B.

    192.168.1.1 myhost.snakeoil.org myhost

    weil Samba und Winbind sich manchmal pingelig anstellen wenn ein [FQDN] erwartet wird aber nur ein [HOSTNAME] zurückkommt.

  • Ein DHCP Server, am besten mit dynamischer Hostnamen-Aktualisierung sodass jeder Host im Sub-Netz bekannte für alle verbindliche Namen erhält. Es funktioniert prinzipiell unter den Linux Maschinen auch mit stinknormaler lokaler Hosts-Auflösung wer hier allerdings nicht präzise ist kann sich u.U. ins Knie schießen.
  • Alle Maschinen des Realms (Domäne) müssen per NTP korrekt zeit-synchronisiert laufen weil Kerberos keine Clock skews duldet und u.U. dann Tickets verweigert obwohl die Credentials korrekt sind.
  • Auf allen Maschinen des Relams muß die /etc/services Datei vorhanden und korrekte, identische Einträge enthalten zumindest für die Dienste die über Kerberos authentifiziert werden sollen, also in unserem Fall z.B:
    ...
    netbios-ns 137/tcp # NETBIOS Name Service
    netbios-ns 137/udp
    netbios-dgm 138/tcp # NETBIOS Datagram Service
    netbios-dgm 138/udp
    ...
    microsoft-ds 445/tcp # Microsoft Naked CIFS
    microsoft-ds 445/udp
    ...
    nfs 2049/tcp # Network File System
    nfs 2049/udp # Network File System
    ...

    Eigentlich sollte diese Datei überall gleich sein aber dies kann insbesonders dann wichtig werden wenn verschiedene, exotische Distributionen verwendet werden bei denen sich manche Portnummern evtl. unterscheiden. Debian und Ubuntu machen hier naturgemäß keine sonderlichen Probleme ansonsten sollte man zumindest einen diff machen um sicher zu gehen. Solche Fehlkonfiguration der services-Datei können natürlich ignoriert werden wenn die betreffenden Dienstnamen nicht über Kerberos authentifiziert werden.

Leave a Reply