یہ ماڈیول کیا کرتا ہے #
fail2ban وہ نگہبان ہے جو آپ کے سرور کے ریکارڈز پر نظر رکھتا ہے اور جب بدنیتی پر مبنی رسائی کی کوششیں پکڑتا ہے (مثلاً SSH پر پاس ورڈ کی بہت سی ناکامیاں)، تو خودکار طور پر قصوروار IP پر ایک مدت کے لیے پابندی لگا دیتا ہے۔ زیرِ نگرانی ہر سروس کو ایک jail میں منظم کیا جاتا ہے (مثلاً sshd)۔
fail2ban ماڈیول آپ کو ان پابندیوں کا کنٹرول رن ٹائم میں دیتا ہے، بغیر اس کے کہ fail2ban-client کا نحو یاد رکھنا پڑے: jails کی حالت دیکھیں، فہرست بنائیں کہ کس پر پابندی ہے، جانچیں کہ کوئی مخصوص IP بلاک ہے یا نہیں، ہاتھ سے پابندی لگائیں یا ہٹائیں، ہنگامی صورت میں سب کچھ ایک ساتھ کھول دیں اور تبدیلی کے بعد کنفیگریشن دوبارہ لوڈ کریں۔
یہ ماڈیول ایک پہلے سے نصب اور چل رہے fail2ban پر عمل کرتا ہے۔ تمام ذیلی کمانڈز سروس کی حالت دیکھتی یا بدلتی ہیں، اس لیے انہیں root کے اختیارات درکار ہیں (sudo استعمال کریں)۔ اگر آپ اپنی ہی IP کی وجہ سے باہر رہ گئے ہیں، تو سیدھے ہنگامی بلاک کھولنے پر جائیں۔
عام کام #
جو کرنا چاہتے ہیں اسے منتخب کریں۔ ہر ترکیب میں کمانڈ پہلے سے لکھی ہوئی ہے — بس IP یا jail کو اپنے مطابق بدلیں اور کاپی کریں دبائیں۔
1
حالت اور jails دیکھیں
ایک نظر میں دیکھیں کہ fail2ban فعال ہے یا نہیں اور کتنوں پر پابندی ہے۔
اپنے سرور سے ubuntu صارف کے ساتھ SSH سے جُڑیں اور عمومی حالت طلب کریں:
$ sudo imaxe fail2ban statusکیا آپ اسے مشین سے پڑھنے کے قابل شکل میں چاہتے ہیں، کسی اسکرپٹ یا پینل کے لیے؟ --json شامل کریں:
$ sudo imaxe fail2ban status --jsonsshd) اور ہر ایک میں پابندی والی IPs کی تعداد۔2
دیکھیں کن IPs پر پابندی ہے
فعال پابندیوں کی فہرست بنائیں، تمام jails کی یا کسی مخصوص کی۔
تمام پابندی والی IPs، تمام jails کی ایک ساتھ:
$ sudo imaxe fail2ban bannedکیا آپ کو صرف ایک jail میں دلچسپی ہے؟ اسے آرگیومنٹ کے طور پر دیں:
$ sudo imaxe fail2ban banned sshd3
جانچیں کہ کوئی IP پابندی میں ہے یا نہیں
معلوم کریں کہ کوئی مخصوص پتہ کن jails میں بلاک ہے۔
براہِ راست اُس IP کے بارے میں پوچھیں؛ یہ بتائے گا کہ وہ کن jails میں پابندی میں نظر آتی ہے:
$ sudo imaxe fail2ban check 203.0.113.74
کسی IP پر پابندی لگائیں یا ہٹائیں
کسی بدسلوک پتے کو ہاتھ سے بلاک کریں یا کسی جائز صارف کو رہا کریں۔
کسی مخصوص jail میں کسی IP پر پابندی لگائیں (اگر صرف ایک ہی jail ہو تو خود اخذ ہو جاتی ہے):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdکیا آپ نے کسی جائز پر پابندی لگا دی؟ اسے تمام jails سے ایک ساتھ ہٹا دیں:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check سے تصدیق کریں۔5
سب کچھ کھول دیں (ہنگامی)
آپ باہر رہ گئے ہیں: تمام jails کی تمام IPs کو رہا کریں۔
اگر آپ کی اپنی IP پھنس گئی ہے اور آپ کو فوراً رسائی واپس چاہیے، تو سب کی پابندی ہٹا دیں۔ تصدیق کو نظرانداز کرنے کے لیے --yes شامل کریں:
$ sudo imaxe fail2ban unban-all --yesjails کی کنفیگریشن میں تبدیلی کے بعد، اسے لاگو کرنے کے لیے دوبارہ لوڈ کریں:
$ sudo imaxe fail2ban reloadunban-all سے احتیاطیہ پابندی کا ایک تباہ کن عمل ہے: یہ تمام IPs کو بلاک سے آزاد کر دیتا ہے، بشمول بدنیت پر مبنی۔ اسے صرف ہنگامی صورت میں رسائی بحال کرنے کے لیے استعمال کریں اور بعد میں imaxe fail2ban status سے حالت جانچیں۔
نحو #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]تمام ذیلی کمانڈز کو root کے اختیارات درکار ہیں (sudo استعمال کریں) کیونکہ وہ fail2ban-client کے ذریعے fail2ban کی حالت دیکھتی یا بدلتی ہیں۔ status، banned یا check میں --json شامل کریں تاکہ مشین سے پڑھنے کے قابل، اسکرپٹنگ کے لیے موزوں آؤٹ پٹ حاصل ہو۔
ذیلی کمانڈز #
| ذیلی کمانڈ | یہ کیا کرتا ہے | متعلقہ فلیگز |
|---|---|---|
| status | fail2ban کی حالت: فعال، jails اور فی jail پابندی والی IPs کی تعداد۔ | --json |
| banned | پابندی والی IPs کی فہرست (تمام jails یا کوئی مخصوص)۔ | --json |
| check | بتاتا ہے کہ کوئی IP کن jails میں پابند ہے۔ | --json |
| ban | کسی jail میں کسی IP پر ہاتھ سے پابندی لگاتا ہے۔ | --jail |
| unban | کسی IP کی تمام jails سے پابندی ہٹاتا ہے۔ | — |
| unban-all | ہنگامی: تمام jails کی تمام IPs کی پابندی ہٹاتا ہے۔ | --yes |
| reload | fail2ban کی کنفیگریشن دوبارہ لوڈ کرتا ہے (jail.local کی توثیق کرتا ہے)۔ | — |
آرگیومنٹس اور フلیگز #
| آرگیومنٹ / فلیگ | قسم | طے شدہ | تفصیل |
|---|---|---|---|
| <ip> req. | string | — | وہ IP جس پر عمل کرنا ہے۔ check، ban اور unban میں لازمی۔ |
| <jail> | string | تمام | banned میں، فہرست بنانے کے لیے مخصوص jail۔ آرگیومنٹ کے بغیر، تمام jails کی فہرست بنتی ہے۔ |
| --jail | string | auto | ban میں، پابندی کی منزل jail۔ اگر صرف ایک ہی jail ہو تو خود اخذ ہو جاتی ہے۔ |
| --yes | bool | false | unban-all میں، پوچھے بغیر تصدیق کرتا ہے (پابندی کا تباہ کن عمل)۔ |
| --json | bool | false | status/banned/check میں، نتیجہ JSON کے طور پر stdout پر دیتا ہے۔ |
فائلیں اور راستے #
| راستہ | مواد |
|---|---|
| /etc/fail2ban/jail.local | fail2ban کی مقامی کنفیگریشن: فعال jails، پابندی کے اوقات اور حدیں۔ وہی جسے reload توثیق کرتا ہے۔ |
| /var/run/fail2ban/fail2ban.sock | کنٹرول ساکٹ جس کے ذریعے fail2ban-client سروس سے بات کرتا ہے۔ |
| /var/log/fail2ban.log | خود fail2ban کا ریکارڈ: پابندیاں، پابندی ہٹانا اور دوبارہ لوڈ۔ |
ایگزٹ کوڈز (اور لاگز) #
ہر عمل ایک کوڈ لوٹاتا ہے جسے آپ echo $? سے جانچ سکتے ہیں — اسکرپٹس میں سلسلہ بنانے کے لیے مفید:
ڈیبگ کرتے وقت لاگ کو براہِ راست دیکھیں:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logمسائل کا حل #
| علامت | ممکنہ وجہ | حل |
|---|---|---|
| SERVICE آتا ہے (کوڈ 3) | fail2ban رکا ہوا ہے یا ساکٹ جواب نہیں دیتا۔ | سروس کو systemctl start fail2ban سے چلائیں اور دوبارہ کوشش کریں۔ |
| JAIL آتا ہے (کوڈ 4) | --jail کی jail موجود نہیں یا کئی ہیں اور اخذ نہیں ہو سکتی۔ | imaxe fail2ban status سے jails دیکھیں اور --jail میں درست بتائیں۔ |
| RELOAD آتا ہے (کوڈ 5) | jail.local میں نحو کی خرابی ہے۔ | /etc/fail2ban/jail.local کو درست کریں اور reload دوبارہ چلائیں۔ |
| میں SSH سے باہر رہ گیا | آپ کی اپنی IP نے ناکامیاں جمع کیں اور sshd میں پابند ہو گئی۔ | کسی اور راستے سے، اسے unban سے آزاد کریں یا سب کو unban-all --yes سے رہا کریں۔ |
کیا Fail2ban ماڈیول کے ساتھ اٹک گئے ہیں؟
«imaxe <module> status --json» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔