हर दिन, इंटरनेट पर सभी साइटों पर बड़ी संख्या में बॉट आते हैं, जो हमारे लिए महत्वपूर्ण हैं (उदाहरण के लिए, यांडेक्स, गूगल, आदि) से लेकर संभावित खतरनाक साइटों तक। वेब सर्वर लॉग का विश्लेषण करने के बाद, आपको संदिग्ध घटनाएँ दिखाई देंगी। फिलहाल, सोशल इंजीनियरिंग का उपयोग करने वाले हैक के प्रकार (स्वयं सॉफ़्टवेयर को हैक करना नहीं, बल्कि खामियां ढूंढना) तेजी से विकसित हो रहे हैं, जो डेवलपर या प्रशासक द्वारा छोड़े गए हैं। आज हम आपको बताएंगे कि बैकअप और इंस्टॉल किए गए phpmyadmin की खोज करने वाले बॉट्स को कैसे ब्लॉक किया जाए। ऐसे बॉट्स को ब्लॉक करने के लिए हम Fail2Ban, एक फ़िल्टर और एक नियम (जेल) का उपयोग करेंगे। यह कार्य Centos 7 पर किया गया।
बैकअप खोज बॉट
बॉट एक संग्रह के रूप में छोड़ी गई बैकअप प्रतियों की खोज करता है, रूट से लेकर विभिन्न विशिष्ट फ़ोल्डरों तक खोज करता है। यदि पाया जाता है, तो यह संभवतः उसके मालिक को जानकारी हस्तांतरित कर देगा, लेकिन प्रतियों में फ़ाइलें और एक डेटाबेस होता है जो साइट तक पहुंच की अनुमति देता है। किसी वेबसाइट को एक सर्वर या होस्टिंग से दूसरे सर्वर पर ले जाने के बाद ऐसी प्रतियां अक्सर हटाना भूल जाती हैं।
एक फ़िल्टर जोड़ें
backup-scan.local
[Definition]
failregex = ^ - - .*./(backup.tgz|backup.zip|backup.tar) HTTP/1.0" 404|301 ignoreregex =
आइए एक नियम जोड़ें:
[backup-scan]
enabled = true
filter = backup-scan
action = iptables-multiport[chain="INPUT", name="backup-scan", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="backup-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
प्रयासों की संख्या कम की जा सकती है, जिससे संवेदनशीलता में उल्लेखनीय वृद्धि होगी और वेब सेवा पर भार कम होगा। हम अनुशंसा करते हैं कि साइट स्वामी अपने सर्वर से सभी संग्रहीत बैकअप हटा दें। बॉट डोमेन नाम आदि वाले अभिलेखों की भी तलाश करते हैं, यहां हमने बुनियादी नियम दिए हैं।
PhpMyAdmin, रूटकिट, बैकडोर खोजने के लिए बॉट
ये बॉट कमजोरियों, हैकिंग और पासवर्ड अनुमान लगाने वाले हमलों की खोज के लिए स्थापित phpMyAdmin की खोज करते हैं। PhpMyAdmin डेटाबेस के साथ काम करने का उपकरण बहुत लोकप्रिय है और स्थापित संस्करण और सेटिंग्स के आधार पर इसे समय-समय पर हैक किया जाता है।
आइए एक फ़िल्टर जोड़ें:
phpmyadmin.local
[Definition]
failregex = ^ - - ../(phpmyadm1n|mysqladmin)/index.php
^ - - ../(pma.php|pmd_online.php|db_pma.php) HTTP/1.0" (404|301|200)
ignoreregex =
फ़िल्टर में, हमने एक साथ 2 स्थितियाँ निर्दिष्ट की हैं, दूसरी उन बॉट्स को ब्लॉक कर देगी जो पहले हैक की गई साइटों पर हमलावरों द्वारा छोड़ी गई पोस्ट एक्सेस स्क्रिप्ट की तलाश कर रहे हैं। (रुक्किट्स, बैकडोर)
आइए एक नियम जोड़ें:
[phpmyadmin-scan]
enabled = true
filter = phpmyadmin
action = iptables-multiport[chain="INPUT", name="phpmyadmin", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="phpmyadmin-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
सेटिंग्स में अपने ईमेल को अपने अनुसार बदलना न भूलें; नियम और आईपी पते का संकेत देते हुए, उसे ब्लॉक करने की सूचनाएं भेजी जाएंगी। लॉग फ़ाइल का पथ भी जांचा जाना चाहिए और अपने पथ के रूप में निर्दिष्ट किया जाना चाहिए। हमारे मामले में, कई लॉग फ़ाइलें एक ही नेस्टिंग स्तर पर, लेकिन विभिन्न फ़ोल्डरों में स्थित होकर संसाधित की जाती हैं। यदि आवश्यक हो, तो आप कई लॉग फ़ाइलें निर्दिष्ट कर सकते हैं। हम अनुशंसा करते हैं कि phpMyAdmin के साथ काम करने के बाद, पढ़ने के अधिकार हटा दें ताकि यदि बार-बार उपयोग किया जाए तो यह पहुंच योग्य न हो, आप htaccass और htpasswd में पासवर्ड-संरक्षित फ़ोल्डरों का उपयोग करके वेब सर्वर स्तर पर सुरक्षा जोड़ सकते हैं।