Computer >> कंप्यूटर >  >> प्रणाली >> Linux

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

इस लेख में हम केर्बेरोज का उपयोग करके सक्रिय निर्देशिका में ज़ैबिक्स 4.0 (या नए) के लिए एक पारदर्शी एसएसओ (एकल साइन-ऑन) प्रमाणीकरण के चरण-दर-चरण कॉन्फ़िगरेशन पर विचार करेंगे।

अंतिम परिणाम यह है कि उपयोगकर्ता क्रेडेंशियल दर्ज किए बिना ज़ैबिक्स फ्रंटपेज पर स्वचालित रूप से प्रमाणित हो जाता है। ऐसा करने के लिए, उपयोगकर्ता को ज़ब्बिक्स में निर्दिष्ट सक्रिय निर्देशिका डोमेन खाते के तहत विंडोज़ में लॉग इन होना चाहिए। इसके अलावा, उपयोगकर्ता को ब्राउज़र को कॉन्फ़िगर करना होगा (Kerberos समर्थन सक्षम होना चाहिए और विश्वसनीय इंट्रानेट साइटों को IE में सेट किया जाना चाहिए)।

एक शोकेस:

  • उबंटू सर्वर 18.04 एलटीएस;
  • कार्यात्मक स्तर 2008 (या उच्चतर) के साथ सक्रिय निर्देशिका डोमेन
  • ज़ब्बिक्स सर्वर 4.0.11, अपाचे2 एक वेब सर्वर के रूप में (ज़ब्बिक्स इंस्टॉलेशन पर गाइड)
नोट . SSO, Apache2 को libapache2-mod-auth-kerb . के साथ लागू करने के लिए इस लेख में मॉड्यूल का उपयोग किया जाएगा। यहां Nginx पर चर्चा नहीं की जाएगी, लेकिन इसमें spnego-http-auth-nginx-module है Nginx को संकलित करते समय इसे अलग से सक्षम करना होगा।

सक्रिय निर्देशिका पर Zabbix LDAP प्रमाणीकरण

सबसे पहले आपको डोमेन यूजर्स को Zabbix से बाइंड करना होगा। ऐसा करने के लिए, ज़ब्बिक्स में उसी लॉगिन के साथ एक उपयोगकर्ता बनाने के लिए पर्याप्त है जैसा कि उनके पास एडी डोमेन में है। उदाहरण के लिए, यदि आपका लॉगिन (sAMAccountName विशेषता) user_5 है, तो Zabbix में एक उपयोगकर्ता का लॉगिन समान होना चाहिए।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

इसे प्रत्येक उपयोगकर्ता के लिए करें जो ज़ब्बिक्स का उपयोग करेगा।

फिर Zabbix को अपने डोमेन से बाँधने के लिए सक्रिय निर्देशिका में एक अलग उपयोगकर्ता खाता बनाएँ। व्यवहार में, आप किसी भी डोमेन खाते का उपयोग कर सकते हैं, लेकिन एक अलग सेवा खाता बनाना बेहतर है। मेरे मामले में, यह zabbix_admin होगा . AD में उपयोगकर्ता बनाने के लिए, मैं PowerShell cmdlet New-ADUser का उपयोग करूंगा:

New-ADUser -Name "zabbix_admin" -GivenName "zabbix_admin" -Surname "zabbix_admin" -SamAccountName "zabbix_admin" -AccountPassword (Read-Host -AsSecureString "Password:") -DisplayName "zabbix_admin" -Enabled $true कोड>

PowerShell कंसोल में ऊपर दिखाए गए आदेश को चलाएँ और एक उपयोगकर्ता पासवर्ड सेट करें। आपका नया उपयोगकर्ता आपके डोमेन के मूल में उपयोगकर्ता कंटेनर के नीचे स्थित होगा।

आइए ज़ैबिक्स में एलडीएपी प्रमाणीकरण को कॉन्फ़िगर करें। Zabbix फ़्रंटएंड में प्रशासन . में LDAP सेटिंग टैब पर जाएं -> प्रमाणीकरण . चेक करें LDAP प्रमाणीकरण सक्षम करें और निम्नलिखित फ़ील्ड भरें:

  • LDAP होस्ट:ldap://dc1.domain.local
  • पोर्ट:389
  • आधार डीएन:DC=domain, DC=local
  • खोज विशेषता:sAMAccountName
  • बाइंड डीएन:CN=zabbix_admin,OU=Users,DC=domain,DC=local

आप LDAP प्रमाणीकरण . में किसी भी पैरामीटर का विवरण पढ़ सकते हैं ज़ैबिक्स दस्तावेज़ीकरण का अनुभाग:https://www.zabbix.com/documentation/current/manual/web_interface/frontend_sections/administration/authentication।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

कॉन्फ़िगरेशन पूर्ण करने से पहले, एक परीक्षण लॉगिन (परीक्षण .) करके सुनिश्चित करें कि आपकी सेटिंग मान्य हैं बटन)। एक उपयोगकर्ता नाम निर्दिष्ट करें (हमने पहले खाता बनाया था) और एडी पासवर्ड।
ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

यदि परीक्षण सफल रहा है, तो अपनी सेटिंग्स सहेजें और Zabbix में प्रमाणीकरण प्रकार को आंतरिक से LDAP में बदलें ।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

HTTP प्रमाणीकरण सक्षम करें (HTTP सेटिंग्स -> HTTP प्रमाणीकरण सक्षम करें )।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

LDAP प्रमाणीकरण कॉन्फ़िगर किया गया है।

युक्ति . यदि आपका एलडीएपी सर्वर अनुपलब्ध है, तो आप ज़ब्बिक्स तक नहीं पहुंच पाएंगे। आंतरिक प्रमाणीकरण पर वापस जाने के लिए, MySQL खोलें और निम्न कमांड चलाएँ:

update zabbix.config set authentication_type='0' where configid='1';

ज़बिक्स में एक पारदर्शी (एकल साइन ऑन) प्रमाणीकरण कॉन्फ़िगर करें (Apache2, krb5-user)

सबसे पहले, /etc/hostname में अपने सर्वर का FQDN नाम निर्दिष्ट करें जो आपके डोमेन में DNS रिकॉर्ड से मेल खाना चाहिए। मेरे मामले में, यह zabbix.domain.local . है ।

स्थानीय IP पते के लिए अपने सर्वर का FQDN और /etc/hosts में अपने सर्वर का IP पता भी लिखें।

127.0.0.1 लोकलहोस्ट zabbix.domain.local10.1.1.10 zabbix.domain.local

Kerberos प्रमाणीकरण ठीक से काम करने के लिए, अपने डोमेन नियंत्रक के साथ समय को सिंक्रनाइज़ करें। ntpdate स्थापित करें पैकेज करें और इसे डोमेन नियंत्रक से बांधें।

apt-get install ntp ntpdate
ntpdate dc.domain.local

CentOS 8 में समय को सिंक्रनाइज़ करने के लिए क्रोनी का उपयोग किया जाता है। ntp और ntpdate पैकेज आधिकारिक रिपॉजिटरी में उपलब्ध नहीं हैं।

अब आपको डोमेन कंट्रोलर पर कीटैब फाइल जेनरेट करने की जरूरत है। कीटैब एक फ़ाइल है जिसमें SPN और एन्क्रिप्टेड कुंजियाँ होती हैं। Keytab का उपयोग Kerberos-आधारित प्रमाणीकरण के लिए किया जाता है।

  • अपने डोमेन नियंत्रक पर लॉग इन करें और एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट चलाएँ। सी पर जाएँ:\.
  • निम्न दर्ज करें:
    ktpass -princ HTTP/zabbix.domain.local@DOMAIN.LOCAL -mapuser zabbix_admin -pass STRONGPASS -crypto ALL -ptype KRB5_NT_PRINCIPAL -out zabbix.keytab -setupn –setpass
  • C:\zabbix.keytab फ़ाइल को अपने Zabbix सर्वर पर /etc/apache2/ निर्देशिका में कॉपी करें।

apache2 के लिए Kerberos संकुल और एक मॉड्यूल स्थापित करें:

#apt install krb5-user libapache2-mod-auth-kerb

krb5-user को कॉन्फ़िगर करें। संपादित करें /etc/krb5.cnf :

<पूर्व>[लॉगिंग] डिफ़ॉल्ट =फ़ाइल:/var/log/krb5libs.logkdc =फ़ाइल:/var/log/krb5kdc.logadmin_server =FILE:/var/log/kadmind.log[libdefaults] default_realm =DOMAIN.LOCALdefault_keytab_name =/ etc/apache2/zabbix.keytabdns_lookup_kdc =falsedns_lookup_realm =falseforwardable =trueticket_lifetime =24h[realms]DOMAIN.LOCAL ={kdc =dc.domain.localdefault_domain =DOMAIN.LOCALadmin_server =dc.domain.local}[domain_realm]. .LOCALdomain.local =DOMAIN.LOCAL

अपना डोमेन निर्दिष्ट करें। कुछ जगहों पर डोमेन नेम अपर केस में लिखा होता है, इस नियम का पालन करें।

नोट . कीटैब फ़ाइल पथ "default_keytab_name =/etc/apache2/zabbix.keytab" वाली लाइन को देखें और सुनिश्चित करें कि फ़ाइल वहां उपलब्ध है। www-data पर पढ़ने की अनुमति दें और चलाएं:chown www-data:www-data /etc/apache2/zabbix.keytab को चुना गया है।

सुनिश्चित करें कि Kerberos प्रमाणीकरण Linux में काम कर रहा है:

kinit -kV -p HTTP/zabbix.domain.local –t /etc/apache2/zabbix.keytab

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

आपको यह त्रुटि दिखाई दे सकती है:

kinit:क्लाइंट 'HTTP/zabbix.domain.local@DOMAIN.LOCAL' प्रारंभिक क्रेडेंशियल प्राप्त करते समय Kerberos डेटाबेस में नहीं मिला

इस मामले में, किसी अन्य उपयोगकर्ता के क्रेडेंशियल का उपयोग करके प्रमाणित करने का प्रयास करें:

kinit -pV LOGIN

यदि प्रमाणीकरण सफल होता है, तो समस्या आपकी कीटैब फ़ाइल में है। सुनिश्चित करें कि आपने इसे सही तरीके से जेनरेट किया है। जांचें कि क्या आपने कीटैब फ़ाइल बनाने के लिए सही कमांड दर्ज की है।

सुनिश्चित करें कि आपके ज़ब्बिक्स सेवा खाते के लिए एक एसपीएन रिकॉर्ड एडी में मौजूद है। डोमेन नियंत्रक पर निम्न आदेश दर्ज करें:

setspn -l zabbix_admin

आपको कुछ इस तरह का मैसेज दिखाई देगा। यह HTTP/zabbix.domain.local प्रारूप में होना चाहिए। अगर कोई रिकॉर्ड नहीं है, तो उसे जोड़ें।

setspn -a HTTP/zabbix.domain.local zabbix_admin

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

सुनिश्चित करें कि उपयोगकर्ता लॉगिन नाम बदलकर HTTP/zabbix.domain.local हो गया है।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

अगर ऐसा नहीं है, तो इसे मैन्युअल रूप से बदलें।

फिर apache2 कॉन्फ़िगरेशन फ़ाइल संपादित करें - /etc/apache2/sites-available/000-default.conf.

ServerName zabbix.domain.local लाइन के अंतर्गत निम्नलिखित जोड़ें:

<स्थान />AuthType KerberosAuthName "Kerberos प्रमाणित" KrbAuthRealms DOMAIN.LOCAL#KrbServiceName HTTP/zabbix.domain.localKrbServiceName AnyKrb5Keytab /etc/apache2/zabbix.keytabKrbMethodNegotiate OnKrbSaveCredentials onKrbLocation>
 यदि KrbServiceName कीटैब फ़ाइल में निर्दिष्ट नाम से मेल नहीं खाता है, तो एक त्रुटि उत्पन्न होती है। तो आप कोई भी . सेट कर सकते हैं परीक्षण करते समय मूल्य। यह सुनिश्चित करने के बाद कि सिस्टम काम कर रहा है, मान्य सेवा नाम निर्दिष्ट करें। आप इसका उपयोग करके इसकी जांच कर सकते हैं:
klist -le /etc/apache2/zabbix.keytab

केर्बरोस प्रमाणीकरण के लिए ब्राउज़र कैसे कॉन्फ़िगर करें?

Internet Explorer के लिए Zabbix पर Kerberos प्रमाणीकरण का उपयोग करने के लिए, आपको इसका URL स्थानीय इंट्रानेट में जोड़ना होगा साइटें Google क्रोम इंटरनेट एक्सप्लोरर सेटिंग्स का उपयोग करता है, इसलिए आपको इसे अलग से कॉन्फ़िगर करने की आवश्यकता नहीं है।

नोट . आपकी Zabbix साइट का URL विश्वसनीय साइटों की सूची से संबंधित नहीं होना चाहिए, अन्यथा Kerberos काम नहीं करेगा। साइट को केवल इंट्रानेट साइटों में निर्दिष्ट किया जाना चाहिए।

विकल्प खोलें -> IE में सुरक्षा।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

साइटें Click क्लिक करें स्थानीय इंट्रानेट में, नीचे स्क्रीनशॉट में दिखाए गए विकल्पों की जांच करें और उन्नत क्लिक करें।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

अपना Zabbix सर्वर URL दर्ज करें।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

उन्नत . पर जाएं टैब और चेक करें एकीकृत Windows प्रमाणीकरण सक्षम करें

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

इसके अलावा, आप समूह नीतियों (कंप्यूटर कॉन्फ़िगरेशन -> प्रशासनिक टेम्पलेट -> विंडोज घटक -> इंटरनेट एक्सप्लोरर -> इंटरनेट नियंत्रण कक्ष -> सुरक्षा पृष्ठ -> साइट टू ज़ोन असाइनमेंट का उपयोग करके स्थानीय इंट्रानेट ज़ोन में ज़ब्बिक्स यूआरएल भी डाल सकते हैं। सूची . इंट्रानेट साइटों के लिए ज़ोन कोड 1 का उपयोग करें)।

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

अपने Zabbix सर्वर के URL को about:config . के निम्नलिखित मापदंडों में जोड़ें आपके Mozilla Firefox के लिए:

network.automatic-ntlm-auth.trusted-urisnetwork.negotiate-auth.delegation-urisnetwork.negotiate-auth.trusted-uris

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

यदि आपको कोई समस्या आती है, तो ब्राउज़र में केर्बरोस कॉन्फ़िगरेशन पर विस्तृत लेख देखें।

उसके बाद कॉन्फ़िगरेशन समाप्त हो गया है। यदि आप अपने ज़ब्बिक्स सर्वर यूआरएल तक पहुंचने का प्रयास करते हैं, तो आपको स्वचालित रूप से प्रमाणित किया जाएगा और आपको अपना पासवर्ड दर्ज करने के लिए प्रेरित नहीं किया जाएगा।

अपाचे में Kerberos प्रमाणीकरण डिबगिंग और समस्या निवारण

यदि आपको कोई समस्या है, तो apache2 में डिबग मोड सक्षम करें:

/etc/apache2/sites-available/000-defaults.conf में टैग को बंद करने से पहले निम्नलिखित दर्ज करें:

लॉगलेवल ट्रेस8

ज़ब्बिक्स:सक्रिय निर्देशिका में एकल साइन-ऑन (एसएसओ) प्रमाणीकरण

अपाचे को पुनरारंभ करें, और error.log फ़ाइल में Kerberos मॉड्यूल त्रुटि की जाँच करें।

इसे और अधिक सुविधाजनक बनाने के लिए, IP पते द्वारा प्रविष्टियों को फ़िल्टर करने के लिए इस कमांड का उपयोग करें:

tail -f /var/log/apache2/error.log | grep ‘Your IP address’

Kerberos के साथ काम करने और उसका निदान करने के लिए, आप kinit . का उपयोग कर सकते हैं और klist आदेश।

kinit Kerberos टिकट प्राप्त करने और संचय करने का एक उपकरण है, उदाहरण के लिए:

kinit –V -k -t /etc/apache2/zabbix.keytab –p HTTP/zabbix.domain.local@DOMAIN.LOCAL

यदि आपने अपनी कीटैब फ़ाइल को सही ढंग से जनरेट किया है, तो कमांड चलेगा, और आपको एक संदेश मिलेगा कि प्रमाणीकरण सफल हो गया है।

klist का उपयोग करना , आप संचित Kerberos टिकट देख सकते हैं:

klist -a


  1. Windows 10 में सक्रिय निर्देशिका को कैसे सक्षम करें

    सक्रिय निर्देशिका विंडोज सर्वर तकनीकी पूर्वावलोकन का प्रबंधन करती है। यह प्रशासकों द्वारा अनुमति देने और नेटवर्क पर संसाधनों तक पहुँचने के लिए उपयोग किया जाने वाला एक उपकरण है। यह डिफ़ॉल्ट रूप से विंडोज पीसी पर स्थापित नहीं है। हालाँकि, आप इसे Microsoft की आधिकारिक वेबसाइट से ऑनलाइन प्राप्त कर सकते

  1. एक्टिव डायरेक्ट्री सर्वर 2003 को एक्टिव डायरेक्ट्री सर्वर 2016 में चरण दर चरण माइग्रेट कैसे करें।

    इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि विंडोज सर्वर 2003 एक्टिव डायरेक्ट्री को विंडोज सर्वर 2016 एडी में कैसे माइग्रेट किया जाए। जैसा कि आप जानते हैं कि Windows Server 2003 समर्थन और अपडेट जुलाई 2015 में समाप्त हो गए और कई कंपनियां पहले ही माइग्रेट हो चुकी हैं, या वे अपने Windows Server 2003 सर्वर (

  1. सक्रिय निर्देशिका में उपयोगकर्ता का अंतिम लॉगिन समय कैसे देखें।

    यदि आप सक्रिय निर्देशिका में किसी उपयोगकर्ता की अंतिम लॉगिन तिथि और समय देखना चाहते हैं, तो इस ट्यूटोरियल को पढ़ना जारी रखें। इस ट्यूटोरियल में सक्रिय निर्देशिका उपयोगकर्ता के अंतिम लॉगिन समय का पता लगाने के लिए दो विधियाँ हैं। हर बार जब कोई AD उपयोगकर्ता किसी कार्य केंद्र से सक्रिय निर्देशिका में ल