सुरक्षा / sssd का उपयोग करके FreeBSD 10.0 के साथ सक्रिय निर्देशिका को कैसे एकीकृत करें?


9

FreeBSD 10.0 में आर 2 का उपयोग कर Windows Server 2012 को चला रहे किसी सक्रिय निर्देशिका से प्रमाणित उपयोगकर्ताओं के लिए आवश्यक कदम क्या हैं sssdकरबरोस TGT काम करने के साथ ई बैकएंड साथ?

जवाबों:


14

हर चीज़ को आउट-ऑफ़-द-बॉक्स बनाने के लिए कुछ मुश्किल विचार हैं। 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 से उपयोगकर्ताओं को सफलतापूर्वक प्रमाणित करने के चरणों का वर्णन कर सकते हैं।

1. Kerberos कॉन्फ़िगर करें

/etc/krb5.confनिम्नलिखित सामग्री के साथ फ़ाइल बनाएँ :

[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes

2. सांबा 4.1 स्थापित करें और इसे डोमेन में शामिल होने के लिए कॉन्फ़िगर करें

सांबा 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

3. Kerberos समर्थन के साथ sssd पैकेज और साइरस SASL स्थापित करें

आवश्यक पैकेज स्थापित करें:

$ 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

4. nsswitch.conf में sssd सपोर्ट जोड़ें

/etc/nsswitch.confइस सेटिंग से मिलान करने के लिए फ़ाइल को संपादित करें :

group: files sss
passwd: files sss

5. sssd प्रमाणीकरण की अनुमति देने के लिए PAM को कॉन्फ़िगर करें और होम डायरेक्टरी क्रिएशन को हैंडल करें

घर निर्देशिका निर्माण के लिए वैकल्पिक पैकेज स्थापित करें:

$ 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

6. SASL सक्षम OpenLDAP क्लाइंट पर स्विच करें

$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client

7. अंत में पुष्टि करें कि सब कुछ काम कर रहा है

$ getent passwd <username>

क्या आपके पास FreeBSD 10.3 का समाधान है, जहां Openldap-sasl-client स्थापित करने से sssd, ldb और samba44 को हटाने के लिए pkg का कारण बनता है? मुझे लगता है कि मैं आपके उत्तर का उपयोग करते समय बहुत करीब हूं लेकिन मैं इस एक हिस्से पर अटका हुआ हूं।
bgStack15

2

आप यहाँ कौन से केर्बोस का उपयोग कर रहे हैं? MIT से अंतर्निहित एक या सुरक्षा / krb5?

Sssd स्थापित करते समय, यह आवश्यक है कि सुरक्षा / krb5 स्थापित किया जाए जो इस समय अभी भी FreeBSD में प्रयोगात्मक माना जाता है। इस प्रकार यह प्रश्न।

मुझे 'getent' कमांड्स को निष्पादित करने पर AD उपयोगकर्ताओं / समूहों को मिलने वाली कोई भी किस्मत नहीं है। यह इस तथ्य के कारण हो सकता है कि NETBIOS नाम मेरे मामले में डोमेन नाम -ie से भिन्न है, डोमेन नाम dawnsign.com है और NETBIOS नाम DSP है।

मैंने केवल pam.d लॉगिन मॉड्यूल कॉन्फ़िगर किया है। एक सफल प्रमाणीकरण के लिए अन्य पैम मॉड्यूल को संपादित करने की आवश्यकता है?

किसी भी अतिरिक्त जानकारी बहुत सराहना की जाएगी!


मैं आधार से हेइमल्ड करबरोस का उपयोग कर रहा हूं। MIT Kerberos पोर्ट स्थापित नहीं कर रहा है।
विनियस फेरो

1

बंदरगाहों से 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

अगर हम देशी करबरोस का उपयोग कर सकते हैं तो विंडबाइंड और सांबा का उपयोग क्यों करें?
विनियस फेरो

सक्रिय निर्देशिका उपयोगकर्ताओं के लिए, kerberos पासवर्ड और sso के लिए है
elbarna

0

हैलो,

यह 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

Samba41 को हटाने का उद्देश्य क्या है? यह केवल samba36 के साथ काम करता है? मुझे यह सटीक समस्या आ रही है, लेकिन अगर मुझे नहीं करना है तो 3.6 को वापस नहीं करना है।
मिकीबी

आप samba41 बाइनरी को हटा देते हैं, फिर बंदरगाहों से samba41 को recompile (sssd द्वारा अनुरोध किया जाता है)। मेरे मामले में (एक ताजा 10.1 स्थापित) samba41 बाइनरी काम नहीं करता है, बंदरगाहों द्वारा संकलित samba41 पूरी तरह से काम करता है
elbarna

0

इस लेखन के समय (6/2017) फ्रीबीएसडी के इन संस्करणों के साथ SSSD के माध्यम से AD एकीकरण पर मेरा गाइड यहाँ है।

  • FreeBSD 10.3 और 11.0 (10.3-RELEASE-p18 और 11.0-RELEASE-p9)
  • स्थापना (और मजेदार पैकेजिंग और निर्भरता मुद्दे)

    • आवश्यक संकुल को हेइमल्ड केर्बरोस के साथ संगत नहीं लगता है, इसलिए चीजों को स्थापित किया जाना चाहिए और MIT कर्बर ध्वज को सक्षम करने के लिए संकलित किया जाना चाहिए। यह एक वास्तविक संगतता समस्या की तुलना में पैकेजिंग निर्भरता मुद्दे की अधिक संभावना है।
    • हिमाल्ड बेस सिस्टम के साथ स्थापित किया गया है, इसलिए यदि आप एमआईटी केर्बेरोस, एक सेट इन /usr/binऔर दूसरे में स्थापित करते हैं तो यह आपको केर्बरोस कमांड के दो सेट के साथ छोड़ देता है /usr/local/bin। चूंकि आधार प्रणाली की कोई भी फाइल पैकेज में नहीं लगती है, इसलिए आप केवल हेइमल्ड केआरबी सामान नहीं निकाल सकते। के बारे में पता करने के लिए कुछ।
    • विभिन्न पैकेजों की फॉरवर्ड निर्भरता (बोल्ड इटैलिक्स में बोल्ड, परस्पर विरोधी डिप्स में दिलचस्प चित्र):

      • 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
    • विभिन्न पैकेजों की रिवर्स निर्भरता:

      • net/openldap24-sasl-client: sysutils/msktutil
      • net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
      • net/openldap24-sasl-client: net-mgmt/adcli
        • जैसा कि हम देखते हैं sssdकि एमआईटी केर्बरोस की आवश्यकता है, भले ही हमारे पास बेस पैकेज के रूप में हेइमल्ड है
        • adcliचाहता है openldap-sasl-client, लेकिन अन्य पैकेज (उप-निर्भरता सहित sssd) में खींचते हैं openldap-client, जो ssl क्लाइंट के साथ म्यूटेक्स है (जो भी मूर्खतापूर्ण कारण के लिए)। यह बाइनरी पैकेजों के न्यूनतम सेट के साथ, इंस्टॉलेशन को थोड़ा दर्द देता है।
        • ये निर्भरता बाइनरी रेपो पैकेज दोनों के लिए मौजूद हैं, और यदि पैकेज पोर्ट ट्री में बनाए गए हैं। यह हमारे द्वारा आवश्यक सब कुछ प्राप्त करने के लिए स्थापना की एक कष्टप्रद विशेष विधि की आवश्यकता है (नीचे कवर)।
    • इस लेखन के रूप में, FreeBSD के लिए SSSD के लिए द्विआधारी pkg, SSSD में AD समर्थन शामिल नहीं करता है

      • SSSD के पोर्ट्स वर्जन को सक्षम (कॉन्फिगर करना) विकल्प के साथ बनाया जाना था:
        • SMB
      • SSSD भी ओपन-क्लैड-क्लाइंट में खींचना चाहता है, जब उसे सही ढंग से कार्य करने के लिए ओपन-क्लैप-एसएसएल-क्लाइंट की आवश्यकता होती है।
    • Pkg बाइनरी संस्करण adcliमौजूद है, लेकिन इस लेखन के रूप में, काम नहीं करता है।
      • फिर से, पोर्ट संस्करण को सक्षम विकल्पों के साथ संकलित किया गया:
        • GSSAPI_MIT
    • cyrus-sasl-gssapi आवश्यक है, लेकिन pkg बाइनरी संस्करण काम नहीं करता है, और इसमें अजीब निर्भरता के मुद्दे हैं जो इसे SSSD को हटाने का कारण बनते हैं।
      • सक्षम MIT-KRB5 विकल्प के साथ बंदरगाहों से इसका निर्माण करें:
        • GSSAPI_MIT
    • openldap-sasl-client कार्यक्षमता के लिए आवश्यक है, लेकिन SSSD ओपनलैप के गैर एसएएसएल संस्करण में खींचना चाहता है।
      • यह काम करने के लिए
        • बंदरगाहों में चयनित विकल्प ( ) के openldap-sasl-clientसाथ कॉन्फ़िगर करें ।GSSAPImake config
        • इसे बनाने के लिए बंदरगाहों में करें
        • स्थापित करने से पहले, एक करें pkg remove –f openldap-client
          • यह openldap-clientकिसी भी अन्य पैकेज (जैसे SSSD) के किसी भी ऑटोरेमोव को करने के बिना हटा देगा और एसएएसएल संस्करण की स्थापना की अनुमति देगा
        • के लिए एक स्थापित करें openldap-sasl-client
          • यह इसे सिस्टम में स्थापित करेगा
    • यह प्रदान करेगा कि AD क्षमताओं के साथ कार्यात्मक SSSD के लिए क्या आवश्यक है।
    • कृपया ध्यान दें कि यदि आप बंदरगाहों से SSSD संकलित करते हैं तो यह बहुत सारी निर्भरता में खींच लेगा, जिससे उन्हें निर्माण करना होगा, और कॉन्फ़िगर विकल्पों की आवश्यकता होगी।
      • यह सुझाव दिया जाता है कि आप पहले बाइनरी पैकेज को pkg install sssd के साथ इंस्टॉल करें और फिर इसे हटा दें pkg remove –f sssd
        • यह उन अधिकांश चीज़ों के लिए बाइनरी पैकेज का कारण बनेगा, जिन्हें SSSD में खींचने की आवश्यकता होती है, और इन सभी को बनाने की आवश्यकता को बंदरगाहों में निर्भर करता है, जिसमें काफी समय लगता है।
      • एक बार हटाए जाने के बाद, उपरोक्त वर्णित विकल्पों के साथ बंदरगाहों से SSSD को फिर से स्थापित करें और आपको केवल काम करने वाले सेटअप को प्राप्त करने के लिए ऊपर वर्णित चार पैकेजों को फिर से बनाना होगा।
    • (वैकल्पिक) एक बार जब सब कुछ काम कर रहा है और सत्यापित हो गया है, तो आप pkg createचार पैकेजों के बाइनरी पैकेज बनाने के लिए उपयोग कर सकते हैं जिनमें उचित विकल्प सक्षम हैं और हर सिस्टम पर पोर्ट में उन्हें बनाने के बजाय उन का उपयोग करें। बाइनरी की स्थापना बंदरगाहों के निर्माण प्रक्रिया के समान पैटर्न का अनुसरण करती है:

      • pkg install sssd-1.11.7_8.txz
        • आपका संस्करण निश्चित रूप से भिन्न हो सकता है
        • यह SSSD के लिए बाइनरी पैकेज स्थापित करेगा और FreeBSD रेपो से इसकी ज़रूरत की हर चीज़ में खींचेगा।
      • pkg add अन्य पैकेज (इंस्टाल नहीं करें, जोड़ें), पिछले के लिए ओपनडैप पैकेज को सहेजते हुए।
      • जोड़ने से पहले openldap-sasl-clientapkg remove –f openldap-client
        • यह गैर-एसएएसएल संस्करण से छुटकारा दिलाता है और हमारे संस्करण को स्थापित करने की अनुमति देता है
      • pkg add openldap-sasl-client-2.4.44.txz
        • फिर से, आपका संस्करण अलग हो सकता है
      • आपको आवश्यक पैकेजों को स्थापित करना चाहिए।
      • यह हो सकता है ऐसा करने से पहले SSSD द्विआधारी के लिए मेटाडाटा को बदलने के लिए संभव हो सकता है pkg createपर निर्भरता को बदलने के लिए openldap-clientके साथ openldap-sasl-clientइस निकालें / पुनर्स्थापना करने के लिए की आवश्यकता को दूर करने के लिए। मेरे पास ऐसा करने का समय नहीं है।
        • इसके अलावा, SSSD की उप-निर्भरताएं भी हैं जो अंदर खींचती हैं openldap-client, इसलिए आपको उन्हें भी ठीक करना होगा।
      • कृपया ध्यान दें कि ये सभी नोट इन पैकेजों के संस्करणों के रूप में वर्तमान में इस लेखन के रूप में पोर्ट्स ट्री में हैं , और उनके साथ जुड़ी निर्भरताएं हैं। यह सब बदल सकता है क्योंकि FreeBSD पोर्ट्स ट्री और बायनेरिज़ को अपडेट करता है। हो सकता है कि एक दिन हमारे पास सब कुछ का एक बाइनरी संस्करण होगा जो सभी सही निर्भरताओं को खींचता है, जो बॉक्स के बाहर AD कार्यक्षमता के लिए कॉन्फ़िगर किए गए उचित विकल्पों के साथ है।
    • कर्बेरोस कॉन्फ़िगरेशन:

      • नमूना /etc/krb5.conf फ़ाइल:
[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 कॉन्फ़िगरेशन:
      • यह उदाहरण उपयोगकर्ताओं और समूहों के लिए AD में POSIX विशेषताओं को मानता है, आम तौर पर तब आवश्यक होता है जब कोई मौजूदा वातावरण की जगह ले रहा होता है जो पहले से ही UID और GID की स्थापना कर चुका होता है।
      • नमूना /usr/local/etc/sssd/sssd.conf फ़ाइल:
[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
  • (मांगपत्र)
    • PAM कॉन्फ़िगरेशन:
      • ओपनबीएस काम करने के तरीके के कारण फ्रीबीएसडी पर पीएएम कॉन्फ़िगरेशन थोड़ा मुश्किल है। मैं विवरण में नहीं जाऊंगा, लेकिन SSSD के लिए pam_sss का उपयोग करने के लिए और यह काम करने के लिए है, और पासवार्ड लॉगिन काम भी है, आपको फ़ाइल में दो बार pam_unix डालने की आवश्यकता है। जो मैं समझता हूं, उसे एक माध्यमिक जांच के साथ करना है जो "पर्दे के पीछे" किया जाता है जिसे पास करने के लिए दूसरे pam_unix मॉड्यूल की आवश्यकता होती है।
        • यहाँ उन /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/ksu
        • MIT Kerberos ( krb5पैकेज में स्थापित /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 sss
        • passwd: files sss
    • एक डोमेन में शामिल होना:

      • आपके लिनक्स बॉक्स से जुड़ने के लिए * निक्स पर दो मुख्य उपकरण हैं
        • adcli
          • यह मेरा पसंदीदा उपकरण है। यह बहुत अच्छी तरह से काम करता है और सब कुछ एक ही कमांड लाइन पर किया जा सकता है। क्रेडेंशियल्स को गैर-अंतःक्रियात्मक रूप से (स्टड, आदि के माध्यम से) दिया जा सकता है
          • kinitउपयोग करने से पहले करने की आवश्यकता नहीं है , यह आपके लिए प्रदान की गई साख के आधार पर करता है।
            • उदाहरण:
              • adcli join -D mydomain.net -U Administrator--show-details –v
              • adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
                • यह फ़ॉर्म अनुशंसित है क्योंकि उपयोगिता हमेशा FQDN को सही तरीके से समझ नहीं पाती है। जब आप FQDN प्रदान करते हैं जो होस्ट के लिए फ़ॉरवर्ड और रिवर्स DNS दोनों से मेल खाता है, तो सिद्धांत सही तरीके से बनाए गए हैं। यदि उपयोगिता गलत होस्टनाम (उदाहरण के लिए DNS डोमेन सहित) का उपयोग नहीं करती है, तो कुछ सेवा प्रिंसिपल नहीं बनाए जाएंगे, और होस्ट में SSH जैसी चीजें विफल हो सकती हैं।
        • सांबा की netउपयोगिता
          • netउपयोगिता सांबा सूट का हिस्सा है।
          • इस उपयोगिता को smb.confकॉन्फ़िगरेशन फ़ाइल में डोमेन विवरण सेट करने की आवश्यकता होती है , जो इसे और अधिक कठिन और असुविधाजनक उपयोग करने के लिए, विशेष रूप से गैर-संवादात्मक बनाता है।
          • इस टूल के लिए यह भी आवश्यक है कि आप इसे इस्तेमाल करने से पहले केर्बरोस टिकट प्राप्त करें kinit। फिर, यह अधिक असुविधाजनक है, और स्क्रिप्ट में गैर-अंतःक्रियात्मक रूप से उपयोग करना थोड़ा अधिक कठिन बना देता है, क्योंकि एक के बजाय दो चरण हैं।
    • SSHD विचार:

      • AD और SSSD के साथ काम करने के लिए SSHD प्राप्त करना आम तौर पर काफी सरल है
      • निम्नलिखित विकल्पों को जोड़ने की आवश्यकता है /etc/ssh/sshd_config
        • GSSAPIAuthentication yes
          • SSHD के लिए GSS API को चालू करें। यह SSHD के कारण AD KDC के विरुद्ध कार्य करेगा
        • PasswordAuthentication yes
          • उपयोगकर्ताओं को पासवर्ड के साथ लॉग इन करने की अनुमति दें। यदि आप उपयोगकर्ता को लॉगिन पर KRB5 टिकट प्राप्त करना चाहते हैं तो आवश्यक है। इसे सक्षम किए बिना, सिस्टम KDC द्वारा भेजे गए TGT को डिक्रिप्ट नहीं कर सकता है।
        • ChallengeResponseAuthentication yes
          • FreeBSD के लिए, यह विधि सबसे अच्छा काम करती है।
            • सुनिश्चित करें कि आप PasswordAuthentication noइस विकल्प का उपयोग करते समय कॉन्फ़िगर करें ।
            • यह एकमात्र तरीका है जो मैंने FreeBSD के लिए पाया है जो लॉगिन पर एक समाप्त पासवर्ड को बदलने के लिए काम करता है। यदि आप दूसरे का उपयोग करते हैं, तो यह कॉल /bin/passwdकरता है, जो एनआईएस और स्थानीय पासवार्ड फ़ाइल के अलावा कुछ भी समर्थन नहीं करता है।
        • GSSAPICleanupCredentials yes
          • (वैकल्पिक) एक kdestroyलॉगआउट पर करेंगे
        • GSSAPIStrictAcceptorCheck no
          • (वैकल्पिक) यह विकल्प अक्सर आवश्यक होता है यदि SSHD अपने स्वयं के होस्टनाम के बारे में उलझन में है, या मल्टीहोमेड है, आदि, या अन्यथा केडीसी के साथ संवाद करने के लिए एक अलग सेवा प्रिंसिपल का उपयोग करता है। आम तौर पर SSHD host/<FQDN>@REALMKDC के साथ बात करने के लिए सेवा प्रमुख का उपयोग करेगा , लेकिन कभी-कभी यह गलत हो जाता है (उदाहरण के लिए, यदि होस्टनाम SSH सर्वर के DNS नाम से मेल नहीं खाता है)। यह विकल्प SSHD को /etc/krb5.keytabफ़ाइल में किसी भी प्रिंसिपल का उपयोग करने की अनुमति देता है , जिसमें उचित भी शामिल हैhost/<FQDN>@REALM
      • आपके द्वारा उपयोग किए जाने वाले विकल्पों के संयोजन के आधार पर, आपको ssh -K <ip>पासवर्ड के लिए संकेत दिए बिना काम करने के लिए अपने होस्ट के IPv4 और IPv6 पते के लिए KDC को होस्ट प्रिंसिपल जोड़ने की आवश्यकता हो सकती है या नहीं भी हो सकती है (यह मानते हुए कि आपने पहले ही 'kitit' कर लिया है, बेशक)।

मुझे उम्मीद है कि इससे लोगों को मदद मिलेगी। यह मूल रूप से FBSD10 और 11 को SSSD और एक AD सर्वर के साथ काम करने की कोशिश करते समय मेरे अपने नोट्स से संकलित किया गया है। सबसे बड़ा मुद्दा मैं भाग गया था PAM कॉन्फिगर्स, जो वास्तव में विनयी थे और जैसे वे linux (Openpam में बग?) और पैकेजिंग / निर्भरता के तहत काम नहीं करते थे। यदि आपके पास वैकल्पिक तरीके हैं तो टिप्पणी करने के लिए स्वतंत्र महसूस करें। खासतौर पर अगर आपको इसका निर्माण हेइमल्ड केर्बरोस में बनाया गया हो, जैसे विनीसियस फेरो अपने उत्तर में करते हैं। मैंने कोशिश नहीं की, क्योंकि SSSD एमआईटी krb5 पैकेज में वैसे भी खींचने पर जोर देता है।
jbgeek

अद्यतन pam.d सामान। मैंने ओपनपैम विस्की के कारण का पता लगाया और इसके लिए फिक्स पाया (pam_unix मॉड्यूल का दो बार उपयोग करते हुए ताकि यह एक "छिपा हुआ" टेस्ट पास करे जो एक सफल होने के लिए आवश्यक है)।
jbgeek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.