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?
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?
Antworten:
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:
Anleitung
Diese Schritte setzen voraus, dass Sie versuchen, myuser@myhost.fqdn gegenüber der Domäne EXAMPLE.COM zu authentifizieren. Der Domänencontroller ist pdc.EXAMPLE.COM.
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.
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.
Laden Sie auf pdc.EXAMPLE.COM die Windows Server-Supporttools herunter und installieren Sie sie (insbesondere benötigen Sie ktpass.exe).
Führen Sie auf pdc.EXAMPLE.COM Folgendes aus:
ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -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/myhost.fqdn@EXAMPLE.COM" 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.
Kopieren Sie c: \ temp \ myhost.keytab sicher nach myhost und löschen Sie die Datei aus pdc.EXAMPLE.COM
Fügen Sie auf myhost das AD-Keytab zu Ihrem Haupt-Keytab hinzu:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
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
Stellen Sie sicher, 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
Ä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.
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.
Testen Sie SSH und Sudo. Beide sollten mit Ihren Active Directory-Anmeldeinformationen einwandfrei funktionieren.
Das ist alles dazu.
Links
Ein paar nützliche Seiten:
login_krb5-or-pwd
zu /usr/libexec/auth
- auch Konfigurationsdateien und KEYTAB sind jetzt in /etc/heimdal
und nicht in /etc/kerberosV
wie in früheren Versionen von OpenBSD.
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 heimdal
und login_krb5
von 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/bin
Ihren Systempfad . Stellen Sie andernfalls sicher, dass Sie die Werkzeuge mit ihrem vollständigen Pfad referenzieren, wenn Sie sie verwenden.
Auch die krb5.conf
und krb5.keytab
Dateien gehen /etc/heimdal
jetzt rein.