UFW فائر وال اور Fail2ban انٹروژن پریونشن کے ساتھ لینکس سرور کو لاک ڈاؤن کرنے کی ایک عملی، مرحلہ وار رہنمائی — غیر استعمال شدہ پورٹس بند کریں، SSH کو ریٹ لمٹ کریں، اور بروٹ فورس حملہ آوروں کو خود کار طریقے سے بلاک کریں۔
آپ کیا بنائیں گے
انٹرنیٹ پر ہر عوامی سامنے والا سرور لائیو ہونے کے چند ہی منٹوں میں جانچ لیا جاتا ہے — خود کار بوٹس کھلے پورٹس کے لیے اسکین کرتے ہیں اور کریڈنشل اندازوں کے ساتھ SSH پر مسلسل حملے کرتے ہیں۔ دو ہلکے پھلکے، آزمودہ ٹولز آپ کے لیے اس کا بیشتر حصہ سنبھال لیتے ہیں:
- UFW (Uncomplicated Firewall) —
iptables/nftablesکے لیے ایک دوستانہ فرنٹ اینڈ جو کنٹرول کرتا ہے کہ کون سے پورٹس کھلے ہیں۔ - Fail2ban — بار بار ناکام لاگ ان کے لیے لاگ فائلوں کی نگرانی کرتا ہے اور خلاف ورزی کرنے والے IP ایڈریسز کو عارضی طور پر بلاک کر دیتا ہے۔
یہ ٹیوٹوریل ایک Debian یا Ubuntu سرور پر دونوں کو کنفیگر کرنے کے عمل سے گزارتا ہے (کمانڈز دیگر ڈسٹری بیوشنز پر تقریباً ایک جیسی ہی ہوتی ہیں)۔ یہ اس بات پر لاگو ہوتا ہے کہ آپ کلاؤڈ سرور، VPS، یا ڈیڈیکیٹڈ مشین چلائیں، اور یہ سعودی عرب میں ہمارے VPS اور کلاؤڈ سرورز کے نالج کلسٹر کا حصہ ہے۔
پیشگی شرائط
- ایک لینکس سرور جس تک آپ SSH کے ذریعے پہنچ سکتے ہوں۔
sudoمراعات کے ساتھ ایک صارف (کبھی بھی کسی فال بیک کے بغیر کھلے کنکشن پرrootکے طور پر ایسا نہ کریں)۔- آپ کا SSH پورٹ (ڈیفالٹ
22ہے؛ اگر آپ نے اسے تبدیل کیا ہے تو پورے عمل میں اپنی اصل ویلیو استعمال کریں)۔
انتباہ: ایک فائر وال آپ کو باہر تالہ بند کر سکتی ہے۔ UFW کو فعال کرنے سے پہلے، یقینی بنائیں کہ SSH کی اجازت دینے والا قاعدہ موجود ہے۔ اگر آپ کوئی کلاؤڈ فراہم کنندہ استعمال کرتے ہیں، تو اس کا ویب کنسول یا ریکوری رسائی کھلا رکھیں تاکہ غلطی کی صورت میں آپ بحالی کر سکیں۔
مرحلہ 1 — UFW انسٹال اور کنفیگر کریں
UFW زیادہ تر Ubuntu امیجز کے ساتھ آتا ہے۔ ضرورت ہو تو اسے انسٹال کریں:
sudo apt update
sudo apt install ufw
معقول ڈیفالٹس ترتیب دیں — تمام آنے والی ٹریفک کو مسترد کریں، تمام باہر جانے والی کی اجازت دیں:
sudo ufw default deny incoming
sudo ufw default allow outgoing
یہ ایک اچھی فائر وال پوزیشن کا بنیادی حصہ ہے: جب تک آپ واضح طور پر اجازت نہ دیں، کوئی چیز آپ کی سروسز تک نہیں پہنچتی۔
مرحلہ 2 — صرف وہی سروسز اجازت دیں جن کی آپ کو واقعی ضرورت ہے
فائر وال آن کرنے سے پہلے، وہ پورٹس کھولیں جو آپ کا سرور استعمال کرتا ہے۔ ہمیشہ پہلے SSH کی اجازت دیں ورنہ آپ کا کنکشن منقطع ہو جائے گا:
sudo ufw allow OpenSSH
UFW /etc/ufw/applications.d سے نامزد ایپلیکیشن پروفائلز پڑھتا ہے۔ sudo ufw app list کے ساتھ دستیاب فہرست دیکھیں۔ اگر آپ نے اپنا SSH پورٹ تبدیل کیا ہے، تو اس کے بجائے اسے واضح طور پر اجازت دیں:
sudo ufw allow 2222/tcp
اگر آپ کوئی سائٹ یا بزنس ای میل اور ویب سروسز چلاتے ہیں تو ویب ٹریفک کھولیں:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
آپ کسی قاعدے کو کسی قابل اعتماد ماخذ تک محدود کر سکتے ہیں — مثال کے طور پر، ڈیٹابیس تک رسائی صرف اپنے ایپلیکیشن سرور سے اجازت دیں:
sudo ufw allow from 10.0.0.5 to any port 3306 proto tcp
مرحلہ 3 — SSH کو ریٹ لمٹ کریں اور فائر وال فعال کریں
UFW کا limit قاعدہ کسی بھی ایسے IP سے کنکشنز کو روکتا ہے جو 30 سیکنڈ میں 6 بار سے زیادہ کنکٹ کرنے کی کوشش کرے — بروٹ فورس ٹولز کے خلاف ایک سستا، مؤثر رفتار روک:
sudo ufw limit OpenSSH
اب فائر وال فعال کریں:
sudo ufw enable
نمبر والی فہرست کے ساتھ اپنے قواعد کی تصدیق کریں:
sudo ufw status numbered
متوقع آؤٹ پٹ کچھ اس طرح ہوتا ہے:
Status: active
To Action From
-- ------ ----
[ 1] OpenSSH LIMIT Anywhere
[ 2] 80/tcp ALLOW Anywhere
[ 3] 443/tcp ALLOW Anywhere
کسی قاعدے کو حذف کرنے کے لیے، اس کے نمبر کا حوالہ دیں: sudo ufw delete 2۔
مرحلہ 4 — Fail2ban انسٹال کریں
UFW پورٹس بند کرتا ہے، لیکن وہ پورٹس جنہیں آپ کو کھلا رکھنا پڑتا ہے (جیسے SSH) اب بھی اندازہ لگانے کے لیے بے نقاب ہوتے ہیں۔ Fail2ban لاگز کی نگرانی کرتا ہے اور بار بار خلاف ورزی کرنے والوں کو بلاک کر دیتا ہے:
sudo apt install fail2ban
جدید سسٹمز پر Fail2ban اپنا جرنل systemd کے ذریعے پڑھتا ہے، اس لیے یہ ڈبے سے باہر ہی کام کرتا ہے۔ تصدیق کریں کہ سروس چل رہی ہے:
sudo systemctl status fail2ban
مرحلہ 5 — jail.local فائل کے ساتھ Fail2ban کنفیگر کریں
کبھی بھی jail.conf کو براہ راست ایڈٹ نہ کریں — اپ گریڈ پر یہ اوور رائٹ ہو جاتی ہے۔ اس کے بجائے ایک مقامی اوور رائیڈ بنائیں:
sudo nano /etc/fail2ban/jail.local
درج ذیل شامل کریں:
[DEFAULT]
# Don't ban your own trusted networks. Add your office/home IP.
ignoreip = 127.0.0.1/8 ::1
# How long a ban lasts (10 minutes).
bantime = 10m
# Time window for counting failures.
findtime = 10m
# Failures allowed before a ban.
maxretry = 5
# Tell Fail2ban to act through UFW.
banaction = ufw
[sshd]
enabled = true
[sshd] جیل /etc/fail2ban/filter.d/sshd.conf پر موجود بلٹ ان sshd فلٹر استعمال کرتی ہے۔ banaction = ufw ترتیب دینے سے Fail2ban خام iptables کو چھیڑنے کے بجائے آپ کی موجودہ فائر وال کے ذریعے ڈینائی قواعد داخل کرتا ہے۔
لاگو کرنے کے لیے ری اسٹارٹ کریں:
sudo systemctl restart fail2ban
مرحلہ 6 — تصدیق اور نگرانی کریں
مجموعی حیثیت اور خاص طور پر SSH جیل کی جانچ کریں:
sudo fail2ban-client status
sudo fail2ban-client status sshd
جیل کی حیثیت موجودہ ناکام اور بلاک شدہ IPs دکھاتی ہے:
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 23
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 4
`- Banned IP list: 203.0.113.42
کسی ایڈریس کو دستی طور پر ان بین کرنے کے لیے:
sudo fail2ban-client set sshd unbanip 203.0.113.42
تجویز کردہ بنیادی خطوط
| ترتیب | ویلیو | کیوں |
|---|---|---|
| UFW ڈیفالٹ آنے والی | deny |
بطور ڈیفالٹ بند |
| SSH قاعدہ | limit |
بروٹ فورس کو سست کرتا ہے |
bantime |
10m–1h |
بار بار خلاف ورزی کرنے والوں کو سزا دیتا ہے |
maxretry |
3–5 |
سخت لیکن ٹائپنگ کی غلطیوں کے لیے رواداری |
ignoreip |
آپ کے ایڈمن IPs | خود کو باہر تالہ بند ہونے سے بچائیں |
مزید آگے بڑھنا
پروڈکشن سرورز کے لیے، جس بھی سروس کو آپ بے نقاب کرتے ہیں اس کے لیے جیلز بھی فعال کریں (مثال کے طور پر nginx-http-auth یا آپ کا میل اسٹیک)، پاس ورڈز کے بجائے SSH کیز استعمال کریں، اور ایک طویل تر یا بڑھنے والے bantime پر غور کریں۔ UFW اور Fail2ban ایک مضبوط بنیادی خط ہیں، نہ کہ ایک مکمل سیکیورٹی پروگرام — پیکجز کو پیچ شدہ رکھیں اور کلاؤڈ بیک اپ کے ساتھ باقاعدگی سے بیک اپ لیں۔
اپنے ورک لوڈ کو سلطنت کے اندر ہوسٹ کرنا کارکردگی کے لیے اور PDPL، NCA، اور SDAIA ڈیٹا ریزیڈنسی تقاضوں کے لیے اہمیت رکھتا ہے۔ Skyline Cloud سعودی عرب کے اندر کلاؤڈ سرورز، VPS، اور ڈیڈیکیٹڈ ہارڈویئر چلاتا ہے، مقامی عربی سپورٹ اور شفاف قیمتوں کے ساتھ۔
ایک مضبوط سرور تعینات کرنے کے لیے تیار ہیں؟ اپنا Skyline Cloud اکاؤنٹ بنائیں اور منٹوں میں ایک VPS لانچ کریں۔
Comments
0 total · 0 threads