
Linux सुरक्षा और निगरानी स्क्रिप्ट्स
ये सुरक्षा और निगरानी स्क्रिप्ट्स का एक संग्रह है जिसका उपयोग आप अपने लिनक्स इंस्टॉलेशन की सुरक्षा-संबंधित घटनाओं के लिए निगरानी करने या किसी जांच के लिए कर सकते हैं। प्रत्येक स्क्रिप्ट स्वतंत्र रूप से काम करती है और अन्य स्क्रिप्ट्स से स्वतंत्र है। स्क्रिप्ट्स को या तो उनके परिणाम प्रिंट करने, मेल के माध्यम से आपको भेजने, या अधिसूचना चैनल के रूप में AlertR का उपयोग करने के लिए सेट किया जा सकता है।
स्क्रिप्ट्स scripts/ निर्देशिका में स्थित हैं।
प्रत्येक स्क्रिप्ट में फ़ाइल के शीर्षक में एक संक्षिप्त सारांश होता है जिसमें बताया जाता है कि यह क्या करने वाली है, यदि परिणाम स्पष्ट नहीं है तो उसकी व्याख्या कैसे करें, और ज्ञात समस्याएँ। यदि इसमें निर्भरताएँ हैं जिन्हें स्थापित करना आवश्यक है, तो उन्हें भी सूचीबद्ध किया गया है, साथ ही उन संदर्भों का उल्लेख किया गया है जहाँ से इस स्क्रिप्ट का विचार आया (यदि उपलब्ध हो)।
प्रत्येक स्क्रिप्ट को कॉन्फ़िगर करने के लिए scripts/config/ निर्देशिका में एक कॉन्फ़िगरेशन फ़ाइल है।
यदि स्क्रिप्ट के निष्पादन के दौरान कॉन्फ़िगरेशन फ़ाइल नहीं मिली, तो स्क्रिप्ट डिफ़ॉल्ट सेटिंग्स पर वापस आ जाएगी और परिणाम प्रिंट करेगी।
इसलिए, कॉन्फ़िगरेशन फ़ाइल प्रदान करना आवश्यक नहीं है।
scripts/lib/ निर्देशिका में वह कोड है जो विभिन्न स्क्रिप्ट्स के बीच साझा किया जाता है।
monitor_ उपसर्ग का उपयोग करने वाली स्क्रिप्ट्स एक स्थिति रखती हैं और केवल निगरानी उद्देश्यों के लिए उपयोगी होती हैं।
जांच के लिए उनका एक बार उपयोग करने से केवल लिनक्स सिस्टम की वर्तमान स्थिति दिखाई देगी, न कि वे परिवर्तन जो सिस्टम की सुरक्षा के लिए प्रासंगिक हो सकते हैं। यदि आप इन स्क्रिप्ट्स के लिए अपने सिस्टम की वर्तमान स्थिति को हानिरहित के रूप में स्थापित करना चाहते हैं, तो आप --init तर्क प्रदान कर सकते हैं।
search_ उपसर्ग का उपयोग करने वाली स्क्रिप्ट्स समझौता के संकेतक खोजती हैं। इनका उपयोग जांच उद्देश्यों के लिए किया जा सकता है। यदि आप इन्हें निगरानी उद्देश्यों के लिए उपयोग करना चाहते हैं, तो आप स्थिति रखने और केवल नए निष्कर्षों को आउटपुट करने के लिए --monitoring तर्क प्रदान कर सकते हैं।
उस स्क्रिप्ट के शीर्षक को देखें जिसे आप निष्पादित करना चाहते हैं। इसमें एक संक्षिप्त विवरण है कि यह स्क्रिप्ट क्या करने वाली है और किन आवश्यकताओं की आवश्यकता है (यदि कोई हो)। यदि आवश्यकताएँ हैं, तो स्क्रिप्ट चलाने से पहले उन्हें स्थापित करें।
साझा कॉन्फ़िगरेशन फ़ाइल scripts/config/config.py में वे सेटिंग्स हैं जो सभी स्क्रिप्ट्स द्वारा उपयोग की जाती हैं।
इसके अलावा, प्रत्येक स्क्रिप्ट को scripts/config/ निर्देशिका में संबंधित कॉन्फ़िगरेशन फ़ाइल का उपयोग करके कॉन्फ़िगर किया जा सकता है। यदि कोई कॉन्फ़िगरेशन फ़ाइल नहीं मिली, तो डिफ़ॉल्ट सेटिंग का उपयोग किया जाता है और परिणाम प्रिंट किए जाते हैं।
अंत में, आप start_search.py (जो मुख्य निर्देशिका में स्थित है) को निष्पादित करके या प्रत्येक स्क्रिप्ट को मैन्युअल रूप से निष्पादित करके सभी कॉन्फ़िगर की गई स्क्रिप्ट्स चला सकते हैं। स्क्रिप्ट्स को चलाने के लिए Python3 इंटरप्रेटर की आवश्यकता है।
यदि आप अपने लिनक्स सिस्टम की लगातार निगरानी करने के लिए स्क्रिप्ट्स का उपयोग करना चाहते हैं, तो आपको निम्नलिखित चरणों का पालन करना होगा:
एक अधिसूचना चैनल सेट करें जो स्क्रिप्ट्स द्वारा समर्थित हो (वर्तमान में प्रिंट करना, मेल, या AlertR)।
scripts/config/ निर्देशिका में कॉन्फ़िगरेशन फ़ाइलों का उपयोग करके उन स्क्रिप्ट्स को कॉन्फ़िगर करें जिन्हें आप चलाना चाहते हैं।
start_search.py को --init तर्क के साथ निष्पादित करें ताकि monitor_ उपसर्ग वाली स्क्रिप्ट्स को प्रारंभ किया जा सके और उन्हें आपके सिस्टम की स्थिति स्थापित करने दिया जा सके। हालाँकि, यह मानता है कि आपका सिस्टम वर्तमान में असमझौता है। यदि आप इस बारे में अनिश्चित हैं, तो आपको इसकी वर्तमान स्थिति सत्यापित करनी चाहिए।
root उपयोगकर्ता के रूप में एक क्रॉन जॉब सेट करें जो start_search.py --monitoring निष्पादित करता है (उदाहरण के लिए, 0 * * * * root /opt/LSMS/start_search.py --monitoring प्रति घंटे खोज शुरू करने के लिए)। --monitoring तर्क स्क्रिप्ट्स को केवल नए निष्कर्षों की रिपोर्ट करने देता है और इस प्रकार उन्हें एक ही समस्या की लगातार रिपोर्ट करने से रोकता है।
| नाम | स्क्रिप्ट |
|---|
| क्रॉन फ़ाइलों की निगरानी | monitor_cron.py |
| /etc/hosts फ़ाइल की निगरानी | monitor_hosts_file.py |
| /etc/ld.so.preload फ़ाइल की निगरानी | monitor_ld_preload.py |
| /etc/passwd फ़ाइल की निगरानी | monitor_passwd.py |
| मॉड्यूल की निगरानी | monitor_modules.py |
| SSH authorized_keys फ़ाइलों की निगरानी | monitor_ssh_authorized_keys.py |
| systemd यूनिट फ़ाइलों की निगरानी | monitor_systemd_units.py |
| चल रहे हटाए गए प्रोग्राम खोजें | search_deleted_exe.py |
| /dev/shm में निष्पादन योग्य फ़ाइलें खोजें | search_dev_shm.py |
| छिपी ELF फ़ाइलें खोजें | search_hidden_exe.py |
| अपरिवर्तनीय फ़ाइलें खोजें | search_immutable_files.py |
| utmp लॉग में गायब lastlog प्रविष्टियाँ खोजें | search_lastlog_in_utmp.py |
| फ़ाइलरहित प्रोग्राम (memfd_create) खोजें | search_memfd_create.py |
| कर्नेल थ्रेड प्रतिरूपण खोजें | search_non_kthreads.py |
| अब डिस्कनेक्टेड SSH सत्र द्वारा शुरू की गई प्रक्रियाएँ खोजें | search_ssh_leftover_processes.py |
| संदिग्ध संयोजनों के लिए कर्नेल मॉड्यूल टेंट फ्लैग खोजें | search_tainted_modules.py |
| utmp लॉग के साथ छेड़छाड़ के संकेत खोजें | search_utmp_tampering.py |
| अलर्टिंग काम करती है या नहीं जाँचने के लिए परीक्षण स्क्रिप्ट | test_alert.py |
| स्थापित .deb पैकेजों की अखंडता सत्यापित करें | verify_deb_packages.py |