Frage OpenBSD gegen Active Directory authentifizieren


Bearbeiten: Umformatiert dies als Q & A. Wenn jemand dies vom Community-Wiki zu einer typischen Frage ändern kann, ist das wahrscheinlich auch besser geeignet.

Wie kann ich OpenBSD gegen Active Directory authentifizieren?


23


Ursprung


Sehr schön! Das sieht sehr gründlich und gut geschrieben aus. Ich benutze OpenBSD nicht, aber die AD-Teile sehen genau aus. - Evan Anderson
+1 für einen netten Führer, obwohl es nicht wirklich eine Frage ist. - David Schmitt
Sie sollten dies in ein Frage-Antwort-Format ändern. - Doug Luxem
Geändert, obwohl es immer noch ein Community Wiki ist. Wenn jemand anders das ändern kann, mach weiter. - sh-beta


Antworten:


Vorwort

Die Authentifizierung gegen Active Directory mit Kerberos ist auf Systemen, die PAM verwenden, ziemlich einfach, aber OpenBSD macht das nicht und erschwert es. Von einem tcpdump aus sieht es so aus, als ob die PAM-Systeme nur eine Vorauthentifizierung durchführen, während das bsd_auth-System von OpenBSD den gesamten Kerberos-Authentifizierungsprozess verwendet.

Wie auch immer, das hat eine Weile gedauert, bis ich herausgefunden habe, dass hoffentlich einige kurze Anweisungen dir Zeit sparen werden.

Ein paar kurze Notizen, bevor wir anfangen:

  • Benutzer müssen auf dem OpenBSD-System existieren, bevor sie sich einloggen. Sie werden nicht automatisch erstellt.
  • Wenn Sie möchten, dass Benutzer automatisch erstellt werden, sehen Sie sich Samba / Winbind an. Ich habe nichts als Ärger (unerklärliche Abstürze, ernsthafte Log-Spamming, unzuverlässige Authentifizierung) davon, also benutze ich es nur, wenn ich muss.
  • Dies wurde auf OpenBSD 4.5 und Windows Server 2003 getestet. Ich bin mir ziemlich sicher, dass es mit Win2k, aber YMMV funktionieren wird.
  • Diese Version von OpenBSD verwendet Heimdal 0.7.2. Alles hier, abgesehen von den Pfaden und dem login.conf-Zeug, wird wahrscheinlich auf anderen * nixen funktionieren, auf denen das gleiche Heimdal läuft, aber wieder, YMMV.

Anleitung

Bei diesen Schritten wird davon ausgegangen, dass Sie versuchen, myuser@myhost.fqdn für die Domäne EXAMPLE.COM zu authentifizieren. Der Domänencontroller ist pdc.EXAMPLE.COM.

  1. Erstellen Sie ein Active Directory-Benutzerkonto mit dem Namen mein Gastgeber (Das ist kein Tippfehler, diese Anweisungen funktionieren nicht mit einem Computerkonto). Deaktivieren Sie den Kennwortablauf und lassen Sie den Benutzer sein eigenes Kennwort nicht ändern. Stellen Sie das Passwort auf das ein, was Sie möchten - es wird bald geändert.

  2. Es ist wahrscheinlich eine gute Idee, das Benutzerkonto unter einer neuen Organisationseinheit zu erstellen, es aus der Gruppe Domänenbenutzer zu entfernen und es einer dedizierten Gruppe hinzuzufügen. Das ist alles eine Frage des Geschmacks und Ihres Sicherheitslayouts.

  3. Laden und installieren Sie Windows Server-Supporttools auf pdc.EXAMPLE.COM (speziell benötigen Sie ktpass.exe)

  4. Führen Sie auf pdc.EXAMPLE.COM aus:

    ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -ptype KRB5_NT_PRINCIPAL + rndpass

    Dies aktualisiert das Passwort des myhost Benutzers auf etwas zufälliges (+ rndpass), Karten der Kerberos-Principal "host/myhost.fqdn@EXAMPLE.COM" an den Benutzer "myhost" in Active Directory und speichert dann die Informationen zum Prinzipal und zum privaten Schlüssel in der -out Keytab-Datei.

  5. Kopieren Sie c: \ temp \ myhost.keytab sicher zu myhost und löschen Sie die Datei von pdc.EXAMPLE.COM

  6. Fügen Sie auf myhost die AD-Keytab zu Ihrem Keytab Key hinzu:

    ktutil kopieren /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. Konfigurieren Sie /etc/krb5.conf. Unten ist das absolute Minimum, das Sie brauchen. Es gibt viele Optionen, sehen Sie sich die Manpage für weitere Details an. Dadurch wird der maximal zulässige Taktversatz auf 5 Minuten festgelegt, EXAMPLE.COM wird zum Standardbereich und Kerberos wird zwischen DNS- und Kerberos-Realms übersetzt.

    [libdefaults]
      Uhrenskew = 300
      default_realm = BEISPIEL.COM

    [Reiche]
      BEISPIEL.COM = {
      Standard_Domäne = BEISPIEL.COM
      }

    [domain_realm]
      .EXAMPLE.COM = BEISPIEL.COM

  8. Vergewissern Sie sich, dass Sie ein Ticket erhalten können:

    # kinit Administrator@EXAMPLE.COM
    Administrator@EXAMPLE.COM's Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: Administrator@EXAMPLE.COM 

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM 

  9. Ändern Sie /etc/login.conf, um die Kerberos-Authentifizierung zu verwenden. Die genaue Konfiguration von login.conf hängt davon ab, wie Sie Ihr System verwenden. Um jedoch von einer Vanilla-Installation zur Verwendung von Kerberos zu wechseln, bearbeiten und kommentieren Sie einfach diese Zeile unter der Standard-Login-Klasse:

    :tc=auth-defaults:\ 

    Und füge darüber hinzu:

    :auth=krb5-or-pwd:\ 

    Dies prüft zunächst Kerberos, es sei denn, der Benutzer ist root. Wenn Kerberos fehlschlägt, verwendet es lokale Kennwörter.

  10. Fügen Sie die Benutzer hinzu, die Sie auf diesem Host authentifizieren möchten. Lassen Sie die Kennwörter leer, es sei denn, Sie möchten, dass sie sowohl Active Directory- als auch lokale Kennwörter verwenden können (nicht empfohlen).

    Sie können die Passwörter bestehender Benutzer löschen "chpass <user>"und den Wert" verschlüsseltes Passwort: "durch ein Sternchen (*) ersetzen

  11. Testen Sie SSH und Sudo. Beide sollten einwandfrei mit Ihren Active Directory-Anmeldeinformationen funktionieren.

Das ist alles dazu.

Links

Ein paar nützliche Seiten:


16



Sieht aus wie 2008 R2 hat ktpass.exe gebacken. Vielleicht 2008 auch, kann nicht sicher sagen in diesem Stadium. Wenn jemand klären kann, wäre das toll. - Aaron Mason
Um dies ab 5.7 zu tun, müssen Sie außerdem das Heimdal-Paket installieren - es wurde von der Basis in 5.6 entfernt. - Aaron Mason
Nachtrag zum vorherigen Kommentar - Sie müssen auch das Paket login_krb5 installieren und das login_krb5-or-pwd zu /usr/libexec/auth - Jetzt sind auch Konfigurationsdateien und Keytab in /etc/heimdalund nicht in /etc/kerberosV wie in früheren OpenBSD-Versionen. - Aaron Mason


Ein Update zu den obigen Anweisungen hat sich seitdem geändert.

In OpenBSD 5.6 wurde die Entscheidung getroffen, Heimdal aufgrund von Bedenken hinsichtlich der Codequalität aus der Basisdistribution zu entfernen, und niemand würde die Zeit dafür aufwenden wollen. In 5.7 wurde es als Paket zur Verfügung gestellt (Für 5.6 musst du aus der Quelle bauen oder herausfinden, wie es in der Quelle wieder aktiviert wird). Bevor Sie die obigen Anweisungen befolgen, müssen die folgenden zusätzlichen Schritte ausgeführt werden:

-3. Installiere das heimdal und login_krb5 Pakete von deinem Lieblingsspiegel.

-2. Kopieren /usr/local/libexec/auth/login_krb5* zu /usr/libexec/auth.

-1. Wenn Sie die Heimdal-Tools sehr oft verwenden möchten, fügen Sie hinzu /usr/local/heimdal/bin zu Ihrem Systempfad. Andernfalls vergewissern Sie sich, dass Sie die Tools mit ihrem vollständigen Pfad verwenden, wenn Sie sie verwenden.

Auch die krb5.conf und krb5.keytab Dateien gehen hinein /etc/heimdal jetzt.


4