Wie kann ich Active Directory mit security / sssd in FreeBSD 10.0 integrieren?

9

Was sind die erforderlichen Schritte, um Benutzer aus einem Active Directory zu authentifizieren, das unter Windows Server 2012 R2 in FreeBSD 10.0 ausgeführt wird, sssdwobei das AD-Backend mit Kerberos TGT funktioniert?

Vinícius Ferrão
quelle

Antworten:

14

Es gibt einige knifflige Überlegungen, damit alles sofort funktioniert. FreeBSD unterstützt sssdderzeit nur Version 1.9.6. Daher werden Enterprise Principal Names nicht unterstützt.

Wenn Sie eine Domäne mit nicht übereinstimmenden UPNs haben, kann sie sich nicht anmelden, da die Kerberos-Authentifizierung während des Vorgangs fehlschlägt, selbst wenn FreeBSD Enterprise Principal Names mit Kerberos unterstützt, sssdkann dieser Fall nicht behandelt werden.

In der aktuellen Version von sssdIhnen darf der Benutzerprinzipalname also nicht im selben Domänennamen enthalten sein, z. B.:

Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
[email protected] sAMAccountName: username

In diesem Wissen können wir die Schritte zur erfolgreichen Authentifizierung von Benutzern von AD in FreeBSD beschreiben.

1. Konfigurieren Sie Kerberos

Erstellen Sie die Datei /etc/krb5.confmit folgendem Inhalt:

[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes

2. Installieren Sie Samba 4.1 und konfigurieren Sie es so, dass es der Domäne beitritt

Installieren Sie Samba 4.1:

$ pkg install samba41

Erstellen Sie die Datei /usr/local/etc/smb4.confmit folgendem Inhalt:

[global]
    security = ads
    realm = EXAMPLE.COM
    workgroup = EXAMPLE

    kerberos method = secrets and keytab

    client signing = yes
    client use spnego = yes
    log file = /var/log/samba/%m.log

Fragen Sie nach einem Administrator-Kerberos-Ticket:

$ kinit Administrator

Treten Sie dann der Domain bei und erstellen Sie eine Keytab

$ net ads join createupn=host/[email protected] -k
$ net ads keytab create -k

3. Installieren Sie das sssd-Paket und Cyrus SASL mit Kerberos-Unterstützung

Installieren Sie die erforderlichen Pakete:

$ pkg install sssd cyrus-sasl-gssapi

Bearbeiten Sie die Datei /usr/local/etc/sssd/sssd.confentsprechend diesen Einstellungen:

[sssd]
    config_file_version = 2
    services = nss, pam
    domains = example.com

[nss]

[pam]

[domain/example.com]
    # Uncomment if you need offline logins
    #cache_credentials = true

    id_provider = ad
    auth_provider = ad
    access_provider = ad
    chpass_provider = ad

    # Comment out if the users have the shell and home dir set on the AD side
    default_shell = /bin/tcsh
    fallback_homedir = /home/%u

    # Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
    #ldap_sasl_mech = GSSAPI
    #ldap_sasl_authid = [email protected]

4. Fügen Sie sssd support zu nsswitch.conf hinzu

Bearbeiten Sie die Datei /etc/nsswitch.confentsprechend diesen Einstellungen:

group: files sss
passwd: files sss

5. Konfigurieren Sie PAM so, dass die SSD-Authentifizierung möglich ist und die Erstellung des Basisverzeichnisses erfolgt

Installieren Sie optionale Pakete für die Erstellung des Basisverzeichnisses:

$ pkg install pam_mkhomedir

Ändern Sie die erforderlichen PAMBereiche, um diese Einstellungen anzupassen:

auth            sufficient      /usr/local/lib/pam_sss.so
account         required        /usr/local/lib/pam_sss.so        ignore_unknown_user
session         required        /usr/local/lib/pam_mkhomedir.so  mode=0700
session         optional        /usr/local/lib/pam_sss.so
password        sufficient      /usr/local/lib/pam_sss.so        use_authtok

6. Wechseln Sie zum SASL-fähigen OpenLDAP-Client

$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client

7. Bestätigen Sie abschließend, dass alles funktioniert

$ getent passwd <username>
Vinícius Ferrão
quelle
Haben Sie eine Lösung für FreeBSD 10.3, bei der durch die Installation von openldap-sasl-client pkg sssd, ldb und samba44 entfernt? Ich habe das Gefühl, dass ich so nah dran bin, wenn ich Ihre Antwort verwende, aber ich bleibe bei diesem einen Teil.
bgStack15
2

Welche Kerberos verwenden Sie hier? Das eingebaute oder security / krb5 vom MIT?

Bei der Installation von sssd muss security / krb5 installiert sein, was derzeit in FreeBSD noch als experimentell angesehen wird. Also diese Frage.

Ich habe kein Glück, die AD-Benutzer / -Gruppen beim Ausführen von 'getent'-Befehlen zu erhalten. Dies kann daran liegen, dass sich der NETBIOS-Name vom Domain-Namen unterscheidet. In meinem Fall lautet der Domain-Name dawnsign.com und der NETBIOS-Name ist DSP.

Ich habe nur das Anmeldemodul pam.d konfiguriert. Welche anderen Pam-Module müssen bearbeitet werden, damit eine erfolgreiche Authentifizierung stattfinden kann?

Jede zusätzliche Info wäre sehr dankbar!

Doug Sampson
quelle
Ich benutze den Heimdal Kerberos von der Basis. Der MIT Kerberos-Port wird nicht installiert.
Vinícius Ferrão
1

Das Neukompilieren von samba4 von Ports ist möglich, um die WinBind-Authentifizierung wie Linux auch ohne SSD zu verwenden. Kompilieren Sie samba4 einfach von den Ports neu, nachdem Sie sasl ldap aktiviert haben

    pkg remove samba41 
    pkg install cyrus-sasl-gssapi samba36-libsmbclient pam_mkhomedir ldb 
    pkg remove -f openldap-client 
    pkg install openldap-sasl-client 
    cd /usr/ports/security/sssd && make install

Dadurch wird Samba mit der erforderlichen Unterstützung (gssapi, ldap, kerberos) neu kompiliert und anschließend die Datei nsswitch.conf wie folgt bearbeitet

passwd: files winbind
group: files winbind
Elbarna
quelle
Warum Winbind und Samba verwenden, wenn wir native Kerberos verwenden können?
Vinícius Ferrão
Für Active Directory-Benutzer ist Kerberos für Passwort und sso
elbarna
0

Hallo,

Dies ist ein kleines Update zur Verwendung von sssd v1.11.7

Wenn Sie "id_provider = ad" verwenden und den folgenden Fehler in der sssd-Protokolldatei sehen:

/var/log/sssd/sssd_example.com.log
(Sun Oct  5 18:41:37 2014) [sssd[be[alidaho.com]]] [sasl_bind_send] (0x0020): ldap_sasl_bind failed (-12)[Not Supported]
(Sun Oct  5 18:41:37 2014) [sssd[be[alidaho.com]]] [sasl_bind_send] (0x0080): Extended failure message: [unknown error]

Mit dem folgenden Verfahren können Sie dieses Problem beheben und die AD-Integration ordnungsgemäß ausführen. Erstellen Sie jetzt sssd v1.11.7 mit Samba-Unterstützung. Das Erstellen von src sssd ist erforderlich, damit es mit libsasl2 verknüpft ist

​pkg remove samba41
pkg install cyrus-sasl-gssapi samba36-libsmbclient pam_mkhomedir ldb
pkg remove -f openldap-client
pkg install openldap-sasl-client
cd /usr/ports/security/sssd && make install
Syepes
quelle
Was ist der Zweck des Entfernens von samba41? Funktioniert es nur mit samba36? Ich habe genau dieses Problem, möchte aber nicht auf 3.6 zurückgreifen, wenn ich nicht muss.
MikeyB
Sie entfernen die Samba41-Binärdatei und kompilieren dann Samba41 von den Ports neu (wird von sssd angefordert). In meinem Fall (eine Neuinstallation von 10.1) funktioniert die Samba41-Binärdatei nicht, die von Ports kompilierte Samba41 funktioniert einwandfrei
Elbarna
0

Hier ist mein Leitfaden zur AD-Integration über SSSD mit diesen Versionen von FreeBSD zum Zeitpunkt dieses Schreibens (6/2017).

  • FreeBSD 10.3 und 11.0 (10.3-RELEASE-p18 & 11.0-RELEASE-p9)
  • Installation (und die lustigen Verpackungs- und Abhängigkeitsprobleme)

    • Die erforderlichen Pakete scheinen nicht mit Heimdal Kerberos kompatibel zu sein, daher müssen die Dinge mit aktivierten MIT Kerberos-Flags installiert und kompiliert werden. Dies ist wahrscheinlich eher ein Problem der Verpackungsabhängigkeit als ein tatsächliches Kompatibilitätsproblem.
    • Heimdal wird mit dem Basissystem installiert, sodass Sie zwei Sätze von Kerberos-Befehlen haben, wenn Sie MIT Kerberos installieren, einen Satz in /usr/binund den anderen in /usr/local/bin. Da keine der Basissystemdateien in einem Paket enthalten zu sein scheint, können Sie das Heimdal KRB-Material nicht einfach entfernen. Etwas zu beachten.
    • Vorwärtsabhängigkeiten der verschiedenen Pakete (interessante Abbildungen in Fettdruck, widersprüchliche Abhängigkeiten in Fettdruck und Kursivschrift):

      • net-mgmt/adcli:net/openldap24-sasl-client
      • security/cyrus-sasl2-gssapi: security/cyrus-sasl2
      • net/openldap24-sasl-client: security/cyrus-sasl2
      • security/sssd: security/nss
      • security/sssd:security/krb5
      • security/sssd: security/cyrus-sasl2
      • security/sssd:net/openldap24-client
      • security/sssd: lang/python27
      • security/sssd: lang/python2
      • security/sssd: dns/c-ares
      • security/sssd: devel/tevent
      • security/sssd: devel/talloc
      • security/sssd: devel/popt
      • security/sssd: devel/pcre
      • security/sssd: devel/libunistring
      • security/sssd: devel/libinotify
      • security/sssd: devel/gettext-runtime
      • security/sssd: devel/ding-libs
      • security/sssd: devel/dbus
      • security/sssd: databases/tdb
      • security/sssd: databases/ldb
    • Umgekehrte Abhängigkeiten der verschiedenen Pakete:

      • net/openldap24-sasl-client: sysutils/msktutil
      • net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
      • net/openldap24-sasl-client: net-mgmt/adcli
        • Wie wir sssdselbst sehen, ist das MIT Kerberos erforderlich, obwohl wir Heimdal als Basispaket haben
        • adcliwill openldap-sasl-client, aber andere Pakete (einschließlich Unterabhängigkeiten von sssd) ziehen ein openldap-client, was Mutex mit dem sasl-Client ist (aus irgendeinem dummen Grund). Dies macht die Installation selbst bei einem minimalen Satz von Binärpaketen etwas mühsam.
        • Diese Abhängigkeiten sind sowohl für die binären Repo-Pakete als auch für die im Ports-Baum erstellten Pakete vorhanden. Dies erfordert eine ärgerliche spezielle Installationsmethode, um alles zu erhalten, was wir brauchen (siehe unten).
    • Zum jetzigen Zeitpunkt enthält das binäre Paket für SSSD für FreeBSD keine AD-Unterstützung in SSSD

      • Die Ports-Version von SSSD musste mit den entsprechenden aktivierten Optionen (make config) erstellt werden:
        • SMB
      • SSSD möchte auch den openldap-Client einbeziehen, wenn der openldap-sasl-Client wirklich benötigt wird, um ordnungsgemäß zu funktionieren.
    • Die pkg-Binärversion von adcliexistiert, funktioniert aber zum jetzigen Zeitpunkt nicht.
      • Wieder wurde die Ports-Version mit aktivierten Optionen kompiliert:
        • GSSAPI_MIT
    • cyrus-sasl-gssapi ist erforderlich, aber die pkg-Binärversion funktioniert nicht und weist seltsame Abhängigkeitsprobleme auf, die dazu führen, dass SSSD entfernt wird.
      • Erstellen Sie es aus Ports mit aktivierter MIT-KRB5-Option:
        • GSSAPI_MIT
    • openldap-sasl-client ist für die Funktionalität erforderlich, aber SSSD möchte die Nicht-SASL-Version von openldap verwenden.
      • Damit das funktioniert
        • Konfigurieren Sie openldap-sasl-clientmit der GSSAPIOption selected ( make config) in Ports.
        • Machen Sie die Make-In-Ports, um es zu erstellen
        • Führen Sie vor der Installation eine aus pkg remove –f openldap-client
          • Dadurch werden openldap-clientandere Pakete (wie SSSD) ohne automatische Entfernung entfernt und die Installation der SASL-Version ermöglicht
        • Machen Sie eine Make-Installation für die openldap-sasl-client
          • Dadurch wird es auf dem System installiert
    • Dadurch erhalten Sie alles, was für eine funktionierende SSSD mit AD-Funktionen erforderlich ist.
    • Beachten Sie, dass beim Kompilieren von SSSD aus Ports eine Menge Abhängigkeiten entstehen, die dazu führen, dass diese erstellt werden, und dass Konfigurationsoptionen ausgewählt werden müssen.
      • Es wird empfohlen, das Binärpaket zuerst mit pkg install sssd zu installieren und dann mit zu entfernen pkg remove –f sssd
        • Dies führt dazu, dass die Binärpakete für die meisten Dinge, die SSSD benötigt, eingezogen werden müssen, und die Notwendigkeit, all diese zu erstellen, hängt von den Ports ab, was einige Zeit in Anspruch nimmt.
      • Installieren Sie SSSD nach dem Entfernen von Ports mit aktivierten Optionen erneut, und Sie müssen nur die vier oben genannten Pakete neu erstellen, um ein funktionierendes Setup zu erhalten.
    • (Optional) Sobald alles funktioniert und überprüft wurde, können Sie pkg createBinärpakete der vier Pakete mit den richtigen aktivierten Optionen erstellen und diese verwenden, anstatt sie in Ports auf jedem System zu erstellen. Die Installation von Binary folgt einem ähnlichen Muster wie der Build-Prozess für Ports:

      • pkg install sssd-1.11.7_8.txz
        • Ihre Version kann natürlich anders sein
        • Dadurch wird das Binärpaket für SSSD installiert und alles, was es benötigt, aus dem FreeBSD-Repo abgerufen.
      • pkg add die anderen Pakete (nicht installieren, hinzufügen), wobei das openldap-Paket zum letzten Mal gespeichert wird.
      • Vor dem Hinzufügen openldap-sasl-clientmachen Sie apkg remove –f openldap-client
        • Dadurch wird die Nicht-SASL-Version entfernt und unsere Version kann installiert werden
      • pkg add openldap-sasl-client-2.4.44.txz
        • Auch hier kann Ihre Version anders sein
      • Sie sollten die erforderlichen Pakete installiert haben.
      • Es kann möglich sein , die Metadaten für die SSSD binär zu ändern , bevor die dabei pkg createdie Abhängigkeit von ersetzen openldap-clientmit openldap-sasl-clientder Notwendigkeit zu entfernen , diese entfernen / wieder installieren zu tun. Ich hatte keine Zeit, mich damit zu befassen.
        • Außerdem gibt es Unterabhängigkeiten von SSSD, die ebenfalls berücksichtigt werden openldap-client, sodass Sie diese ebenfalls beheben müssten.
      • Bitte beachten Sie, dass alle diese Noten als die Versionen dieser Pakete zur Zeit in den Ports sind als dies geschrieben wird , und die Abhängigkeiten sie mit ihnen verbunden ist . Dies kann sich ändern, wenn FreeBSD den Portbaum und die Binärdateien aktualisiert. Vielleicht haben wir eines Tages eine binäre Version von allem, was die richtigen Abhängigkeiten mit den richtigen Optionen für die AD-Funktionalität sofort abruft.
    • Kerberos-Konfiguration:

      • Beispieldatei /etc/krb5.conf:
[libdefaults]
   default_realm = MYDOMAIN.NET
   weiterleitbar = wahr
# Normalerweise alles, was Sie in einer AD-Umgebung benötigen, da DNS-SRV-Einträge
# identifiziert die AD / KRB-Server / -Dienste. Kommentieren Sie aus, wenn Sie
# möchten manuell auf Ihren AD-Server verweisen
dns_lookup_kdc = true
[Bereiche]
   MYDOMAIN.NET = {
# Wenn Sie manuell auf einen anderen AD-Server verweisen als in DNS
# admin_server = adserver.mydomain.net
# kdc = adserver.mydomain.net
   }}
[domain_realm]
   mydomain.net = MYDOMAIN.NET
   .mydomain.net = MYDOMAIN.NET
  • (Einzug)
    • SSSD-Konfiguration:
      • In diesem Beispiel werden POSIX-Attribute in AD für Benutzer und Gruppen vorausgesetzt, die im Allgemeinen erforderlich sind, wenn eine vorhandene Umgebung ersetzt wird, in der bereits UIDs und GIDs eingerichtet wurden.
      • Beispieldatei /usr/local/etc/sssd/sssd.conf:
[sssd]
config_file_version = 2
Domains = MYDOMAIN.NET
services = nss, pam, pac
fallback_homedir = / home /% u

[domain / MYDOMAIN.NET]
id_provider = ad
access_provider = ad
auth_provider = ad
chpass_provider = ad
# AD POSIX-Attribute verwenden, auskommentieren, wenn Sie automatisch generierte verwenden
# UIDs und GIDs.
ldap_id_mapping = False
cache_credentials = true
ad_server = adserver.mydomain.net
# wenn Sie keine Bash haben oder was auch immer in der LoginShell des AD-Kontos steht
# Attribut installiert
override_shell = / bin / tcsh
  • (Einzug)
    • PAM-Konfiguration:
      • Die PAM-Konfiguration unter FreeBSD ist aufgrund der Funktionsweise von OpenPAM etwas schwierig. Ich werde nicht auf Details eingehen, aber um pam_sss für SSSD zu verwenden und es funktionieren zu lassen und auch passwd-Anmeldungen zu haben, müssen Sie pam_unix zweimal in die Datei einfügen. Soweit ich weiß, hat dies mit einer sekundären Überprüfung zu tun, die "hinter den Kulissen" durchgeführt wird und für die das zweite pam_unix-Modul erforderlich ist.
        • Hier ist die Liste der /etc/pam.dDateien, die ich ändern musste, damit SSSD mit FreeBSD funktioniert:

/etc/pam.d/sshd:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / sshd 197769 05.10.2009 09: 28: 54Z des $
#
# PAM-Konfiguration für den Dienst "sshd"
#

# auth
auth ausreichend pam_opie.so no_warn no_fake_prompts
auth erforderlich pam_opieaccess.so no_warn allow_local
#auth ausreichend pam_krb5.so no_warn try_first_pass
#auth ausreichend pam_ssh.so no_warn try_first_pass
auth ausreichend pam_unix.so no_warn try_first_pass nullok
auth ausreichend pam_sss.so use_first_pass
auth erforderlich pam_unix.so no_warn use_first_pass

# Konto
Konto erforderlich pam_nologin.so
#account erforderlich pam_krb5.so
Konto erforderlich pam_login_access.so
Konto erforderlich pam_unix.so
Konto ausreichend pam_sss.so

# Sitzung
#session optional pam_ssh.so want_agent
Sitzung optional pam_sss.so
Sitzung erforderlich pam_mkhomedir.so mode = 0700
Sitzung erforderlich pam_permit.so

# Passwort
#password ausreichend pam_krb5.so no_warn try_first_pass
#password ausreichend pam_unix.so try_first_pass use_authtok nullok
Passwort ausreichend pam_unix.so try_first_pass use_authtok
Passwort ausreichend pam_sss.so use_authtok

/etc/pam.d/system:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / system 197769 05.10.2009 09: 28: 54Z des $
#
# Systemweite Standardeinstellungen
#

# auth
auth ausreichend pam_opie.so no_warn no_fake_prompts
auth erforderlich pam_opieaccess.so no_warn allow_local
#auth ausreichend pam_krb5.so no_warn try_first_pass
#auth ausreichend pam_ssh.so no_warn try_first_pass
#auth erforderlich pam_unix.so no_warn try_first_pass nullok
auth ausreichend pam_unix.so no_warn try_first_pass
auth ausreichend pam_sss.so use_first_pass
auth erforderlich pam_deny.so

# Konto
#account erforderlich pam_krb5.so
Konto erforderlich pam_login_access.so
Konto erforderlich pam_unix.so
Konto ausreichend pam_sss.so

# Sitzung
#session optional pam_ssh.so want_agent
Sitzung erforderlich pam_lastlog.so no_fail
Sitzung optional pam_sss.so
Sitzung erforderlich pam_mkhomedir.so mode = 0700

# Passwort
#password ausreichend pam_krb5.so no_warn try_first_pass
#password erforderlich pam_unix.so no_warn try_first_pass
Passwort ausreichend pam_unix.so no_warn try_first_pass nullok use_authtok
Passwort ausreichend pam_sss.so use_authtok
#password erforderlich pam_deny.so

/etc/pam.d/su:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / su 219663 15.03.2011 10: 13: 35Z des $
#
# PAM-Konfiguration für den Dienst "su"
#

# auth
auth ausreichend pam_rootok.so no_warn
auth ausreichend pam_self.so no_warn
auth erforderlich pam_group.so no_warn group = rad root_only fail_safe ruser
auth include system.dist

# Konto
Konto enthalten system.dist

# Sitzung
Sitzung erforderlich pam_permit.so
  • (Einzug)

    • Anmerkungen:
      • system.distist eine Kopie der Bestandsdatei /etc/pam.d/system. Es ist in der /etc/pam.d/suobigen Datei enthalten, um Probleme mit dem Befehl su zu vermeiden.
      • Es ist weiterhin möglich, suKonten als Root zu AD zu verwenden, da sich Root nach dem Root sunicht mehr authentifizieren muss und die Kontoinformationen über SSSD über den Namensdienstschalter abgerufen werden.
      • Wenn Sie wirklich von einem Benutzer (nicht root) zu einem anderen Benutzer wechseln möchten, sollten Sie dies nur sudoaus Sicherheitsgründen verwenden
      • Sie können auch verwenden ksuund das funktioniert für den Wechsel von Benutzer A zu Benutzer B.
        • In Heimdals ksu(in /usr/bin) ist SUID nicht standardmäßig eingestellt
          • Damit Heimdal ksufunktioniert,chmod u+s /usr/bin/ksu
        • MIT Kerberos ( krb5Paket installiert in /usr/local/bin) ist bei der Installation SUID
      • Da Heimdal Teil des Basispakets ist, verfügen Sie über beide Sätze von Kerberos-Binärdateien.
        • Möglicherweise möchten Sie die Standardpfade so anpassen, dass sie /usr/local/binvorher /usr/binusw.
      • ksu fordert den Benutzer zur Eingabe des AD / Kerberos-Kennworts des Zielbenutzers auf
      • passwdfunktioniert nicht, um Ihr AD / Kerberos-Kennwort zu ändern, selbst wenn Sie pam_sss.soder passwd PAM-Datei hinzufügen . Die passwdBinärdatei unterstützt nur die lokale und NIS-Verwendung kpasswd, um Ihr Kennwort auf den AD / Kerberos-Servern zu ändern.
    • Name Service Switch:

      • Die /etc/nsswitch.confDatei sollte so konfiguriert sein, dass der sss-Dienst für passwd und Gruppen verwendet wird. Beispiel:
        • group: files sss
        • passwd: files sss
    • Beitritt zu einer Domain:

      • Es gibt zwei Hauptwerkzeuge auf * nixs, um Ihre Linux-Box zu verbinden
        • adcli
          • Dies ist mein bevorzugtes Werkzeug. Es funktioniert sehr gut und alles kann über eine einzige Befehlszeile erledigt werden. Anmeldeinformationen können nicht interaktiv vergeben werden (über stdin usw.)
          • Es ist nicht erforderlich, kinitvor der Verwendung ein zu machen, es erledigt dies für Sie basierend auf den bereitgestellten Creds.
            • Beispiel:
              • adcli join -D mydomain.net -U Administrator--show-details –v
              • adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
                • Dieses Formular wird empfohlen, da das Dienstprogramm den vollqualifizierten Domänennamen nicht immer korrekt ermittelt. Wenn Sie den vollqualifizierten Domänennamen angeben, der sowohl dem Vorwärts- als auch dem Rückwärts-DNS für den Host entspricht, werden die Prinzipien korrekt erstellt. Wenn das Dienstprogramm den falschen Hostnamen verwendet (z. B. ohne DNS-Domäne), werden einige Dienstprinzipien nicht erstellt, und Dinge wie SSH auf dem Host können fehlschlagen.
        • Samba- netDienstprogramm
          • Das netDienstprogramm ist Teil der Samba-Suite.
          • Für dieses Dienstprogramm müssen die Domänendetails in der smb.confKonfigurationsdatei eingerichtet werden. Dies macht die Verwendung schwieriger und unpraktischer, insbesondere nicht interaktiv.
          • Für dieses Tool müssen Sie außerdem ein Kerberos-Ticket erwerben, bevor Sie es verwenden können kinit. Dies ist wiederum unpraktischer und macht es etwas schwieriger, nicht interaktiv in einem Skript zu verwenden, da es zwei Schritte anstelle von einem gibt.
    • SSHD-Überlegungen:

      • Es ist normalerweise ziemlich einfach, SSHD mit AD und SSSD zum Laufen zu bringen
      • Die folgenden Optionen müssen hinzugefügt werden /etc/ssh/sshd_config
        • GSSAPIAuthentication yes
          • Aktivieren Sie die GSS-API-Authentifizierung für SSHD. Dadurch wird SSHD gegen das AD KDC authentifiziert
        • PasswordAuthentication yes
          • Benutzern erlauben, sich mit Passwörtern anzumelden. Erforderlich, wenn Sie möchten, dass ein Benutzer beim Anmelden ein KRB5-Ticket erhält. Ohne diese Option kann das System das vom KDC gesendete TGT nicht entschlüsseln.
        • ChallengeResponseAuthentication yes
          • Für FreeBSD scheint diese Methode am besten zu funktionieren.
            • Stellen Sie sicher, dass Sie konfigurieren, PasswordAuthentication nowenn Sie diese Option verwenden.
            • Dies ist die einzige Methode, die ich für FreeBSD gefunden habe, um ein abgelaufenes Passwort beim Anmelden zu ändern. Wenn Sie den anderen verwenden, wird dieser aufgerufen /bin/passwd, der nur NIS und die lokale passwd-Datei unterstützt.
        • GSSAPICleanupCredentials yes
          • (optional) Wird kdestroybeim Abmelden ausgeführt
        • GSSAPIStrictAcceptorCheck no
          • (optional) Diese Option ist häufig erforderlich, wenn SSHD über seinen eigenen Hostnamen verwirrt ist oder über mehrere Hosts verfügt usw. oder auf andere Weise einen anderen Dienstprinzipal für die Kommunikation mit dem KDC verwendet. Normalerweise verwendet SSHD das Dienstprinzipal host/<FQDN>@REALM, um mit dem KDC zu sprechen, macht es jedoch manchmal falsch (z. B. wenn der Hostname nicht mit dem DNS-Namen des SSH-Servers übereinstimmt). Mit dieser Option kann SSHD jedes Prinzipal in der /etc/krb5.keytabDatei verwenden, einschließlich des richtigenhost/<FQDN>@REALM
      • Abhängig von der Kombination der von Ihnen verwendeten Optionen müssen Sie dem KDC möglicherweise Host-Principals hinzufügen, damit die IPv4- und IPv6-Adressen Ihres Hosts ssh -K <ip>funktionieren, damit Sie ohne Aufforderung zur Eingabe eines Kennworts arbeiten können (vorausgesetzt, Sie haben bereits einen Kinit durchgeführt). natürlich).
jbgeek
quelle
Ich hoffe das hilft den Leuten. Dies wird im Wesentlichen aus meinen eigenen Notizen zusammengestellt, während versucht wird, FBSD10 und 11 mit SSSD und einem AD-Server zum Laufen zu bringen. Das größte Problem, auf das ich gestoßen bin, waren die PAM-Konfigurationen, die wirklich wackelig waren und nicht wie unter Linux funktionierten (Fehler in OpenPAM?), Und die Verpackung / Abhängigkeiten. Fühlen Sie sich frei zu kommentieren, wenn Sie alternative Methoden haben. Vor allem, wenn Sie es mit dem eingebauten Heimdal Kerberos zum Laufen gebracht haben, wie es Vinícius Ferrão in seiner Antwort zu tun schien. Ich habe es nicht versucht, da SSSD darauf besteht, das MIT krb5-Paket trotzdem einzuspielen.
jbgeek
Aktualisiertes pam.d Zeug. Ich habe den Grund für die Wonkyness von openpam entdeckt und das Update dafür gefunden (zweimal mit dem Modul pam_unix, damit es einen "versteckten" Test besteht, der für eine erfolgreiche Anmeldung erforderlich ist).
jbgeek