Fail2Ban सेवा आपकी वेबसाइट के लिए पासवर्ड का अनुमान लगाने वाले बॉट्स के आईपी पते को ब्लॉक करने में मदद करती है। हाल ही में, इसका उपयोग अक्सर हमलों को अंजाम देने के लिए किया गया है, क्योंकि बड़ी संख्या में पोस्ट अनुरोध वेब सर्वर पर एक महत्वपूर्ण भार पैदा करते हैं। हमारे उदाहरणों में, हम लोकप्रिय सीएमएस - वर्डप्रेस के साथ-साथ एसएसएच सेवा के उदाहरण का उपयोग करके आईपी पते को अवरुद्ध करने पर विचार करेंगे।
1. Fail2Ban सेवा स्थापित करें
1.1 एपेल रिपॉजिटरी को कनेक्ट करना
yum install epel-release
फिर /etc/yum.repos.d/epel.repo में आपको इसे सक्षम करने की आवश्यकता है, enabled=1
yum install fail2ban
2. सामान्य सेटिंग्स
Fail2ban सेवा अपनी कॉन्फ़िगरेशन फ़ाइलों को /etc/fail2ban निर्देशिका में संग्रहीत करती है। डिफ़ॉल्ट मानों वाली एक फ़ाइल है जिसे जेल.कॉन्फ कहा जाता है। चूँकि यह फ़ाइल पैकेज अद्यतनों द्वारा अधिलेखित हो सकती है, इसलिए हमें इसका उपयोग नहीं करना चाहिए। इसके बजाय, हम जेल.लोकल नामक एक नई फ़ाइल लिखेंगे। जेल.लोकल में परिभाषित कोई भी मान जेल.कॉन्फ़ में मानों को ओवरराइड कर देता है।
जेल.कॉन्फ में एक [डिफ़ॉल्ट] अनुभाग होता है, जिसके बाद व्यक्तिगत सेवाओं के लिए अनुभाग होते हैं। जेल.लोकल इनमें से किसी भी मान को ओवरराइड कर सकता है। इसके अतिरिक्त, /etc/fail2ban/jail.d/ की फ़ाइलों का उपयोग इन दोनों फ़ाइलों की सेटिंग्स को ओवरराइड करने के लिए किया जा सकता है। फ़ाइलें निम्नलिखित क्रम में लागू की जाती हैं:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf, alphabetically
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local, alphabetically
आइए जांचें और फ़ाइल में डिफ़ॉल्ट सेटिंग्स जोड़ें /etc/fail2ban/jail.local
[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport
[sshd]
enabled = true
आइए सेवा पुनः आरंभ करें
service fail2ban restart
आइए कमांड से स्थिति की जांच करें
fail2ban-client status
3. Wordpress фильтр
आइए उन आईपी पते को ब्लॉक करने के लिए एक फ़िल्टर और एक नियम (जेल) जोड़ें, जो 10 मिनट के भीतर एक ही आईपी पते से 10 से अधिक बार /wp-login.php (वर्डप्रेस एडमिन) पते तक पहुंचे।
3.1 फ़िल्टर
/etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = ^.* "POST .*/wp-login.php([/\?#\\].*)? HTTP/.*" 200
ignoreregex =
इस फ़िल्टर का उपयोग करके हम आईपी पते खोजेंगे।
3.2 आइए जोड़ें jail
/etc/fail2ban/jail.d/wordpress.conf
[wordpress]
action = iptables-multiport[name="wordpress", port="http,https"]
filter = admin-wordpress
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log
यदि आप किसी अन्य वेब सर्वर का उपयोग कर रहे हैं, तो आपको फ़िल्टर को उसके लॉग जेनरेट करने के तरीके के अनुसार बदलना होगा और लॉग फ़ाइल (एक्सेस_लॉग) के लिए सही पथ निर्दिष्ट करना होगा। परिवर्तन करने के बाद, आपको सेवा पुनः आरंभ करनी होगी।