پاس ورڈ بروٹ فورس کے خلاف Fail2ban
Fail2ban کیسے انسٹال اور کنفیگر کریں: SSH اور ویب فارم بروٹ فورس بلاک کرنا، اپنے پتوں کو وائٹ لسٹ کرنا، کام کرنے کی جانچ، اور خود کو ان بلاک کرنا۔
اپ ڈیٹ 23 اگست، 2026
Fail2ban لاگز پڑھتا ہے، ایک ہی ایڈریس سے ناکام لاگ اِن کوششوں کو گنتا ہے اور فائر وال رول کے ذریعے اسے عارضی طور پر بلاک کر دیتا ہے۔ یہ key-based لاگ اِن کا متبادل نہیں، لیکن پس منظر میں ہونے والی زیادہ تر brute-force ٹریفک ختم کر دیتا ہے اور آپ کے لاگز پر بوجھ کم کرتا ہے۔
انسٹالیشن اور بنیادی سیٹ اپ
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۔