परिचय: ऑडिट और लॉगिंग क्यों महत्वपूर्ण हैं
Ubuntu Server पर ऑडिट और लॉगिंग आपके Ubuntu सर्वर की सुरक्षा, विश्वसनीयता और जवाबदेही बनाए रखने के लिए आवश्यक हैं। वे सिस्टम गतिविधियों में अंतर्दृष्टि प्रदान करते हैं, विसंगतियों का पता लगाने में मदद करते हैं, और GDPR, HIPAA या PCI-DSS जैसी नियामक आवश्यकताओं के अनुपालन के लिए महत्वपूर्ण हैं।
हालाँकि, कई सिस्टम डिस्क स्थान की खपत के बारे में चिंताओं या डेटा का प्रभावी ढंग से विश्लेषण करने के लिए टूल की कमी के कारण ऑडिटिंग सक्षम नहीं करते हैं। इस लेख में, हम इन चिंताओं को दूर करेंगे और व्यावहारिक और स्केलेबल तरीके से ऑडिटिंग और लॉगिंग लागू करने में आपका मार्गदर्शन करेंगे।
शामिल विषय:
- ऑडिटिंग का वास्तविक उपयोग और चुनौतियाँ।
- टूल: auditd का उपयोग करके सिस्टम घटनाओं को ट्रैक और रिकॉर्ड करना।
- ऑडिट लॉग के लिए डिस्क स्थान योजना।
- ऑडिट लॉग और सिस्टम लॉग का विश्लेषण करने के लिए टूल।
- लॉग रोटेशन कॉन्फ़िगरेशन टूल: logrotate।
- उन्नत निगरानी और ऑडिटिंग प्रथाएँ
पिछला लेख:
01. Ubuntu Server का परिचय – SysOSX: AI & Cloud
02. अपना पहला Ubuntu Server कैसे सेट अप करें: शुरुआती मार्गदर्शिका – SysOSX: AI & Cloud
03. Ubuntu Server के लिए Linux कमांड लाइन में महारत – SysOSX: AI & Cloud
05. Ubuntu Server के लिए नेटवर्किंग की मूल बातें: एक व्यापक मार्गदर्शिका – SysOSX: AI & Cloud
07.Ubuntu Server को पैच करना और अपडेट करना: एक व्यापक मार्गदर्शिका – SysOSX: AI & Cloud
08. अपने Ubuntu Server को सुरक्षित करें: हार्डनिंग और सुरक्षा के व्यावहारिक चरण – SysOSX: AI & Cloud
1. सिस्टम ऑडिटिंग का वास्तविक उपयोग
कई सिस्टम ऑडिटिंग क्यों छोड़ देते हैं
हालाँकि ऑडिटिंग शक्तिशाली है, कई व्यवस्थापक निम्नलिखित कारणों से इसे सक्षम करने से बचते हैं:
- डिस्क स्थान की खपत: ऑडिट लॉग तेजी से बढ़ सकते हैं, विशेष रूप से व्यस्त सिस्टम पर, और काफी डिस्क स्थान ले सकते हैं।
- प्रदर्शन ओवरहेड: विस्तृत ऑडिटिंग सक्षम करने से सिस्टम प्रदर्शन पर थोड़ा ओवरहेड बढ़ सकता है।
- जटिलता: ऑडिट लॉग विस्तृत होते हैं और विश्लेषण के लिए विशेष टूल की आवश्यकता होती है।
ऑडिटिंग की योजना कैसे बनाएँ
डिस्क स्थान योजना
ऑडिटिंग की प्रभावी ढंग से योजना बनाने के लिए:
- लॉग वृद्धि का अनुमान लगाएँ: ऑडिटिंग को अस्थायी रूप से सक्षम करके और एक सप्ताह में लॉग के आकार को मापकर लॉग वृद्धि दर की निगरानी करें।
sudo du -sh /var/log/audit/दैनिक, साप्ताहिक और मासिक भंडारण आवश्यकताओं की गणना करने के लिए इस डेटा का उपयोग करें। - समर्पित स्टोरेज आवंटित करें: ऑडिट लॉग को अलग पार्टीशन या डिस्क पर संग्रहीत करें ताकि लॉग रूट फ़ाइलसिस्टम को भर न दें। उदाहरण के लिए:
- लॉग के लिए एक पार्टीशन बनाएँ। उदाहरण:
/var/log/audit। - आवश्यकता पड़ने पर स्टोरेज को गतिशील रूप से बढ़ाने के लिए टूल:
lvcreate(Logical Volume Manager) का उपयोग करें।
- लॉग के लिए एक पार्टीशन बनाएँ। उदाहरण:
- संपीड़न सक्षम करें: टूल:
logrotateका उपयोग करके पुराने ऑडिट लॉग को संपीड़ित करें, जिससे स्टोरेज आवश्यकताएँ काफी कम हो जाती हैं। - प्रतिधारण नीतियाँ: अपने संगठन की आवश्यकताओं के आधार पर प्रतिधारण नीतियाँ परिभाषित करें। उदाहरण के लिए:
- समस्या निवारण के लिए लॉग 30 दिनों तक रखें।
- अनुपालन उद्देश्यों के लिए पुराने लॉग को बाह्य स्टोरेज पर संग्रहीत करें।
प्रदर्शन संबंधी विचार
Auditd का प्रदर्शन प्रभाव अधिकांश सिस्टम के लिए न्यूनतम है। हालाँकि, उच्च-ट्रैफ़िक सर्वर (जैसे, वेब सर्वर या डेटाबेस सर्वर) के लिए, ऑडिटिंग सक्षम करने के बाद CPU और I/O उपयोग की निगरानी करें। यदि आवश्यक हो:
- पूरे सिस्टम की निगरानी करने के बजाय ऑडिट नियमों का दायरा महत्वपूर्ण फ़ाइलों या निर्देशिकाओं तक सीमित करें।
- लॉग की आवृत्ति कम करने के लिए नमूनाकरण तकनीकों का उपयोग करें।
2. सिस्टम घटनाओं को ट्रैक और रिकॉर्ड करने का टूल: auditd का उपयोग
टूल: auditd सिस्टम ऑडिटिंग के लिए सबसे मजबूत समाधानों में से एक बना हुआ है। वास्तविक उपयोग के लिए अतिरिक्त विचार नीचे दिए गए हैं।
उन्नत ऑडिट नियम
प्रत्येक फ़ाइल का ऑडिट करने के बजाय, महत्वपूर्ण क्षेत्रों पर ध्यान दें:
- सिस्टम कॉन्फ़िगरेशन फ़ाइलें:
sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
- संवेदनशील निर्देशिकाएँ:
sudo auditctl -w /var/www/html -p rwxa -k web_access
- उपयोगकर्ता गतिविधि:
विशिष्ट उपयोगकर्ताओं या समूहों की निगरानी करें:
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands
ऑडिट लॉग का विश्लेषण करने के लिए टूल
ऑडिट लॉग भारी लग सकते हैं, लेकिन कई टूल डेटा को समझने और उसका विश्लेषण करने में मदद कर सकते हैं:
- Aureport: ऑडिट लॉग से सारांश रिपोर्ट तैयार करता है।
sudo aureport --summary - Auditbeat: Elastic का एक हल्का टूल, जो विज़ुअलाइज़ेशन और विश्लेषण के लिए ऑडिट लॉग को केंद्रीकृत ELK स्टैक पर भेजता है।
- Auditbeat इंस्टॉल करें:
sudo apt install auditbeat - इसे Elasticsearch या Logstash पर लॉग भेजने के लिए कॉन्फ़िगर करें।
- Auditbeat इंस्टॉल करें:
- Splunk: उन्नत खोज और रिपोर्टिंग क्षमताओं वाला लॉग विश्लेषण के लिए एक वाणिज्यिक टूल।
3. ऑडिट लॉग के लिए डिस्क स्थान योजना
डिस्क स्थान योजना का उदाहरण
मान लीजिए:
- दैनिक ऑडिट लॉग 500 MB लेते हैं।
- लॉग साप्ताहिक रूप से रोटेट किए जाते हैं और उनके मूल आकार के 20% तक संपीड़ित किए जाते हैं।
डिस्क स्थान गणना:
- 7 दिनों के लिए असंपीड़ित लॉग: 500 MB×7=3.5 GB500MB×7=3.5GB
- 30 दिनों के लिए संपीड़ित लॉग: 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
- कुल आवश्यक स्टोरेज: 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB
अप्रत्याशित बढ़ोतरी को ध्यान में रखते हुए कम से कम 10 GB आवंटित करें।
4. लॉग रोटेशन कॉन्फ़िगरेशन टूल: logrotate
लॉग का आकार प्रबंधित करने के लिए लॉग रोटेशन महत्वपूर्ण है। नीचे ऑडिट लॉग और सिस्टम लॉग के लिए उन्नत कॉन्फ़िगरेशन दिए गए हैं।
ऑडिट लॉग रोटेट करना
ऑडिट लॉग निम्नलिखित डेमॉन द्वारा स्वचालित रूप से प्रबंधित होते हैं। auditd के रोटेशन को अनुकूलित करने के लिए:
- निम्नलिखित फ़ाइल संपादित करें।
/etc/audit/auditd.conf:
max_log_file = 50 # Maximum size in MB for audit.log
max_log_file_action = rotate # Rotate logs when size exceeds limit
- कॉन्फ़िगरेशन का परीक्षण करें:
sudo service auditd restart
अन्य लॉग रोटेट करना
गैर-ऑडिट लॉग के लिए, निम्नलिखित का उपयोग करें। logrotate:
- के लिए उदाहरण:
/var/log/syslog:
/var/log/syslog {
weekly
rotate 4
compress
missingok
notifempty
create 0640 root root
}
5. उन्नत निगरानी और ऑडिटिंग प्रथाएँ
रीयल-टाइम लॉग निगरानी
महत्वपूर्ण घटनाओं का पता लगाने के लिए रीयल-टाइम निगरानी आवश्यक है। यहाँ कुछ टूल और तकनीकें दी गई हैं:
- Logwatch: दैनिक लॉग का सारांश बनाता है और उन्हें व्यवस्थापकों को ईमेल करता है।
sudo apt install logwatchमें इसे कॉन्फ़िगर करें। कॉन्फ़िगरेशन फ़ाइल:/etc/logwatch/conf/logwatch.conf। - केंद्रीकृत लॉग प्रबंधन:
- Rsyslog: लॉग को केंद्रीय सर्वर पर अग्रेषित करता है।
sudo apt install rsyslogकॉन्फ़िगरेशन फ़ाइल:/etc/rsyslog.confको कॉन्फ़िगर करके लॉग को दूरस्थ सर्वर पर भेजें। - Graylog: लॉग विश्लेषण के लिए वेब-आधारित इंटरफ़ेस प्रदान करता है।
- ELK Stack: स्केलेबल लॉग प्रबंधन के लिए Elasticsearch, Logstash और Kibana।
- Rsyslog: लॉग को केंद्रीय सर्वर पर अग्रेषित करता है।
सुरक्षा-केंद्रित निगरानी
- Fail2ban: विफल लॉगिन प्रयासों के लिए लॉग की निगरानी करता है और IP को प्रतिबंधित करता है।
sudo apt install fail2ban
- Tripwire: घुसपैठ का पता लगाने के लिए फ़ाइल परिवर्तनों का पता लगाता है।
sudo apt install tripwire
अलर्ट एकीकृत करना
निम्नलिखित जैसे टूल का उपयोग करके महत्वपूर्ण घटनाओं के लिए अलर्ट सेट अप करें:
- Nagios: विसंगतियों के लिए सर्वर स्वास्थ्य और लॉग की निगरानी करता है।
- Prometheus with Grafana: रीयल टाइम में मेट्रिक्स और लॉग ट्रैक करता है।
लॉग फ़ाइलों के स्थान
कई अलग-अलग लॉग फ़ाइलें हैं जो सभी अलग-अलग उद्देश्यों की पूर्ति करती हैं। जब आप किसी चीज़ के बारे में लॉग खोजने का प्रयास कर रहे हों, तो आपको सबसे पहले सबसे प्रासंगिक फ़ाइल की पहचान करनी चाहिए। नीचे सामान्य लॉग फ़ाइल स्थानों की सूची दी गई है।
सिस्टम लॉग
सिस्टम लॉग ठीक उसी से संबंधित हैं – Ubuntu सिस्टम से – उपयोगकर्ता द्वारा जोड़े गए अतिरिक्त एप्लिकेशन के विपरीत। इन लॉग में प्राधिकरण, सिस्टम डेमॉन और सिस्टम संदेशों के बारे में जानकारी हो सकती है।
प्राधिकरण लॉग
स्थान: /var/log/auth.log
पासवर्ड प्रॉम्प्ट, कमांड और दूरस्थ लॉगिन जैसी प्राधिकरण प्रणालियों पर नज़र रखता है। कमांड: sudo ।
डेमॉन लॉग
स्थान: /var/log/daemon.log
डेमॉन ऐसे प्रोग्राम हैं जो पृष्ठभूमि में चलते हैं, आमतौर पर उपयोगकर्ता की भागीदारी के बिना। उदाहरण के लिए, डिस्प्ले सर्वर, SSH सत्र, प्रिंटिंग सेवाएँ, ब्लूटूथ, और बहुत कुछ।
डीबग लॉग
स्थान: /var/log/debug
Ubuntu सिस्टम और एप्लिकेशन से डीबगिंग जानकारी प्रदान करता है।
कर्नेल लॉग
स्थान: /var/log/kern.log
Linux कर्नेल से लॉग।
सिस्टम लॉग
स्थान: /var/log/syslog
आपके सिस्टम के बारे में अधिक जानकारी रखता है। यदि आपको अन्य लॉग में कुछ नहीं मिलता है, तो संभवतः यह यहाँ है।
एप्लिकेशन लॉग
कुछ एप्लिकेशन निम्नलिखित स्थान पर भी लॉग बनाते हैं। /var/log। नीचे कुछ उदाहरण दिए गए हैं।
Apache लॉग
स्थान: /var/log/apache2/ (उपनिर्देशिका)
Apache निम्नलिखित उपनिर्देशिका में कई लॉग फ़ाइलें बनाता है। /var/log/apache2/ । फ़ाइल: access.log फ़ाइलों तक पहुँचने के लिए सर्वर से किए गए सभी अनुरोधों को रिकॉर्ड करती है। फ़ाइल: error.log सर्वर द्वारा फेंकी गई सभी त्रुटियों को रिकॉर्ड करती है।
X11 सर्वर लॉग
स्थान: /var/log/Xorg.0.log
X11 सर्वर आपके प्रत्येक डिस्प्ले के लिए एक अलग लॉग फ़ाइल बनाता है। डिस्प्ले नंबर शून्य से शुरू होते हैं, इसलिए आपका पहला डिस्प्ले (डिस्प्ले 0) निम्नलिखित में लॉग करेगा। Xorg.0.log। अगला डिस्प्ले (डिस्प्ले 1) निम्नलिखित में लॉग करेगा। Xorg.1.log, और इसी तरह।
मानव द्वारा पढ़े न जा सकने वाले लॉग
सभी लॉग फ़ाइलें मनुष्यों द्वारा पढ़े जाने के लिए डिज़ाइन नहीं की गई हैं। कुछ एप्लिकेशन द्वारा पार्स किए जाने के लिए बनाई गई थीं। नीचे कुछ उदाहरण दिए गए हैं।
लॉगिन विफलता लॉग
स्थान: /var/log/faillog
लॉगिन विफलताओं के बारे में जानकारी रखता है। आप इसे निम्नलिखित कमांड से देख सकते हैं। faillog ।
अंतिम लॉगिन लॉग
स्थान: /var/log/lastlog
अंतिम लॉगिन के बारे में जानकारी रखता है। आप इसे निम्नलिखित कमांड से देख सकते हैं। lastlog ।
लॉगिन रिकॉर्ड लॉग
स्थान: /var/log/wtmp
लॉगिन जानकारी रखता है जिसका उपयोग अन्य उपयोगिताएँ यह पता लगाने के लिए करती हैं कि कौन लॉग इन है। वर्तमान में लॉग इन उपयोगकर्ताओं को देखने के लिए, निम्नलिखित कमांड का उपयोग करें। who ।
निष्कर्ष
ऑडिटिंग और लॉगिंग एक सुरक्षित और विश्वसनीय Ubuntu सर्वर बनाए रखने के लिए आवश्यक हैं। डिस्क स्थान की सावधानीपूर्वक योजना बनाकर, लॉग का विश्लेषण करने के लिए टूल का उपयोग करके, और उन्नत निगरानी प्रथाओं को लागू करके, आप सामान्य चुनौतियों से पार पा सकते हैं और सिस्टम गतिविधियों में बेहतर दृश्यता प्राप्त कर सकते हैं।
चाहे आप अनुपालन आवश्यकताओं का प्रबंधन कर रहे हों या अपने सर्वर को सक्रिय रूप से सुरक्षित कर रहे हों, इस लेख में चर्चा की गई तकनीकें और टूल आपको एक स्केलेबल और प्रभावी लॉगिंग और ऑडिटिंग रणनीति बनाने में मदद करेंगे।
आगे: Ubuntu Server के लिए सिस्टम मॉनिटरिंग टूल
अगले लेख में, हम निगरानी और प्रदर्शन प्रबंधन के बारे में और गहराई से जाएँगे। हम शक्तिशाली Ubuntu Server के लिए सिस्टम मॉनिटरिंग टूल का पता लगाएँगे, जिनमें निम्नलिखित जैसे समाधान शामिल हैं: Nagios, Prometheus, Grafana और htop, जो संसाधन उपयोग को ट्रैक करने, अड़चनों का पता लगाने और सर्वर प्रदर्शन को अनुकूलित करने में आपकी मदद करेंगे।
यह जानने के लिए बने रहें कि अपने सर्वर को कुशलतापूर्वक कैसे चालू रखा जाए और संभावित समस्याओं के आपके संचालन को प्रभावित करने से पहले उन्हें सक्रिय रूप से कैसे संबोधित किया जाए!
3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”