FreeBSD 10.0 में आर 2 का उपयोग कर Windows Server 2012 को चला रहे किसी सक्रिय निर्देशिका से प्रमाणित उपयोगकर्ताओं के लिए आवश्यक कदम क्या हैं sssdकरबरोस TGT काम करने के साथ ई बैकएंड साथ?
FreeBSD 10.0 में आर 2 का उपयोग कर Windows Server 2012 को चला रहे किसी सक्रिय निर्देशिका से प्रमाणित उपयोगकर्ताओं के लिए आवश्यक कदम क्या हैं sssdकरबरोस TGT काम करने के साथ ई बैकएंड साथ?
जवाबों:
हर चीज़ को आउट-ऑफ़-द-बॉक्स बनाने के लिए कुछ मुश्किल विचार हैं। FreeBSD sssdइस समय केवल संस्करण 1.9.6 का समर्थन करता है । तो वहाँ उद्यम प्रधान नाम के लिए कोई समर्थन नहीं है।
यदि आपके पास गैर-मिलान किए गए यूपीएन के साथ एक डोमेन है, तो यह लॉगिन करने में विफल होगा, क्योंकि केर्बरोस प्रमाणीकरण प्रक्रिया के दौरान विफल हो जाएगा, यहां तक कि केर्बोस के साथ एंटरप्राइज प्रिंसिपल नाम का FreeBSD समर्थन भी sssdइस मामले को संभाल नहीं सकता है।
तो आप के वास्तविक संस्करण में sssdउपयोगकर्ता प्रिंसिपल नाम एक ही डोमेन नाम के लिए सीमित हैं, उदाहरण के लिए:
Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
username@example.com sAMAccountName: username
इसे जानकर हम FreeBSD में AD से उपयोगकर्ताओं को सफलतापूर्वक प्रमाणित करने के चरणों का वर्णन कर सकते हैं।
/etc/krb5.confनिम्नलिखित सामग्री के साथ फ़ाइल बनाएँ :
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
सांबा 4.1 स्थापित करें:
$ pkg install samba41
/usr/local/etc/smb4.confनिम्नलिखित सामग्री के साथ फ़ाइल बनाएँ :
[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
प्रशासक केर्बरोस टिकट के लिए पूछें:
$ kinit Administrator
फिर डोमेन से जुड़ें और एक कीटाब बनाएं
$ net ads join createupn=host/server-hostname.example.com@EXAMPLE.COM -k
$ net ads keytab create -k
आवश्यक पैकेज स्थापित करें:
$ pkg install sssd cyrus-sasl-gssapi
/usr/local/etc/sssd/sssd.confइस सेटिंग से मिलान करने के लिए फ़ाइल को संपादित करें :
[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
/etc/nsswitch.confइस सेटिंग से मिलान करने के लिए फ़ाइल को संपादित करें :
group: files sss
passwd: files sss
घर निर्देशिका निर्माण के लिए वैकल्पिक पैकेज स्थापित करें:
$ pkg install pam_mkhomedir
PAMइस सेटिंग से मिलान करने के लिए आवश्यक स्थानों को संशोधित करें :
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>
आप यहाँ कौन से केर्बोस का उपयोग कर रहे हैं? MIT से अंतर्निहित एक या सुरक्षा / krb5?
Sssd स्थापित करते समय, यह आवश्यक है कि सुरक्षा / krb5 स्थापित किया जाए जो इस समय अभी भी FreeBSD में प्रयोगात्मक माना जाता है। इस प्रकार यह प्रश्न।
मुझे 'getent' कमांड्स को निष्पादित करने पर AD उपयोगकर्ताओं / समूहों को मिलने वाली कोई भी किस्मत नहीं है। यह इस तथ्य के कारण हो सकता है कि NETBIOS नाम मेरे मामले में डोमेन नाम -ie से भिन्न है, डोमेन नाम dawnsign.com है और NETBIOS नाम DSP है।
मैंने केवल pam.d लॉगिन मॉड्यूल कॉन्फ़िगर किया है। एक सफल प्रमाणीकरण के लिए अन्य पैम मॉड्यूल को संपादित करने की आवश्यकता है?
किसी भी अतिरिक्त जानकारी बहुत सराहना की जाएगी!
बंदरगाहों से Recompiling samba4 बिना sssd के भी linux जैसे winbind ऑटेंटिकेशन का उपयोग करना संभव है। बस sasl ldap को सक्षम करने के बाद बंदरगाहों से samba4 को फिर से जोड़ें
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
यह सांबा को सभी समर्थन की आवश्यकता के साथ फिर से जोड़ देगा (gssapi, ldap, kerberos) तो nsswitch.conf को इस तरह संपादित करें
passwd: files winbind
group: files winbind
हैलो,
यह sssd v1.11.7 का उपयोग करने पर एक छोटा सा अपडेट है
यदि आप "id_provider = ad" का उपयोग कर रहे हैं और आपको sssd लॉगफ़ाइल में निम्न त्रुटि दिखाई देती है:
/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]
आप इस समस्या को हल करने के लिए निम्न प्रक्रिया का उपयोग कर सकते हैं और AD एकीकरण कार्य को सही ढंग से कर सकते हैं। अब sssd के साथ sssd v1.11.7 का निर्माण करें, src sssd से बिल्डिंग की जरूरत है इसलिए इसके libsl2 के साथ लिंक किया गया है
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
स्थापना (और मजेदार पैकेजिंग और निर्भरता मुद्दे)
/usr/binऔर दूसरे में स्थापित करते हैं तो यह आपको केर्बरोस कमांड के दो सेट के साथ छोड़ देता
है /usr/local/bin। चूंकि आधार प्रणाली की कोई भी फाइल पैकेज में नहीं लगती है, इसलिए आप केवल हेइमल्ड केआरबी सामान नहीं निकाल सकते। के बारे में पता करने के लिए कुछ।विभिन्न पैकेजों की फॉरवर्ड निर्भरता (बोल्ड इटैलिक्स में बोल्ड, परस्पर विरोधी डिप्स में दिलचस्प चित्र):
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विभिन्न पैकेजों की रिवर्स निर्भरता:
net/openldap24-sasl-client: sysutils/msktutilnet/openldap24-sasl-client: net/nss-pam-ldapd-saslnet/openldap24-sasl-client: net-mgmt/adcli
sssdकि एमआईटी केर्बरोस की आवश्यकता है, भले ही हमारे पास बेस पैकेज के रूप में हेइमल्ड हैadcliचाहता है openldap-sasl-client, लेकिन अन्य पैकेज (उप-निर्भरता सहित sssd) में खींचते हैं openldap-client, जो ssl क्लाइंट के साथ म्यूटेक्स है (जो भी मूर्खतापूर्ण कारण के लिए)। यह बाइनरी पैकेजों के न्यूनतम सेट के साथ, इंस्टॉलेशन को थोड़ा दर्द देता है।इस लेखन के रूप में, FreeBSD के लिए SSSD के लिए द्विआधारी pkg, SSSD में AD समर्थन शामिल नहीं करता है
SMBadcliमौजूद है, लेकिन इस लेखन के रूप में, काम नहीं करता है।
GSSAPI_MITcyrus-sasl-gssapi आवश्यक है, लेकिन pkg बाइनरी संस्करण काम नहीं करता है, और इसमें अजीब निर्भरता के मुद्दे हैं जो इसे SSSD को हटाने का कारण बनते हैं।
GSSAPI_MITopenldap-sasl-client कार्यक्षमता के लिए आवश्यक है, लेकिन SSSD ओपनलैप के गैर एसएएसएल संस्करण में खींचना चाहता है।
openldap-sasl-clientसाथ कॉन्फ़िगर करें ।GSSAPImake configpkg remove –f openldap-client
openldap-clientकिसी भी अन्य पैकेज (जैसे SSSD) के किसी भी ऑटोरेमोव को करने के बिना हटा देगा और एसएएसएल संस्करण की स्थापना की अनुमति देगाopenldap-sasl-client
pkg remove –f sssd
(वैकल्पिक) एक बार जब सब कुछ काम कर रहा है और सत्यापित हो गया है, तो आप pkg createचार पैकेजों के बाइनरी पैकेज बनाने के लिए उपयोग कर सकते हैं जिनमें उचित विकल्प सक्षम हैं और हर सिस्टम पर पोर्ट में उन्हें बनाने के बजाय उन का उपयोग करें। बाइनरी की स्थापना बंदरगाहों के निर्माण प्रक्रिया के समान पैटर्न का अनुसरण करती है:
pkg install sssd-1.11.7_8.txz
pkg add अन्य पैकेज (इंस्टाल नहीं करें, जोड़ें), पिछले के लिए ओपनडैप पैकेज को सहेजते हुए।openldap-sasl-clientapkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg createपर निर्भरता को बदलने के लिए openldap-clientके साथ openldap-sasl-clientइस निकालें / पुनर्स्थापना करने के लिए की आवश्यकता को दूर करने के लिए। मेरे पास ऐसा करने का समय नहीं है।
openldap-client, इसलिए आपको उन्हें भी ठीक करना होगा।कर्बेरोस कॉन्फ़िगरेशन:
[Libdefaults]
default_realm = MYDOMAIN.NET
आगे = सच्चा
DNS SRV रिकॉर्ड्स के बाद से आम तौर पर आप सभी को AD वातावरण की आवश्यकता होती है
# AD / KRB सर्वर / सेवाओं की पहचान करेगा। टिप्पणी करें यदि आप
# अपने AD सर्वर को मैन्युअल रूप से इंगित करना चाहते हैं
dns_lookup_kdc = true
[लोकों]
MYDOMAIN.NET = {
# यदि आप मैन्युअल रूप से DNS में क्या है की तुलना में एक अलग विज्ञापन सर्वर की ओर इशारा कर रहे हैं
# admin_server = adserver.mydomain.net
# kdc = adserver.mydomain.net
}
[Domain_realm]
mydomain.net = MYDOMAIN.NET
.mydomain.net = MYDOMAIN.NET
[Sssd] config_file_version = 2 डोमेन = MYDOMAIN.NET सेवाएँ = nss, pam, pac fallback_homedir = / होम /% u [डोमेन / MYDOMAIN.NET] id_provider = विज्ञापन access_provider = विज्ञापन ऑर्ट_प्रोवाइडर = विज्ञापन chpass_provider = विज्ञापन # AD POSIX विशेषताओं का उपयोग करें, टिप्पणी करें कि क्या आप स्वचालित रूप से उत्पन्न का उपयोग कर रहे हैं # यूआईडी और जीआईडी। ldap_id_mapping = गलत cache_credentials = सही ad_server = adserver.mydomain.net # यदि आपके पास ई-मेल नहीं है, या AD खाते के लॉगिन में जो कुछ भी है # विशेषता स्थापित override_shell = / bin / tcsh
/etc/pam.dफ़ाइलों की सूची दी गई है, जिन्हें मैंने SBSD को FreeBSD के साथ काम करने के लिए संशोधित किया था:/etc/pam.d/sshd:
# # $ FreeBSD: releng / 11.0 / etc / pam.d / sshd 197769 2009-10-05 09: 28: 25Z $ # # "Sshd" सेवा के लिए PAM विन्यास # # ऑर्ट प्रामाणिक पर्याप्त pam_opie.so no_warn no_fake_prompts सामान्य आवश्यकता pam_opieaccess.so no_warn allow_local # बहुत पर्याप्त pam_krb5.so no_warn try_first_pass # पर्याप्त पर्याप्त pam_ssh.so no_warn try_first_pass प्रामाणिक पर्याप्त pam_unix.so no_warn try_first_pass nullok पर्याप्त पर्याप्त pam_sss.so use_first_pass सामान्य आवश्यक pam_unix.so no_warn use_first_pass # लेखा खाता आवश्यक pam_nologin.so #account आवश्यक pam_krb5.so खाता आवश्यक pam_login_access.so खाता आवश्यक pam_unix.so पर्याप्त pam_sss.so खाता # सत्र # सत्र वैकल्पिक pam_ssh.so want_agent सत्र वैकल्पिक pam_sss.so सत्र आवश्यक pam_mkhomedir.so मोड = 0700 सत्र आवश्यक pam_permit.so # कुंजिका #पासवर्ड पर्याप्त pam_krb5.so no_warn try_first_pass #password पर्याप्त pam_unix.so try_first_pass use_authtok nullok पासवर्ड पर्याप्त pam_unix.so try_first_pass use_authtok पासवर्ड पर्याप्त pam_sss.so use_authtok
/etc/pam.d/system:
# # $ FreeBSD: releng / 11.0 / etc / pam.d / system 197769 2009-10-05 09: 28: 5425 des $ # # सिस्टम-व्यापी चूक # # ऑर्ट प्रामाणिक पर्याप्त pam_opie.so no_warn no_fake_prompts सामान्य आवश्यकता pam_opieaccess.so no_warn allow_local # बहुत पर्याप्त pam_krb5.so no_warn try_first_pass # पर्याप्त पर्याप्त pam_ssh.so no_warn try_first_pass # ऑथ की आवश्यकता pam_unix.so no_warn try_first_pass nullok पर्याप्त पर्याप्त pam_unix.so no_warn try_first_pass पर्याप्त पर्याप्त pam_sss.so use_first_pass सैद्धांतिक आवश्यक pam_deny.so # लेखा #account आवश्यक pam_krb5.so खाता आवश्यक pam_login_access.so खाता आवश्यक pam_unix.so पर्याप्त pam_sss.so खाता # सत्र # सत्र वैकल्पिक pam_ssh.so want_agent सत्र आवश्यक pam_lastlog.so no_fail सत्र वैकल्पिक pam_sss.so सत्र आवश्यक pam_mkhomedir.so मोड = 0700 # कुंजिका #पासवर्ड पर्याप्त pam_krb5.so no_warn try_first_pass #password आवश्यक pam_unix.so no_warn try_first_pass पासवर्ड पर्याप्त pam_unix.so no_warn try_first_pass nullok use_authtok पासवर्ड पर्याप्त pam_sss.so use_authtok #पासवर्ड आवश्यक pam_deny.so
/etc/pam.d/su:
# # $ FreeBSD: releng / 11.0 / etc / pam.d / su 219663 2011-03-15 10: 13: 35% des $ # "PAM" सेवा के लिए PAM कॉन्फ़िगरेशन # # ऑर्ट सामान्य पर्याप्त pam_rootok.so no_warn सामान्य पर्याप्त pam_self.so no_warn ऑरिजनल अपेक्षित pam_group.so no_warn group = wheel root_only fail_safe ruser ऑर्टिकल में system.dist शामिल है # लेखा खाते में system.dist शामिल है # सत्र सत्र आवश्यक pam_permit.so
(मांगपत्र)
system.distस्टॉक /etc/pam.d/systemफ़ाइल की एक प्रति है । यह /etc/pam.d/suउप कमांड के साथ मुद्दों को रोकने के लिए ऊपर फ़ाइल में शामिल है ।suखातों को रूट के रूप में विज्ञापन करने में सक्षम है , एक बार जड़ के बाद से, suप्रमाणित करने की आवश्यकता नहीं है और खाता जानकारी को नाम सेवा स्विच के माध्यम से एसएसएसडी के माध्यम से खींच लिया जाता है।sudoअकेले सुरक्षा कारणों से उपयोग करना चाहिएksuउपयोगकर्ता A से उपयोगकर्ता B पर स्विच करने के लिए भी उपयोग कर सकते हैं और काम
कर सकते हैंksu(इन /usr/bin) में डिफ़ॉल्ट रूप से SUID सेट नहीं है
ksuकाम करने के लिए ,chmod u+s /usr/bin/ksukrb5पैकेज में स्थापित /usr/local/bin) SUID इंस्टॉल पर है/usr/local/binपहले हो /usr/bin, आदिksu लक्ष्य उपयोगकर्ता के AD / Kerberos पासवर्ड के लिए उपयोगकर्ता को संकेत देगाpasswdयदि आप pam_sss.soपासवार्ड PAM फ़ाइल में जोड़ते हैं तो भी अपने AD / Kerberos पासवर्ड को बदलने के लिए काम नहीं करेंगे । passwdद्विआधारी केवल स्थानीय और एनआईएस उपयोग का समर्थन करता है kpasswd/ करबरोस सर्वर (रों) ई पर अपना पासवर्ड बदलने के।नाम सेवा स्विच:
/etc/nsswitch.confफ़ाइल पासवर्ड और समूहों के लिए एसएसएस सेवा का उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए। उदाहरण:
group: files ssspasswd: files sssएक डोमेन में शामिल होना:
adcli
kinitउपयोग करने से पहले करने की आवश्यकता नहीं है , यह आपके लिए प्रदान की गई साख के आधार पर करता है।
adcli join -D mydomain.net -U Administrator--show-details –vadcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
netउपयोगिता
netउपयोगिता सांबा सूट का हिस्सा है।smb.confकॉन्फ़िगरेशन फ़ाइल में डोमेन विवरण सेट करने की आवश्यकता होती है , जो इसे और अधिक कठिन और असुविधाजनक उपयोग करने के लिए, विशेष रूप से गैर-संवादात्मक बनाता है।kinit। फिर, यह अधिक असुविधाजनक है, और स्क्रिप्ट में गैर-अंतःक्रियात्मक रूप से उपयोग करना थोड़ा अधिक कठिन बना देता है, क्योंकि एक के बजाय दो चरण हैं।
SSHD विचार:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication noइस विकल्प का उपयोग करते समय कॉन्फ़िगर करें ।/bin/passwdकरता है, जो एनआईएस और स्थानीय पासवार्ड फ़ाइल के अलावा कुछ भी समर्थन नहीं करता है।GSSAPICleanupCredentials yes
kdestroyलॉगआउट पर करेंगेGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALMKDC के साथ बात करने के लिए सेवा प्रमुख का उपयोग करेगा , लेकिन कभी-कभी यह गलत हो जाता है (उदाहरण के लिए, यदि होस्टनाम SSH सर्वर के DNS नाम से मेल नहीं खाता है)। यह विकल्प SSHD को /etc/krb5.keytabफ़ाइल में किसी भी प्रिंसिपल का उपयोग करने की अनुमति देता है , जिसमें उचित भी शामिल हैhost/<FQDN>@REALMssh -K <ip>पासवर्ड के लिए संकेत दिए बिना काम करने के लिए अपने होस्ट के IPv4 और IPv6 पते के लिए KDC को होस्ट प्रिंसिपल जोड़ने की आवश्यकता हो सकती है या नहीं भी हो सकती है (यह मानते हुए कि आपने पहले ही 'kitit' कर लिया है, बेशक)।