sssdKerberos 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 ?
sssdKerberos 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, sssdbu durum işlenemez.
Dolayısıyla, gerçek sürümünüzde sssdaynı 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.confaş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.confaş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.confbu 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.confbu 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 PAMalemleri 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/binve 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-clientsecurity/cyrus-sasl2-gssapi: security/cyrus-sasl2net/openldap24-sasl-client: security/cyrus-sasl2security/sssd: security/nsssecurity/sssd:security/krb5security/sssd: security/cyrus-sasl2security/sssd:net/openldap24-clientsecurity/sssd: lang/python27security/sssd: lang/python2security/sssd: dns/c-aressecurity/sssd: devel/teventsecurity/sssd: devel/tallocsecurity/sssd: devel/poptsecurity/sssd: devel/pcresecurity/sssd: devel/libunistringsecurity/sssd: devel/libinotifysecurity/sssd: devel/gettext-runtimesecurity/sssd: devel/ding-libssecurity/sssd: devel/dbussecurity/sssd: databases/tdbsecurity/sssd: databases/ldbÇeşitli paketlerin ters bağımlılıkları:
net/openldap24-sasl-client: sysutils/msktutilnet/openldap24-sasl-client: net/nss-pam-ldapd-saslnet/openldap24-sasl-client: net-mgmt/adcli
sssdgibi, Heimdal'ı temel paket olarak görsek de, MIT Kerberos'u gerektiriradcliistiyor 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
SMBadcli var, ancak bu yazı itibariyle çalışmıyor.
GSSAPI_MITcyrus-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_MITopenldap-sasl-client işlevsellik için gereklidir, ancak SSSD openldap'ın SASL olmayan sürümünü almak istiyor.
openldap-sasl-clientile yapılandırın .GSSAPImake configpkg remove –f openldap-client
openldap-clientdiğ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-clientdo apkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg createolan bağlılığı yerine openldap-clientbirlikteopenldap-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.dSSSD'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.diststok /etc/pam.d/systemdosyasının bir kopyasıdır . /etc/pam.d/suSu komutuyla ilgili sorunları önlemek için yukarıdaki dosyaya eklenmiştir .suKök suolarak 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 .sudogüvenlik nedenleriyle tek başına kullanılmalıdır.ksuA 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/ksukrb5paket 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 isteyecektirpasswdpam_sss.sopasswd PAM dosyasına ekleseniz bile AD / Kerberos şifrenizi değiştirmek için çalışmaz . passwdİkili sadece yerel ve NIS kullanın destekleyen kpasswdAD şifrenizi değiştirmek için / Kerberos sunucusu (ler).İsim Hizmet Anahtarı:
/etc/nsswitch.confDosya passwd ve gruplar için sss hizmeti kullanmak için yapılandırılmalıdır. Misal:
group: files ssspasswd: files sssBir Etki Alanına Katılma:
adcli
kinitKullanmadan önce yapmayı gerektirmez , sağlanan kredilere göre sizin için yapar.
adcli join -D mydomain.net -U Administrator--show-details –vadcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
netyardımcı programı
netprogram Samba paketinin bir parçasıdır.smb.confyapı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 noBu seçeneği kullanırken yapılandırdığınızdan emin olun ./bin/passwdNIS ve yerel passwd dosyası dışında hiçbir şeyi desteklemez.GSSAPICleanupCredentials yes
kdestroyOturumu kapattıktan sonra yapılacakGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALMKDC 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.keytabdosyadaki uygun olan herhangi bir prensibi kullanmasına izin verir.host/<FQDN>@REALMssh -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).