इस लेख में हम केर्बेरोज का उपयोग करके सक्रिय निर्देशिका में ज़ैबिक्स 4.0 (या नए) के लिए एक पारदर्शी एसएसओ (एकल साइन-ऑन) प्रमाणीकरण के चरण-दर-चरण कॉन्फ़िगरेशन पर विचार करेंगे।
अंतिम परिणाम यह है कि उपयोगकर्ता क्रेडेंशियल दर्ज किए बिना ज़ैबिक्स फ्रंटपेज पर स्वचालित रूप से प्रमाणित हो जाता है। ऐसा करने के लिए, उपयोगकर्ता को ज़ब्बिक्स में निर्दिष्ट सक्रिय निर्देशिका डोमेन खाते के तहत विंडोज़ में लॉग इन होना चाहिए। इसके अलावा, उपयोगकर्ता को ब्राउज़र को कॉन्फ़िगर करना होगा (Kerberos समर्थन सक्षम होना चाहिए और विश्वसनीय इंट्रानेट साइटों को IE में सेट किया जाना चाहिए)।
एक शोकेस:
- उबंटू सर्वर 18.04 एलटीएस;
- कार्यात्मक स्तर 2008 (या उच्चतर) के साथ सक्रिय निर्देशिका डोमेन
- ज़ब्बिक्स सर्वर 4.0.11, अपाचे2 एक वेब सर्वर के रूप में (ज़ब्बिक्स इंस्टॉलेशन पर गाइड)
सक्रिय निर्देशिका पर 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
अब आपको डोमेन कंट्रोलर पर कीटैब फाइल जेनरेट करने की जरूरत है। कीटैब एक फ़ाइल है जिसमें SPN और एन्क्रिप्टेड कुंजियाँ होती हैं। Keytab का उपयोग Kerberos-आधारित प्रमाणीकरण के लिए किया जाता है।
- अपने डोमेन नियंत्रक पर लॉग इन करें और एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट चलाएँ। सी पर जाएँ:\.
- निम्न दर्ज करें:
ktpass -princ HTTP/[email protected] -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/[email protected]' प्रारंभिक क्रेडेंशियल प्राप्त करते समय 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/[email protected]
यदि आपने अपनी कीटैब फ़ाइल को सही ढंग से जनरेट किया है, तो कमांड चलेगा, और आपको एक संदेश मिलेगा कि प्रमाणीकरण सफल हो गया है।
klist का उपयोग करना , आप संचित Kerberos टिकट देख सकते हैं:
klist -a