
LDAP Watchdog: एक रीयल-टाइम लिनक्स-संगत LDAP निगरानी उपकरण जो निर्देशिका परिवर्तनों का पता लगाने के लिए है, प्रशासकों और सुरक्षा शोधकर्ताओं के लिए जोड़, संशोधन और हटाने में दृश्यता प्रदान करता है।
LDAP वॉचडॉग एक उपकरण है जो LDAP निर्देशिका में वास्तविक समय में रिकॉर्ड परिवर्तनों की निगरानी करने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ता और समूह प्रविष्टियों में परिवर्तन, जोड़ और हटाने को ट्रैक और विज़ुअलाइज़ करने का एक तंत्र प्रदान करता है, जिससे उपयोगकर्ता अपेक्षित परिवर्तनों को वास्तविक परिवर्तनों से संबंधित कर सकते हैं और संभावित सुरक्षा घटनाओं की पहचान कर सकते हैं। यह OpenLDAP और Linux को ध्यान में रखकर बनाया गया था, हालाँकि यह LDAP के अन्य कार्यान्वयनों में भी काम कर सकता है। यह Python में लिखा गया है और केवल ldap3 लाइब्रेरी की आवश्यकता है।
यह सॉफ्टवेयर जोशुआ रोजर्स द्वारा लिखा गया था।
यदि आप निम्नलिखित में से किसी में रुचि रखते हैं, तो LDAP वॉचडॉग आपके लिए है:
LDAP निर्देशिका में परिवर्तनों, जोड़ और हटाने की निगरानी के अलावा, इसे विशिष्ट विशेषताओं को अनदेखा करने के लिए कॉन्फ़िगर किया जा सकता है, या यहां तक कि उनके पुराने/नए मानों के आधार पर सूक्ष्म-विशेषताओं को अनदेखा करने के लिए ठीक-ट्यून किया जा सकता है।
जिन परिवर्तनों की निगरानी की जाती है, उन्हें या तो Slack वेबहुक पर अग्रेषित किया जा सकता है या टर्मिनल पर आउटपुट किया जा सकता है (या दोनों)। वैकल्पिक रंगीन आउटपुट भी समर्थित है।
पहले LDAP-Stalker नाम (क्योंकि LDAP निर्देशिका में परिवर्तनों की निगरानी करना कंपनी में परिवर्तनों पर नज़र रखने का एक उत्कृष्ट तरीका है: घोषित होने से पहले पदोन्नति, नई भर्ती, छोड़ने वाले आदि के बारे में जानें), इस परियोजना के विवरण और इतिहास के बारे में एक ब्लॉग पोस्ट यहाँ पाई जा सकती है।
नोट: नीचे दिए गए उदाहरणों में, entryCSN और modifyTimestamp को LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestamp सेट करके पूरी तरह से अनदेखा किया जा सकता है।


वास्तविक समय निगरानी: LDAP वॉचडॉग लगातार उपयोगकर्ता और समूह प्रविष्टियों में परिवर्तनों के लिए एक LDAP निर्देशिका की निगरानी करता है।
परिवर्तन तुलना: उपकरण लगातार LDAP खोजों के बीच परिवर्तनों की तुलना करता है, जोड़, संशोधन और हटाने को हाइलाइट करता है।
नियंत्रण उपयोगकर्ता सत्यापन: LDAP वॉचडॉग एक नियंत्रण उपयोगकर्ता तंत्र का समर्थन करता है, यदि नियंत्रण उपयोगकर्ता के परिवर्तन नहीं मिलते हैं तो त्रुटि उत्पन्न करता है।
लचीला LDAP फ़िल्टरिंग: उपयोगकर्ता विशिष्ट ऑब्जेक्ट क्लास या विशेषताओं पर ध्यान केंद्रित करने के लिए LDAP_WATCHDOG_SEARCH_FILTER पर्यावरण चर का उपयोग करके LDAP फ़िल्टरिंग को अनुकूलित कर सकते हैं।
Slack एकीकरण: जोड़े गए, संशोधित या हटाए गए LDAP प्रविष्टियों के लिए Slack पर वास्तविक समय सूचनाएं प्राप्त करें।
अनुकूलन योग्य आउटपुट: कंसोल आउटपुट जोड़, संशोधन और हटाने के स्पष्ट और रंगीन संकेत प्रदान करता है ताकि आसानी से दिखाई दे।
अनदेखी प्रविष्टियाँ और विशेषताएँ: उपयोगकर्ता तुलना प्रक्रिया के दौरान अनदेखा करने के लिए UUID और विशेषताओं को निर्दिष्ट कर सकते हैं।
सशर्त अनदेखी विशेषताएँ: सशर्त फ़िल्टरिंग उपयोगकर्ताओं को परिवर्तन प्रकार (जोड़, संशोधन, हटाना) के आधार पर विशिष्ट विशेषताओं को अनदेखा करने की अनुमति देता है।
ldap3 पैकेज। यदि Slack वेबहुक का उपयोग कर रहे हैं, तो requests पैकेज भी आवश्यक है।pip install LDAP-Monitor
Slack वेबहुक समर्थन शामिल करने के लिए:
pip install LDAP-Monitor[slack]
docker pull megamansec/ldap-monitor
या GitHub कंटेनर रजिस्ट्री से:
docker pull ghcr.io/megamansec/ldap-monitoring-watchdog
git clone https://github.com/MegaManSec/LDAP-Monitoring-Watchdog.git
cd LDAP-Monitoring-Watchdog
pip install ".[slack]"
export LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan'
export LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com'
export LDAP_WATCHDOG_USERNAME='Emily'
export LDAP_WATCHDOG_PASSWORD='qwerty123'
ldap-watchdog
या python -m का उपयोग करके:
python -m ldap_watchdog
docker run -d \
-e LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan' \
-e LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com' \
-e LDAP_WATCHDOG_USERNAME='Emily' \
-e LDAP_WATCHDOG_PASSWORD='qwerty123' \
-e SLACK_WEBHOOK_URL='https://hooks.slack.com/services/[...]' \
-e LDAP_WATCHDOG_IGNORED_ATTRIBUTES='modifyTimestamp,phoneNumber,officeLocation,gecos' \
megamansec/ldap-monitor
एक Debian-आधारित स्थापना स्क्रिप्ट, install.sh, प्रदान की गई है। जब रूट के रूप में चलाया जाता है, तो यह स्क्रिप्ट:
/opt/ldap-watchdog में एक Python वर्चुअल वातावरण बनाता है।/etc/ldap-watchdog.env पर एक पर्यावरण फ़ाइल बनाता है।/etc/systemd/system/ldap-watchdog.service) स्थापित और सक्षम करता है जो पृष्ठभूमि में ldap-watchdog चलाता है।/var/log/ldap-watchdog.log और /var/log/ldap-watchdog-error.log पर लॉगिंग कॉन्फ़िगर करता है।/etc/logrotate.d/ldap-watchdog में लॉग रोटेशन सेट करता है।आप वैकल्पिक रूप से SLACK_WEBHOOK_URL सेट करने के लिए install.sh को एक एकल तर्क पास कर सकते हैं:
sudo ./install.sh "https://hooks.slack.com/services/[...]"
स्थापना के बाद, LDAP कनेक्शन सेटिंग्स कॉन्फ़िगर करने के लिए /etc/ldap-watchdog.env को संपादित करें, फिर सेवा को पुनरारंभ करें:
sudo systemctl restart ldap-watchdog
सभी कॉन्फ़िगरेशन पर्यावरण चर के माध्यम से किए जाते हैं। निम्नलिखित चर समर्थित हैं:
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
LDAP_WATCHDOG_CONTROL_UUID |
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
SLACK_WEBHOOK_URL |
LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES चर एक JSON स्ट्रिंग स्वीकार करता है जहाँ कुंजियाँ गुण नाम हैं और मान अनदेखा करने के लिए मानों की सूची हैं:
export LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES='{
"objectClass": ["posixAccount"],
"memberOf": ["cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com", "cn=interns,ou=Accessgroups,dc=mouse,dc=com"],
"organizationalStatus": ["researcher"]
}'
export LDAP_WATCHDOG_CONTROL_UUID='a71c6e4c-8881-4a03-95bf-4fc25d5e6359'
export LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan'
export LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com'
export LDAP_WATCHDOG_USERNAME='Emily'
export LDAP_WATCHDOG_PASSWORD='qwerty123'
export LDAP_WATCHDOG_USE_SSL='true'
export LDAP_WATCHDOG_REFRESH_RATE='60'
export LDAP_WATCHDOG_DISABLE_COLOR_OUTPUT='false'
export LDAP_WATCHDOG_IGNORED_UUIDS='e191c564-6e6d-42c1-ae51-bda0509fe846,8655e0d9-ecdc-46ce-ba42-1fa3dfbf5faa'
export LDAP_WATCHDOG_IGNORED_ATTRIBUTES='modifyTimestamp,phoneNumber,officeLocation,gecos'
export LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES='{"objectClass":["posixAccount"],"memberOf":["cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com","cn=interns,ou=Accessgroups,dc=mouse,dc=com"],"organizationalStatus":["researcher"]}'
export SLACK_WEBHOOK_URL='https://hooks.slack.com/services/[...]'
ldap-watchdog
यह परियोजना GPL3.0 के तहत लाइसेंस प्राप्त है।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|
LDAP_WATCHDOG_SERVER | LDAP सर्वर URL (उदा. ldaps://ldaps.intra.lan) | "" |
LDAP_WATCHDOG_BASE_DN | LDAP खोजों के लिए आधार प्रतिष्ठित नाम | "" |
LDAP_WATCHDOG_USERNAME | प्रमाणीकरण के लिए LDAP उपयोगकर्ता नाम। अनाम बाइंड के लिए खाली छोड़ें। | "" |
LDAP_WATCHDOG_PASSWORD | प्रमाणीकरण के लिए LDAP पासवर्ड। अनाम बाइंड के लिए खाली छोड़ें। | "" |
LDAP_WATCHDOG_USE_SSL | SSL का उपयोग करने के लिए true पर सेट करें, अन्यथा false | true |
LDAP_WATCHDOG_SEARCH_FILTER | उपयोगकर्ता और समूह प्रविष्टियों के लिए LDAP फ़िल्टर | (&(|(objectClass=inetOrgPerson)(objectClass=groupOfNames))) |
LDAP_WATCHDOG_SEARCH_ATTRIBUTE | प्राप्त करने के लिए गुणों की अल्पविराम से अलग की गई सूची। परिचालन गुणों को शामिल करने के लिए डिफ़ॉल्ट रूप से *,+ का उपयोग किया जाता है। | *,+ |
LDAP_WATCHDOG_REFRESH_RATE | लगातार LDAP खोजों के बीच समय अंतराल सेकंड में | 60 |
LDAP_WATCHDOG_DISABLE_COLOR_OUTPUT | रंगीन टर्मिनल आउटपुट को अक्षम करने के लिए true पर सेट करें | false |
| एक नियंत्रण उपयोगकर्ता का UUID जिसके परिवर्तन न मिलने पर त्रुटि उत्पन्न होती है। यदि सेट किया जाता है, तो इस उपयोगकर्ता के पास LDAP निर्देशिका प्राप्त करने पर हमेशा किसी न किसी प्रकार का परिवर्तन होना चाहिए। |
"" |
LDAP_WATCHDOG_CONTROL_USER_ATTRIBUTE | नियंत्रण उपयोगकर्ता में परिवर्तनों की जाँच करने के लिए विशिष्ट गुण। यदि सेट किया जाता है, तो नियंत्रण UUID उपयोगकर्ता के लिए यह गुण अवश्य बदला होना चाहिए। | "" |
सूचनाओं के लिए Slack वेबहुक URL। slack एक्स्ट्रा (pip install LDAP-Monitor[slack]) की आवश्यकता है। |
None |
LDAP_WATCHDOG_SLACK_BULLETPOINT | Slack और कंसोल आउटपुट में उपयोग किया जाने वाला बुलेट पॉइंट वर्ण | \u2022 |
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|
LDAP_WATCHDOG_IGNORED_UUIDS | तुलना के दौरान अनदेखा करने के लिए UUID की अल्पविराम से अलग की गई सूची | "" |
LDAP_WATCHDOG_IGNORED_ATTRIBUTES | तुलना के दौरान अनदेखा करने के लिए गुणों की अल्पविराम से अलग की गई सूची | "" |
LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES | सशर्त रूप से अनदेखा करने के लिए गुणों का JSON स्ट्रिंग (नीचे देखें) | {} |