OpenBSD gegen Active Directory authentifizieren

24

Bearbeiten: Neu formatiert als Q & A. Wenn jemand dies vom Community-Wiki zu einer typischen Frage ändern kann, ist dies wahrscheinlich auch angemessener.

Wie kann ich OpenBSD gegen Active Directory authentifizieren?

sh-beta
quelle
Sehr schön! Das sieht sehr gründlich und gut geschrieben aus. Ich benutze kein OpenBSD, aber die AD-Teile sehen genau richtig aus.
Evan Anderson
+1 für eine nette Anleitung, 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 anderes das ändern kann, fahren Sie fort.
sh-beta

Antworten:

17

Vorwort

Die Authentifizierung gegen Active Directory mit Kerberos ist auf Systemen mit PAM ziemlich einfach, OpenBSD jedoch nicht und erschwert dies. Aus einem tcpdump geht hervor, dass die PAM-Systeme gerade eine Vorauthentifizierung durchführen, während das OpenBSD-System bsd_auth den gesamten Kerberos-Authentifizierungsprozess verwendet.

Wie auch immer, es hat eine Weile gedauert, bis ich es herausgefunden habe. Hoffentlich sparen Sie mit einigen präzisen Anweisungen Zeit.

Ein paar kurze Notizen, bevor wir beginnen:

  • Benutzer müssen auf dem OpenBSD-System vorhanden sein, bevor Sie sich anmelden können. Sie werden nicht automatisch erstellt.
  • Wenn Sie möchten, dass Benutzer automatisch erstellt werden, schauen Sie in Samba / Winbind nach. Ich hatte nichts als Probleme (unerklärliche Abstürze, schwerwiegender Log-Spam, unzuverlässige Authentifizierung), daher benutze ich es nur, wenn ich muss.
  • Dies wurde unter 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 dasselbe Heimdal läuft, aber auch hier YMMV.

Anleitung

Diese Schritte setzen voraus, dass Sie versuchen, [email protected] gegenüber der Domäne EXAMPLE.COM zu authentifizieren. Der Domänencontroller ist pdc.EXAMPLE.COM.

  1. Erstellen Sie ein Active Directory-Benutzerkonto mit dem Namen myhost (das ist kein Tippfehler, diese Anweisungen funktionieren nicht mit einem Computerkonto). Deaktivieren Sie den Kennwortablauf und lassen Sie den Benutzer nicht sein eigenes Kennwort ändern. Stellen Sie das Passwort nach Belieben ein - es wird bald geändert.

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

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

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

    ktpass -out c: \ temp \ myhost.keytab -princ host/[email protected] -mapuser myhost -pType KRB5 _NT_PRINCIPAL + rndpass

    Dadurch wird das Kennwort des myhost-Benutzers auf einen zufälligen Wert (+ rndpass) aktualisiert, und der Kerberos-Principal "host/[email protected]" wird dem Benutzer "myhost" in Active Directory zugeordnet. Anschließend werden die Informationen zu Principal und privatem Schlüssel in das gespeichert -out Keytab-Datei.

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

  6. Fügen Sie auf myhost das AD-Keytab zu Ihrem Haupt-Keytab hinzu:

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

  7. Konfigurieren Sie /etc/krb5.conf. Unten finden Sie das absolute Minimum, das Sie benötigen. Es gibt eine Vielzahl von Optionen. Weitere Informationen finden Sie auf der Manpage. Dadurch wird lediglich die maximal zulässige Zeitverschiebung auf 5 Minuten festgelegt, und BEISPIEL.COM wird zum Standardbereich. Außerdem wird Kerberos mitgeteilt, wie zwischen DNS- und Kerberos-Bereichen gewechselt werden soll.

    [libdefaults]
    clockskew = 300
    default_realm = EXAMPLE.COM

    [Realms]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    .EXAMPLE.COM = EXAMPLE.COM

  8. Stellen Sie sicher, dass Sie ein Ticket erhalten können:

    # kinit [email protected]
    [email protected]'s Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: [email protected]

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/[email protected]

  9. Ändern Sie /etc/login.conf, um die Kerberos-Authentifizierung zu verwenden. Die genaue Konfiguration der login.conf hängt davon ab, wie Sie Ihr System verwenden. Wenn Sie jedoch von einer Vanilla-Installation zu Kerberos wechseln möchten, müssen Sie nur diese Zeile unter der Standardanmeldeklasse bearbeiten und kommentieren:

    :tc=auth-defaults:\

    Und füge darüber hinzu:

    :auth=krb5-or-pwd:\

    Dies überprüft zuerst Kerberos, es sei denn, der Benutzer ist root. Wenn Kerberos fehlschlägt, werden lokale Kennwörter verwendet.

  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 Kennwörter bestehender Benutzer "chpass" löschen <user>und den Wert "Encrypted password:" durch ein Sternchen (*) ersetzen.

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

Das ist alles dazu.

Links

Ein paar nützliche Seiten:

sh-beta
quelle
Es sieht so aus, als ob 2008 R2 ktpass.exe eingebaut hat. Vielleicht auch 2008, kann ich zu diesem Zeitpunkt noch nicht genau sagen. Wenn jemand klarstellen kann, wäre das großartig.
Aaron Mason
Um dies ab 5.7 zu tun, müssen Sie außerdem das Heimdal-Paket installieren - es wurde in 5.6 von der Basis entfernt.
Aaron Mason
Nachtrag zum vorherigen Kommentar - Sie werden auch das login_krb5 Paket installieren müssen und kopieren Sie die login_krb5-or-pwdzu /usr/libexec/auth- auch Konfigurationsdateien und KEYTAB sind jetzt in /etc/heimdalund nicht in /etc/kerberosVwie in früheren Versionen von OpenBSD.
Aaron Mason
5

Eine Aktualisierung der obigen Anweisungen, da sich seitdem einige Dinge geändert haben.

In OpenBSD 5.6 wurde die Entscheidung getroffen, Heimdal aus der Basisdistribution zu entfernen, da Bedenken hinsichtlich der Codequalität bestehen und niemand bereit ist, die Zeit für die Prüfung aufzuwenden. In 5.7 wurde es als Paket zur Verfügung gestellt (Für 5.6 müssen Sie aus der Quelle erstellen oder herausfinden, wie Sie es in der Quelle wieder aktivieren können). Bevor Sie die obigen Anweisungen befolgen können, müssen Sie die folgenden zusätzlichen Schritte ausführen:

-3. Installieren Sie die Pakete heimdalund login_krb5von Ihrem Lieblingsspiegel.

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

-1. Wenn Sie die heimdal-Tools häufig verwenden möchten, erweitern Sie /usr/local/heimdal/binIhren Systempfad . Stellen Sie andernfalls sicher, dass Sie die Werkzeuge mit ihrem vollständigen Pfad referenzieren, wenn Sie sie verwenden.

Auch die krb5.confund krb5.keytabDateien gehen /etc/heimdaljetzt rein.

Aaron Mason
quelle