Jakie są wymagane kroki w celu uwierzytelnienia użytkowników z usługi Active Directory działającej w systemie Windows Server 2012 R2 we FreeBSD 10.0 przy użyciu sssd
zaplecza AD przy działającym Kerberos TGT?
źródło
Jakie są wymagane kroki w celu uwierzytelnienia użytkowników z usługi Active Directory działającej w systemie Windows Server 2012 R2 we FreeBSD 10.0 przy użyciu sssd
zaplecza AD przy działającym Kerberos TGT?
Istnieje kilka trudnych kwestii, aby wszystko działało od razu po wyjęciu z pudełka. FreeBSD obsługuje obecnie tylko sssd
wersję 1.9.6. Dlatego nie ma obsługi głównych nazw korporacyjnych.
Jeśli masz domenę z niepasującymi UPN, logowanie się nie powiedzie, ponieważ uwierzytelnianie Kerberos zakończy się niepowodzeniem podczas procesu, nawet jeśli FreeBSD obsługuje główne nazwy korporacyjne z Kerberos, sssd
nie może obsłużyć tego przypadku.
W rzeczywistej wersji sssd
jesteś ograniczony do głównej nazwy użytkownika w tej samej nazwie domeny, na przykład:
Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
[email protected] sAMAccountName: username
Znając to, możemy opisać kroki do pomyślnego uwierzytelnienia użytkowników z AD we FreeBSD.
Utwórz plik /etc/krb5.conf
o następującej treści:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
Zainstaluj Samba 4.1:
$ pkg install samba41
Utwórz plik /usr/local/etc/smb4.conf
o następującej treści:
[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
Poproś o bilet Kerberos administratora:
$ kinit Administrator
Następnie dołącz do domeny i utwórz keytab
$ net ads join createupn=host/[email protected] -k
$ net ads keytab create -k
Zainstaluj wymagane pakiety:
$ pkg install sssd cyrus-sasl-gssapi
Edytuj plik, /usr/local/etc/sssd/sssd.conf
aby dopasować te ustawienia:
[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]
Edytuj plik, /etc/nsswitch.conf
aby dopasować te ustawienia:
group: files sss
passwd: files sss
Zainstaluj opcjonalne pakiety do tworzenia katalogu domowego:
$ pkg install pam_mkhomedir
Zmodyfikuj niezbędne PAM
dziedziny, aby dopasować te ustawienia:
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>
Którego protokołu Kerberos używasz tutaj? Wbudowany czy security / krb5 z MIT?
Podczas instalacji sssd wymaga zainstalowania security / krb5, które w tej chwili jest nadal uważane za eksperymentalne we FreeBSD. Zatem to pytanie.
Nie mam szczęścia w uzyskiwaniu użytkowników / grup AD podczas wykonywania poleceń „getent”. może to wynikać z faktu, że nazwa NETBIOS różni się od nazwy domeny -ie w moim przypadku nazwa domeny to dawnsign.com, a nazwa NETBIOS to DSP.
Skonfigurowałem tylko moduł logowania pam.d. Jakie inne moduły pam należy edytować, aby uwierzytelnienie przebiegło pomyślnie?
Wszelkie dodatkowe informacje będą mile widziane!
źródło
Ponowna kompilacja samba4 z portów jest możliwa przy użyciu uwierzytelnienia winbind, takiego jak Linux, nawet bez sssd. Po prostu ponownie skompiluj samba4 z portów po włączeniu sasl ldap
Spowoduje to rekompilację samby z wszelkim niezbędnym wsparciem (gssapi, ldap, kerberos), a następnie edycję pliku nsswitch.conf w ten sposób
źródło
Witam
Jest to niewielka aktualizacja dotycząca używania sssd v1.11.7
Jeśli używasz „id_provider = reklama” i widzisz następujący błąd w pliku dziennika sssd:
Aby rozwiązać ten problem i sprawić, że integracja AD działa poprawnie, możesz użyć poniższej procedury. Teraz buduj sssd v1.11.7 z obsługą Samby, potrzebna jest kompilacja z src sssd, więc jest ona połączona z libsasl2
źródło
Oto mój przewodnik na temat integracji AD poprzez SSSD z tymi wersjami FreeBSD w momencie pisania tego tekstu (6/2017)
Instalacja (i zabawne problemy z pakowaniem i zależnością)
/usr/bin
, a drugi w/usr/local/bin
. Ponieważ żaden z podstawowych plików systemowych nie wydaje się być w pakiecie, nie można po prostu usunąć Heimdal KRB. Coś, o czym należy pamiętać.Przekazywanie zależności między różnymi pakietami (interesujące pogrubione pisma, sprzeczne pogrubione kursywa):
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
Odwróć zależności różnych pakietów:
net/openldap24-sasl-client: sysutils/msktutil
net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
net/openldap24-sasl-client: net-mgmt/adcli
sssd
, wymaga MIT Kerberos, mimo że Heimdal jest pakietem podstawowymadcli
chceopenldap-sasl-client
, ale dołączają się inne pakiety (w tym zależności zależnesssd
)openldap-client
, co jest mutexem z klientem sasl (z jakiegokolwiek niemądrego powodu). To sprawia, że instalacja jest trochę uciążliwa, nawet przy minimalnym zestawie pakietów binarnych.W tym momencie binarne pkg dla SSSD dla FreeBSD nie obejmuje obsługi AD w SSSD
SMB
adcli
istnieje, ale w chwili pisania tego tekstu nie działa.GSSAPI_MIT
cyrus-sasl-gssapi
jest wymagana, ale wersja binarna pkg nie działa i ma dziwne problemy z zależnością, które powodują, że usuwa SSSD.GSSAPI_MIT
openldap-sasl-client
jest wymagany dla funkcjonalności, ale SSSD chce pobrać wersję Openldap inną niż SASL.openldap-sasl-client
zGSSAPI
opcją wybraną (make config
) w portach.pkg remove –f openldap-client
openldap-client
bez robienia jakichkolwiek zapisków jakichkolwiek innych pakietów (takich jak SSSD) i umożliwi instalację wersji SASLopenldap-sasl-client
pkg remove –f sssd
(Opcjonalnie) Gdy wszystko będzie już działać i zweryfikowane, możesz użyć
pkg create
do tworzenia pakietów binarnych czterech pakietów z włączonymi odpowiednimi opcjami i używać ich zamiast budować je w portach w każdym systemie. Instalacja pliku binarnego przebiega podobnie do procesu budowania portów:pkg install sssd-1.11.7_8.txz
pkg add
inne pakiety (nie instaluj, nie dodawaj), zachowując pakiet openldap na koniec.openldap-sasl-client
wykonajpkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg create
zastąpić zależność odopenldap-client
zopenldap-sasl-client
do usunięcia trzeba to zrobić usunąć / reinstall. Nie miałem czasu na zrobienie tego.openldap-client
, więc trzeba je również naprawić.Konfiguracja Kerberos:
/etc/pam.d
plików, które musiałem zmodyfikować, aby SSSD działało z FreeBSD:/etc/pam.d/sshd:
/etc/pam.d/system:
/etc/pam.d/su:
(akapit)
system.dist
jest kopią/etc/pam.d/system
pliku zapasowego . Jest on zawarty w/etc/pam.d/su
powyższym pliku, aby uniknąć problemów z poleceniem su.su
dodawać konta AD jako root, ponieważ raz rootsu
nie musi się uwierzytelniać, a informacje o koncie są przeciągane przez przełącznik usługi nazw przez SSSD.sudo
ze względów bezpieczeństwaksu
i to działa do przełączania z użytkownika A na użytkownika B.ksu
(in/usr/bin
) nie ma domyślnie ustawionego SUIDksu
działał,chmod u+s /usr/bin/ksu
krb5
pakiet zainstalowany w/usr/local/bin
) jest SUID podczas instalacji/usr/local/bin
wcześniej/usr/bin
itdksu
wyświetli monit o podanie hasła AD / Kerberos użytkownika docelowegopasswd
nie będzie działać, aby zmienić hasło AD / Kerberos, nawet jeśli dodaszpam_sss.so
do pliku PAM passwd. Plikpasswd
binarny obsługuje tylko lokalne i NIS Użyjkpasswd
do zmiany hasła na serwerach AD / Kerberos.Przełącznik usługi nazw:
/etc/nsswitch.conf
Plik powinien być skonfigurowany do korzystania z usługi dla SSS passwd i grup. Przykład:group: files sss
passwd: files sss
Dołączanie do domeny:
adcli
kinit
przed użyciem, robi to dla Ciebie na podstawie dostarczonych kredytów.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
Narzędzie Sambanet
Narzędzie jest częścią pakietu Samba.smb.conf
pliku konfiguracyjnym, co sprawia, że korzystanie z niego jest trudniejsze i bardziej niewygodne, zwłaszcza w sposób nieinteraktywny.kinit
. Ponownie jest to bardziej niewygodne i sprawia, że nieco trudniej jest używać nieinteraktywnie w skrypcie, ponieważ istnieją dwa kroki zamiast jednego.Uwagi dotyczące dysku SSHD:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
podczas korzystania z tej opcji./bin/passwd
, która nie obsługuje nic poza NIS i lokalnym plikiem passwd.GSSAPICleanupCredentials yes
kdestroy
po wylogowaniuGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALM
do rozmowy z KDC, ale czasami robi się źle (na przykład, jeśli nazwa hosta nie zgadza się z nazwą DNS serwera SSH). Ta opcja pozwala SSHD na użycie dowolnej nazwy głównej w/etc/krb5.keytab
pliku, która zawiera odpowiedniąhost/<FQDN>@REALM
ssh -K <ip>
aby działał bez pytania o hasło (zakładając, że już wykonałeś „kinit”, oczywiście).źródło