Skip to content
VDS · सुरक्षा

पासवर्ड ब्रूट फ़ोर्स के ख़िलाफ़ Fail2ban

Fail2ban कैसे इंस्टॉल और कॉन्फ़िगर करें: SSH और वेब फ़ॉर्म ब्रूट फ़ोर्स ब्लॉक करना, अपने पतों को व्हाइटलिस्ट करना, जाँचना कि यह काम कर रहा है, और ख़ुद को अनब्लॉक करना।

23 अगस्त 2026 को अपडेट किया गया

Fail2ban लॉग पढ़ता है, एक ही पते से हुए फेल लॉगिन प्रयासों की गिनती करता है और फ़ायरवॉल नियम से उसे अस्थायी रूप से ब्लॉक कर देता है। यह की-आधारित लॉगिन की जगह नहीं लेता, लेकिन बैकग्राउंड में चलने वाले ज़्यादातर ब्रूट-फ़ोर्स ट्रैफ़िक को हटा देता है और आपके लॉग पर पड़ने वाला लोड कम कर देता है।

इंस्टॉलेशन और बेसिक सेटअप

apt install -y fail2ban

अपनी खुद की फ़ाइल /etc/fail2ban/jail.local इस्तेमाल करें — jail.conf में किए गए बदलाव अपडेट से ओवरराइट हो जाते हैं:

[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 203.0.113.5
banaction = ufw

[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 24h
systemctl enable --now fail2ban
fail2ban-client status
fail2ban-client status sshd

अपने घर या ऑफ़िस का पता ignoreip में डालें — यह खुद को बैन करने से बचने का आपका बीमा है। अगर आपका पता बदल जाए, तो पैनल में /hosting/vds/m/<id> पर मौजूद कंसोल आपका सेफ़्टी नेट बना रहता है: यह नेटवर्क और नियमों की परवाह किए बिना काम करता है।

banaction आपके फ़ायरवॉल से मेल खाना चाहिए: ufw के लिए ufw, nftables के लिए nftables-multiport।

नतीजा कहाँ देखें

fail2ban-client status sshd
tail -f /var/log/fail2ban.log
journalctl -u fail2ban -n 50

स्टेटस फेल प्रयासों की संख्या और बैन किए गए पतों की सूची दिखाता है। पब्लिक पते पर रोज़ाना सैकड़ों की गिनती सामान्य है, यह टारगेटेड हमले का संकेत नहीं है।

किसी पते को अनबैन करें (अपने पते समेत):

fail2ban-client set sshd unbanip 203.0.113.5

SSH से आगे की सुरक्षा

Fail2ban किसी भी ऐसे लॉग के साथ काम कर सकता है जिसमें फेल प्रयास दिखते हों।

[nginx-http-auth]
enabled = true

[nginx-limit-req]
enabled = true
logpath = /var/log/nginx/error.log

[postfix-sasl]
enabled = true

अपने खुद के एप्लिकेशन के लिए आपको एक फ़िल्टर चाहिए — /etc/fail2ban/filter.d/ में एक फ़ाइल, जिसमें एक रेगुलर एक्सप्रेशन हो और पता <HOST> के रूप में मार्क हो:

[Definition]
failregex = ^.*login failed.*ip=<HOST>.*$
ignoreregex =

असली लॉग पर एक्सप्रेशन टेस्ट करें:

fail2ban-regex /var/log/myapp.log /etc/fail2ban/filter.d/myapp.conf

यह कमांड दिखाती है कि कितनी लाइनें मैच हुईं। शून्य मैच का मतलब है कि नियम गलत है — और चुपचाप फेल होने वाली सुरक्षा बिल्कुल न होने से भी बदतर है।

आम गलतियाँ

गलतीनतीजासमाधान
jail.conf में बदलावअपडेट पर खो जाते हैंjail.local में लिखें
आपका पता ignoreip में नहींएक दिन आप खुद को बैन कर लेंगेइसे जोड़ें, या पैनल कंसोल से कनेक्ट करें
banaction आपके फ़ायरवॉल से मेल नहीं खाताबैन लागू नहीं होतेइसे ufw या nftables के साथ मिलाएँ
फ़िल्टर लॉग फ़ॉर्मैट से मैच नहीं करतासुरक्षा की जगह सन्नाटाfail2ban-regex से जाँचें
सर्विस systemd लॉग नहीं पढ़ पातीखाली स्टेटसbackend = systemd सेट करें

असल में टेस्ट करें: बाहर के किसी पते से जानबूझकर ज़रूरी बार गलत पासवर्ड डालें और पक्का करें कि वह बैन लिस्ट में आ जाता है। बिना कॉन्फ़िगर किया fail2ban सुरक्षा का झूठा भरोसा देता है।

इसे फ़ायरवॉल में ही कनेक्शन रेट लिमिटिंग से पूरा करें — ufw limit 22/tcp।