sssd
Kerberos TGT çalışırken AD arka ucuyla birlikte FreeBSD 10.0'da Windows Server 2012 R2 üzerinde çalışan bir Active Directory'den kullanıcıların kimliğini doğrulamak için gerekli adımlar nelerdir ?
sssd
Kerberos TGT çalışırken AD arka ucuyla birlikte FreeBSD 10.0'da Windows Server 2012 R2 üzerinde çalışan bir Active Directory'den kullanıcıların kimliğini doğrulamak için gerekli adımlar nelerdir ?
Yanıtlar:
Her şeyin kullanıma hazır hale getirilmesi için bazı zor noktalar var. FreeBSD sssd
şu anda yalnızca 1.9.6 sürümünü desteklemektedir . Dolayısıyla, Kurumsal Asıl Adları için destek yoktur.
Eşleşmeyen UPN'leri olan bir etki alanınız varsa, Kerberos kimlik doğrulaması işlem sırasında başarısız olacağından, Kerberos ile Kurumsal Ana Adları destekleyen FreeBSD ile bile, sssd
bu durum işlenemez.
Dolayısıyla, gerçek sürümünüzde sssd
aynı Alan Adında Kullanıcı Asıl Adı olması sınırlıdır, örneğin:
Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
username@example.com sAMAccountName: username
Bunu bilerek, FreeBSD'de AD'den kullanıcıların kimliğini doğrulamak için adımları açıklayabiliriz.
Dosyayı /etc/krb5.conf
aşağıdaki içerikle oluşturun:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
Samba 4.1'i yükleyin:
$ pkg install samba41
Dosyayı /usr/local/etc/smb4.conf
aşağıdaki içerikle oluşturun:
[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
Yönetici Kerberos Bileti isteyin:
$ kinit Administrator
Ardından etki alanına katılın ve bir keytab oluşturun
$ net ads join createupn=host/server-hostname.example.com@EXAMPLE.COM -k
$ net ads keytab create -k
Gerekli paketleri kurun:
$ pkg install sssd cyrus-sasl-gssapi
Dosyayı /usr/local/etc/sssd/sssd.conf
bu ayarlarla eşleşecek şekilde düzenleyin :
[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 = SERVER-HOSTNAME$@EXAMPLE.COM
Dosyayı /etc/nsswitch.conf
bu ayarlarla eşleşecek şekilde düzenleyin :
group: files sss
passwd: files sss
Giriş dizini oluşturmak için isteğe bağlı paketler yükleyin:
$ pkg install pam_mkhomedir
Gerekli PAM
alemleri bu ayarlarla eşleşecek şekilde değiştirin :
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>
Burada hangi Kerberos kullanıyorsunuz? MIT'ten yerleşik olan mı yoksa güvenlik / krb5 mi?
Sssd'yi yüklerken, şu anda FreeBSD'de hala deneysel kabul edilen güvenlik / krb5'in yüklenmesi gerekir. Böylece bu soru.
'Getent' komutlarını yürütürken AD kullanıcılarını / gruplarını alma şansım yok. NETBIOS adının -ie etki alanımdan farklı olması nedeniyle, etki alanı adı dawnsign.com ve NETBIOS adı DSP olabilir.
Yalnızca pam.d giriş modülünü yapılandırdım. Başarılı bir kimlik doğrulamanın gerçekleşmesi için başka hangi pam modüllerinin düzenlenmesi gerekir?
Herhangi bir ek bilgi büyük mutluluk duyacağız!
Samba4'ü bağlantı noktalarından derlemek, sssd olmadan bile linux gibi winbind yetkilendirmesini kullanmak mümkündür. Sasl Ldap'ı etkinleştirdikten sonra samba4'ü bağlantı noktalarından kolayca yeniden derleyin
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
Bu, samba'yı gerekli tüm destekle (gssapi, ldap, kerberos) yeniden derleyecek ve nsswitch.conf'u bu şekilde düzenleyecek
passwd: files winbind
group: files winbind
Merhaba
Bu sssd v1.11.7 kullanımı ile ilgili küçük bir güncelleme
"İd_provider = ad" kullanıyorsanız ve sssd günlük dosyasında aşağıdaki hatayı görüyorsanız:
/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]
Bu sorunu çözmek ve AD entegrasyonunun düzgün çalışmasını sağlamak için aşağıdaki yordamı kullanabilirsiniz. Şimdi sssd v1.11.7'yi Samba desteği ile inşa edin, src sssd'den bina gereklidir, böylece libsasl2 ile bağlantılıdır
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
Kurulum (ve eğlenceli paketleme ve bağımlılık sorunları)
/usr/bin
ve diğer in /usr/local/bin
. Temel sistem dosyalarının hiçbiri bir pakette görünmediğinden, Heimdal KRB öğelerini kaldıramazsınız. Dikkat edilmesi gereken bir şey.Çeşitli paketlerin ileriye bağımlılıkları (kalın italik olarak ilginç bölümler, kalın italik olarak çakışan bölümler):
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
Çeşitli paketlerin ters bağımlılıkları:
net/openldap24-sasl-client: sysutils/msktutil
net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
net/openldap24-sasl-client: net-mgmt/adcli
sssd
gibi, Heimdal'ı temel paket olarak görsek de, MIT Kerberos'u gerektiriradcli
istiyor openldap-sasl-client
, ancak diğer paketler (alt bağımlılıkları dahil sssd
)openldap-client
, sasl istemcisi ile muteksi olan (aptalca bir nedenden dolayı) . Bu, minimum ikili paketlerle bile kurulumu biraz acı haline getirir.Bu yazı itibariyle, FreeBSD için SSSD'nin ikili paketi, SSSD'ye AD desteği içermez
SMB
adcli
var, ancak bu yazı itibariyle çalışmıyor.
GSSAPI_MIT
cyrus-sasl-gssapi
gereklidir, ancak pkg ikili sürümü çalışmaz ve SSSD'yi kaldırmasına neden olan garip bağımlılık sorunları vardır.
GSSAPI_MIT
openldap-sasl-client
işlevsellik için gereklidir, ancak SSSD openldap'ın SASL olmayan sürümünü almak istiyor.
openldap-sasl-client
ile yapılandırın .GSSAPI
make config
pkg remove –f openldap-client
openldap-client
diğer paketlerin (SSSD gibi) otomatik modlarını almadan kaldırılır ve SASL sürümünün yüklenmesine izin veriropenldap-sasl-client
pkg remove –f sssd
(İsteğe bağlı) Her şey çalışıp doğrulandıktan sonra pkg create
, uygun seçeneklerin etkinleştirildiği dört paketin ikili paketlerini oluşturmak için kullanabilir ve bunları her sistemdeki bağlantı noktalarına kurmak yerine kullanabilirsiniz. İkili kurulum, bağlantı noktaları oluşturma işlemine benzer bir desen izler:
pkg install sssd-1.11.7_8.txz
pkg add
openldap paketini son olarak kaydederek diğer paketleri (kurmayın, eklemeyin)openldap-sasl-client
do apkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg create
olan bağlılığı yerine openldap-client
birlikteopenldap-sasl-client
bu kaldırma / yeniden yapmak ihtiyacı ortadan kaldırmak için. Bunu yapmak için zamanım olmadı.
openldap-client
, bu yüzden bunları da düzeltmeniz gerekir.Kerberos Yapılandırması:
[Libdefaults] default_realm = MYDOMAIN.NET forwardable = true # Normalde bir AD ortamında ihtiyacınız olan her şey, çünkü DNS SRV kayıtları # AD / KRB sunucularını / hizmetlerini tanımlayacaktır. Eğer yorum yap # manuel olarak AD sunucunuzu işaret etmek istiyor dns_lookup_kdc = true [Alemleri] MYDOMAIN.NET = { # Manuel olarak DNS'dekinden farklı bir AD sunucusuna işaret ediyorsanız # admin_server = adserver.alanadim.net # kdc = adserver.alanadim.net } [Domain_realm] mydomain.net = MYDOMAIN.NET .mydomain.net = MYDOMAIN.NET
[SSSD] config_file_version = 2 etki alanları = MYDOMAIN.NET hizmetleri = nss, pam, pac fallback_homedir = / ana sayfa /% u [Alan / MYDOMAIN.NET] id_provider = reklam access_provider = reklam auth_provider = reklam chpass_provider = reklam # AD POSIX özniteliklerini kullanın, otomatik olarak oluşturulan # UID'ler ve GID'ler. ldap_id_mapping = Yanlış cache_credentials = doğru ad_server = adserver.alanadim.net # bash yoksa veya AD hesabının login'inde ne varsa # özellik yüklendi geçersiz kılma_ kabuğu = / bin / tcsh
/etc/pam.d
SSSD'nin FreeBSD ile çalışmasını sağlamak için değiştirmek zorunda olduğum dosyaların listesi :/etc/pam.d/sshd:
# FreeBSD: releng / 11.0 / etc / pam.d / sshd 197769 2009-10-05 09: 28: 54Z des $ # # "Sshd" hizmeti için PAM yapılandırması # # auth auth yeterli pam_opie.so no_warn no_fake_prompts kimlik doğrulama gerekli pam_opieaccess.so no_warn allow_local #auth yeterli pam_krb5.so no_warn try_first_pass #auth yeterli pam_ssh.so no_warn try_first_pass auth yeterli pam_unix.so no_warn try_first_pass nullok auth yeterli pam_sss.so use_first_pass kimlik doğrulama gerekli pam_unix.so no_warn use_first_pass # hesap hesap gerekli pam_nologin.so #account gerekli pam_krb5.so hesap gerekli pam_login_access.so hesap gerekli pam_unix.so hesap yeterli pam_sss.so # oturum, toplantı, celse #session isteğe bağlı pam_ssh.so want_agent oturum isteğe bağlı pam_sss.so oturum gerekli pam_mkhomedir.so modu = 0700 oturum gerekli pam_permit.so # parola #parola yeterli pam_krb5.so no_warn try_first_pass #parola yeterli pam_unix.so try_first_pass use_authtok nullok şifre yeterli pam_unix.so try_first_pass use_authtok şifre yeterli pam_sss.so use_authtok
/etc/pam.d/system:
# FreeBSD: releng / 11.0 / etc / pam.d / system 197769 2009-10-05 09: 28: 54Z des $ # # Sistem genelinde varsayılanlar # # auth auth yeterli pam_opie.so no_warn no_fake_prompts kimlik doğrulama gerekli pam_opieaccess.so no_warn allow_local #auth yeterli pam_krb5.so no_warn try_first_pass #auth yeterli pam_ssh.so no_warn try_first_pass #auth required pam_unix.so no_warn try_first_pass nullok yetki yeterli pam_unix.so no_warn try_first_pass auth yeterli pam_sss.so use_first_pass kimlik doğrulama gerekli pam_deny.so # hesap #account gerekli pam_krb5.so hesap gerekli pam_login_access.so hesap gerekli pam_unix.so hesap yeterli pam_sss.so # oturum, toplantı, celse #session isteğe bağlı pam_ssh.so want_agent oturum gerekli pam_lastlog.so no_fail oturum isteğe bağlı pam_sss.so oturum gerekli pam_mkhomedir.so modu = 0700 # parola #parola yeterli pam_krb5.so no_warn try_first_pass #parola gerekli pam_unix.so no_warn try_first_pass şifre yeterli pam_unix.so no_warn try_first_pass nullok use_authtok şifre yeterli pam_sss.so use_authtok #parola gerekli pam_deny.so
/etc/pam.d/su:
# # $ FreeBSD: releng / 11.0 / etc / pam.d / su 219663 2011-03-15 10: 13: 35Z des $ # # "Su" hizmeti için PAM yapılandırması # # auth auth yeterli pam_rootok.so no_warn auth yeterli pam_self.so no_warn kimlik doğrulama gerekli pam_group.so no_warn grup = tekerlek root_only fail_safe ruser auth include system.dist # hesap hesap dahil system.dist # oturum, toplantı, celse oturum gerekli pam_permit.so
(Girinti)
system.dist
stok /etc/pam.d/system
dosyasının bir kopyasıdır . /etc/pam.d/su
Su komutuyla ilgili sorunları önlemek için yukarıdaki dosyaya eklenmiştir .su
Kök su
olarak kimlik doğrulaması gerekmediğinden ve hesap bilgileri SSSD aracılığıyla ad hizmeti anahtarından alındığından , biri hala AD hesaplarını root olarak yapabilir .sudo
güvenlik nedenleriyle tek başına kullanılmalıdır.ksu
A kullanıcısından B kullanıcısına geçmek için
de kullanabilirsiniz.ksu
(in /usr/bin
) varsayılan olarak SUID'si yok
ksu
,chmod u+s /usr/bin/ksu
krb5
paket kurulu /usr/local/bin
) kurulumda SUID/usr/local/bin
önceden /usr/bin
, vb. Olacak şekilde ayarlamak isteyebilirsiniz.ksu
kullanıcıdan hedef kullanıcının AD / Kerberos şifresini isteyecektirpasswd
pam_sss.so
passwd PAM dosyasına ekleseniz bile AD / Kerberos şifrenizi değiştirmek için çalışmaz . passwd
İkili sadece yerel ve NIS kullanın destekleyen kpasswd
AD şifrenizi değiştirmek için / Kerberos sunucusu (ler).İsim Hizmet Anahtarı:
/etc/nsswitch.conf
Dosya passwd ve gruplar için sss hizmeti kullanmak için yapılandırılmalıdır. Misal:
group: files sss
passwd: files sss
Bir Etki Alanına Katılma:
adcli
kinit
Kullanmadan önce yapmayı gerektirmez , sağlanan kredilere göre sizin için yapar.
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
yardımcı programı
net
program Samba paketinin bir parçasıdır.smb.conf
yapılandırma dosyasında etki alanı ayrıntılarının ayarlanmasını gerektirir , bu da özellikle etkileşimli olmayan şekilde kullanımı daha zor ve zahmetli hale getirir.kinit
. Yine, bu daha elverişsizdir ve bir komut dosyasında etkileşimli olmayan şekilde kullanılmasını biraz daha zorlaştırır, çünkü bir yerine iki adım vardır.
SSHD ile ilgili düşünceler:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
Bu seçeneği kullanırken yapılandırdığınızdan emin olun ./bin/passwd
NIS ve yerel passwd dosyası dışında hiçbir şeyi desteklemez.GSSAPICleanupCredentials yes
kdestroy
Oturumu kapattıktan sonra yapılacakGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALM
KDC ile konuşmak için kullanır , ancak bazen yanlış anlar (örneğin, ana bilgisayar adı SSH sunucusunun DNS adıyla eşleşmiyorsa). Bu seçenek, SSHD'nin /etc/krb5.keytab
dosyadaki uygun olan herhangi bir prensibi kullanmasına izin verir.host/<FQDN>@REALM
ssh -K <ip>
parola sormadan çalışmak üzere ana makinenizin IPv4 ve IPv6 adresleri için KDC'ye ana bilgisayar ilkeleri eklemeniz gerekebilir veya gerekmeyebilir (zaten bir 'kinit' yaptığınızı varsayarak, elbette).