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, sssd
wobei das AD-Backend mit Kerberos TGT funktioniert?
quelle
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, sssd
wobei das AD-Backend mit Kerberos TGT funktioniert?
Es gibt einige knifflige Überlegungen, damit alles sofort funktioniert. FreeBSD unterstützt sssd
derzeit 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, sssd
kann dieser Fall nicht behandelt werden.
In der aktuellen Version von sssd
Ihnen 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.
Erstellen Sie die Datei /etc/krb5.conf
mit folgendem Inhalt:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
Installieren Sie Samba 4.1:
$ pkg install samba41
Erstellen Sie die Datei /usr/local/etc/smb4.conf
mit 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
Installieren Sie die erforderlichen Pakete:
$ pkg install sssd cyrus-sasl-gssapi
Bearbeiten Sie die Datei /usr/local/etc/sssd/sssd.conf
entsprechend 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]
Bearbeiten Sie die Datei /etc/nsswitch.conf
entsprechend diesen Einstellungen:
group: files sss
passwd: files sss
Installieren Sie optionale Pakete für die Erstellung des Basisverzeichnisses:
$ pkg install pam_mkhomedir
Ändern Sie die erforderlichen PAM
Bereiche, 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
$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client
$ getent passwd <username>
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!
quelle
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
Dadurch wird Samba mit der erforderlichen Unterstützung (gssapi, ldap, kerberos) neu kompiliert und anschließend die Datei nsswitch.conf wie folgt bearbeitet
quelle
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:
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
quelle
Hier ist mein Leitfaden zur AD-Integration über SSSD mit diesen Versionen von FreeBSD zum Zeitpunkt dieses Schreibens (6/2017).
Installation (und die lustigen Verpackungs- und Abhängigkeitsprobleme)
/usr/bin
und 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
sssd
selbst sehen, ist das MIT Kerberos erforderlich, obwohl wir Heimdal als Basispaket habenadcli
willopenldap-sasl-client
, aber andere Pakete (einschließlich Unterabhängigkeiten vonsssd
) ziehen einopenldap-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.Zum jetzigen Zeitpunkt enthält das binäre Paket für SSSD für FreeBSD keine AD-Unterstützung in SSSD
SMB
adcli
existiert, funktioniert aber zum jetzigen Zeitpunkt nicht.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.GSSAPI_MIT
openldap-sasl-client
ist für die Funktionalität erforderlich, aber SSSD möchte die Nicht-SASL-Version von openldap verwenden.openldap-sasl-client
mit derGSSAPI
Option selected (make config
) in Ports.pkg remove –f openldap-client
openldap-client
andere Pakete (wie SSSD) ohne automatische Entfernung entfernt und die Installation der SASL-Version ermöglichtopenldap-sasl-client
pkg remove –f sssd
(Optional) Sobald alles funktioniert und überprüft wurde, können Sie
pkg create
Binä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
pkg add
die anderen Pakete (nicht installieren, hinzufügen), wobei das openldap-Paket zum letzten Mal gespeichert wird.openldap-sasl-client
machen Sie apkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg create
die Abhängigkeit von ersetzenopenldap-client
mitopenldap-sasl-client
der Notwendigkeit zu entfernen , diese entfernen / wieder installieren zu tun. Ich hatte keine Zeit, mich damit zu befassen.openldap-client
, sodass Sie diese ebenfalls beheben müssten.Kerberos-Konfiguration:
/etc/pam.d
Dateien, die ich ändern musste, damit SSSD mit FreeBSD funktioniert:/etc/pam.d/sshd:
/etc/pam.d/system:
/etc/pam.d/su:
(Einzug)
system.dist
ist eine Kopie der Bestandsdatei/etc/pam.d/system
. Es ist in der/etc/pam.d/su
obigen Datei enthalten, um Probleme mit dem Befehl su zu vermeiden.su
Konten als Root zu AD zu verwenden, da sich Root nach dem Rootsu
nicht mehr authentifizieren muss und die Kontoinformationen über SSSD über den Namensdienstschalter abgerufen werden.sudo
aus Sicherheitsgründen verwendenksu
und das funktioniert für den Wechsel von Benutzer A zu Benutzer B.ksu
(in/usr/bin
) ist SUID nicht standardmäßig eingestelltksu
funktioniert,chmod u+s /usr/bin/ksu
krb5
Paket installiert in/usr/local/bin
) ist bei der Installation SUID/usr/local/bin
vorher/usr/bin
usw.ksu
fordert den Benutzer zur Eingabe des AD / Kerberos-Kennworts des Zielbenutzers aufpasswd
funktioniert nicht, um Ihr AD / Kerberos-Kennwort zu ändern, selbst wenn Siepam_sss.so
der passwd PAM-Datei hinzufügen . Diepasswd
Binärdatei unterstützt nur die lokale und NIS-Verwendungkpasswd
, um Ihr Kennwort auf den AD / Kerberos-Servern zu ändern.Name Service Switch:
/etc/nsswitch.conf
Datei 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:
adcli
kinit
vor der Verwendung ein zu machen, es erledigt dies für Sie basierend auf den bereitgestellten Creds.adcli join -D mydomain.net -U Administrator--show-details –v
adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
net
Dienstprogrammnet
Dienstprogramm ist Teil der Samba-Suite.smb.conf
Konfigurationsdatei eingerichtet werden. Dies macht die Verwendung schwieriger und unpraktischer, insbesondere nicht interaktiv.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:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
wenn Sie diese Option verwenden./bin/passwd
, der nur NIS und die lokale passwd-Datei unterstützt.GSSAPICleanupCredentials yes
kdestroy
beim Abmelden ausgeführtGSSAPIStrictAcceptorCheck no
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.keytab
Datei verwenden, einschließlich des richtigenhost/<FQDN>@REALM
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).quelle