Skip to content
VDS · سیکیورٹی

پاس ورڈ بروٹ فورس کے خلاف 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۔