Authentifizierung von OpenBSD gegenüber Active Directory

Authentifizierung von OpenBSD gegenüber Active Directory

Bearbeiten:Dies wurde als Q&A neu formatiert. Wenn jemand dies von Community Wiki in eine typische Frage ändern kann, ist das wahrscheinlich auch passender.

Wie kann ich OpenBSD gegenüber Active Directory authentifizieren?

Antwort1

Vorwort

Die Authentifizierung gegenüber Active Directory mit Kerberos ist auf Systemen, die PAM verwenden, ziemlich einfach, OpenBSD tut dies jedoch nicht und macht es dadurch schwieriger. Aus einem TCPdump geht hervor, dass die PAM-Systeme nur eine Vorauthentifizierung durchführen, während das bsd_auth-System von OpenBSD den gesamten Kerberos-Authentifizierungsprozess verwendet.

Wie dem auch sei, ich habe eine Weile gebraucht, um das herauszufinden, daher werden Ihnen ein paar kurze Anweisungen hoffentlich Zeit ersparen.

Ein paar kurze Anmerkungen, bevor wir beginnen:

  • Benutzer müssen auf dem OpenBSD-System vorhanden sein, bevor sie versuchen, sich anzumelden. Sie werden nicht automatisch erstellt.
  • Wenn Sie Benutzer automatisch erstellen möchten, sehen Sie sich Samba/Winbind an. Ich hatte damit nur Ärger (unerklärliche Abstürze, schwerwiegende Protokoll-Spamming, unzuverlässige Authentifizierung), also verwende ich es nur, wenn es sein muss.
  • Dies wurde auf OpenBSD 4.5 und Windows Server 2003 getestet. Ich bin ziemlich sicher, dass es mit Win2k funktioniert, aber Ihre Erfahrung kann abweichen.
  • Diese Version von OpenBSD verwendet Heimdal 0.7.2. Alles hier außer den Pfaden und login.conf-Sachen wird wahrscheinlich auf anderen *nixes funktionieren, die dasselbe Heimdal ausführen, aber auch hier gilt: Ihre Ergebnisse können abweichen.

Anweisungen

Bei diesen Schritten wird davon ausgegangen, dass Sie versuchen, sich zu authentifizieren[email geschützt]gegen die Domäne EXAMPLE.COM. Der Domänencontroller ist pdc.EXAMPLE.COM.

  1. Erstellen Sie ein Active Directory-Benutzerkonto mit dem Namenmein Gastgeber(das ist kein Tippfehler, diese Anweisungen funktionieren nicht mit einem Computerkonto). Deaktivieren Sie das Ablaufen von Passwörtern und lassen Sie den Benutzer sein eigenes Passwort nicht ändern. Legen Sie das Passwort beliebig fest – 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 Support Tools 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 geschützt]-mapuser myhost -pType KRB5 _NT_PRINCIPAL +rndpass

    Dadurch wird das Passwort des myhost-Benutzers auf ein zufälliges Passwort (+rndpass) aktualisiert, der Kerberos-Prinzipal "host/[email geschützt]" an den Benutzer „myhost“ im Active Directory und speichert dann die Haupt- und privaten Schlüsselinformationen in der -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 den AD-Keytab zu Ihrem Haupt-Keytab hinzu:

    ktutil copy /Pfad/zu/myhost.keytab /etc/kerberosV/krb5.keytab

  7. Konfigurieren Sie /etc/krb5.conf. Nachfolgend finden Sie das absolute Minimum, das Sie benötigen. Es stehen viele Optionen zur Verfügung. Weitere Informationen finden Sie auf der Manpage. Dadurch wird die maximal zulässige Taktabweichung auf 5 Minuten festgelegt, EXAMPLE.COM zum Standardbereich gemacht und Kerberos mitgeteilt, wie zwischen DNS- und Kerberos-Bereichen übersetzt werden soll.

    [libdefaults]
    clockskew = 300
    default_realm = BEISPIEL.COM

    [Bereiche]
    BEISPIEL.COM = {
    Standarddomäne = BEISPIEL.COM
    }

    [Domänenbereich]
    .EXAMPLE.COM = EXAMPLE.COM

  8. Überprüfen Sie, ob 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 Kerberos-Authentifizierung zu verwenden. Ihre genaue login.conf-Konfiguration hängt davon ab, wie Sie Ihr System verwenden. Um jedoch von einer Standardinstallation zur Verwendung von Kerberos zu wechseln, bearbeiten und kommentieren Sie einfach diese Zeile unter der Standard-Anmeldeklasse:

    :tc=auth-defaults:\

    Und fügen Sie darüber hinzu:

    :auth=krb5-or-pwd:\

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

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

    Sie können die Passwörter bestehender Benutzer „chpass <user>“ löschen und den Wert „Verschlüsseltes Passwort:“ durch ein Asterisk (*) ersetzen.

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

Das ist alles dazu.

Links

Einige nützliche Websites:

Antwort2

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

In OpenBSD 5.6 wurde entschieden, Heimdal aus der Basisdistribution zu entfernen, da Bedenken hinsichtlich der Codequalität bestanden und niemand bereit war, die Zeit für eine Prüfung aufzuwenden. In 5.7 wurde es als Paket verfügbar gemacht (für 5.6 müssen Sie es aus dem Quellcode erstellen oder herausfinden, wie Sie es im Quellcode wieder aktivieren können). Bevor Sie also die obigen Anweisungen befolgen, müssen die folgenden zusätzlichen Schritte ausgeführt werden:

-3. Installieren Sie die heimdalund login_krb5Pakete von Ihrem bevorzugten Mirror.

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

-1. Wenn Sie die Heimdal-Tools häufig verwenden möchten, fügen Sie sie /usr/local/heimdal/binIhrem Systempfad hinzu. Andernfalls müssen Sie bei der Verwendung der Tools unbedingt ihren vollständigen Pfad angeben.

Außerdem gehen die krb5.confund krb5.keytabDateien /etc/heimdaljetzt hinein.

verwandte Informationen