SSD Nodes Learn
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-07-25

VPS پر UFW فائر وال کی ترتیب

UFW سے VPS کی سیکیورٹی آسان ہے۔ default-deny پالیسی لگائیں، صرف ضروری پورٹس کی اجازت دیں، اور UFW فعال کرنے سے پہلے SSH کی اجازت دینا نہ بھولیں ورنہ لاک آؤٹ ہو جائیں گے۔

UFW کیا ہے اور آپ کو یہ کیوں درکار ہے

UFW کا مطلب Uncomplicated Firewall ہے، اور یہ نام درست ہے۔ یہ Linux کرنل کے موجودہ فائر وال پر ایک آسان فرنٹ اینڈ ہے۔ لہٰذا خام اصول لکھنے کے بجائے آپ مختصر کمانڈز جیسے ufw allow 22/tcp درج کرتے ہیں۔ ایک نئے VPS پر ہر لسننگ سروس بطورِ پیش فرض انٹرنیٹ سے قابلِ رسائی ہوتی ہے۔ فائر وال اسے الٹا کر دیتا ہے: آپ سب کچھ منع کر دیتے ہیں، پھر صرف ان چند پورٹس کی اجازت دیتے ہیں جو آپ واقعی استعمال کرتے ہیں۔ یہ ایک تبدیلی تقریباً چار کمانڈز میں آپ کے زیادہ تر خطرات ختم کر دیتی ہے۔

اسے چھونے سے پہلے، یہ جانیں کہ کیا لسننگ ہے، کیونکہ فائر وال اسی کی بنیاد پر ان سروسز کا فیصلہ کرتا ہے۔ ss -tlnp کے ساتھ لسننگ سروسز کو پڑھنا درست پہلا قدم ہے۔

وہ واحد اصول جو آپ کو خود کو لاک آؤٹ ہونے سے بچاتا ہے

یہ وہ غلطی ہے جو لوگوں کو فائر وال سے ڈراتی ہے۔ آپ default-deny پالیسی کے ساتھ UFW کو فعال کرتے ہیں، لیکن آپ نے کبھی SSH کی اجازت نہیں دی۔ اس لیے فائر وال کے آنے کے فوراً بعد آپ کا اپنا کنکشن کٹ جاتا ہے اور آپ واپس نہیں آ سکتے۔ اس سے بچنے کے لیے ہمیشہ UFW کو فعال کرنے سے پہلے SSH کی اجازت دیں۔ یہی پورا طریقہ ہے، اور ذیل کے مراحل اسے محفوظ ترتیب میں مکمل کرتے ہیں۔

اگر آپ کے ساتھ بھی ایسا ہو جائے، تو آپ پھنسے ہوئے نہیں ہیں: آپ کے فراہم کنندہ کا ویب کنسول، VNC یا serial کے ذریعے، SSH سے نہیں گزرتا۔ اس لیے آپ وہاں لاگ ان ہو کر ufw disable چلا سکتے ہیں یا غائب رول شامل کر سکتے ہیں۔

مرحلہ 1: پہلے سے طے شدہ پالیسیاں مقرر کریں

سب سے پہلے UFW کو ہدایت کریں کہ آنے والی ہر چیز کو مسترد کرے اور جانے والی ہر چیز کی اجازت دے:

sudo ufw default deny incoming
sudo ufw default allow outgoing

deny incoming اہم حصہ ہے۔ اس کا مطلب ہے کہ جس پورٹ کے لیے کوئی واضح اجازت کا اصول نہیں ہے وہ باہر سے بند رہے گا، حتیٰ کہ اگر کوئی سروس اس پر سن بھی رہی ہو۔ allow outgoing آپ کے سرور کو اپڈیٹس وغیرہ کے لیے عام طور پر انٹرنیٹ تک پہنچنے کی اجازت دیتا ہے۔ یہ دو کمانڈز صرف پالیسی تبدیل کرتی ہیں؛ مرحلہ 3 میں UFW کو فعال کرنے تک کچھ بھی نافذ نہیں ہوگا۔

مرحلہ 2: صرف وہ پورٹس اجازت دیں جن کی اصل ضرورت ہے

فعال کرنے سے پہلے، SSH کھولیں تاکہ آپ کا کنکشن برقرار رہے:

sudo ufw allow 22/tcp

UFW SSH کے لیے ریٹ لیمٹ بھی لگا سکتا ہے: sudo ufw limit 22/tcp پورٹ کی اجازت دیتا ہے لیکن اس ایڈریس کو بلاک کر دیتا ہے جو تیس سیکنڈ میں چھ یا اس سے زیادہ کنکشن بناتا ہے۔ یہ بغیر کسی اضافی سافٹ ویئر کے brute-force اسکرپٹس کو ناکام بنا دیتا ہے۔

اگر آپ ویب سرور چلاتے ہیں، تو HTTP اور HTTPS کی بھی اجازت دیں:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

صرف وہ خدمات عوام کے لیے کھولیں جنہیں آپ پیش کرتے ہیں۔ پورٹ 5432 پر Postgres جیسی ڈیٹا بیس کو تقریباً کبھی اجازت کا قاعدہ نہیں ملنا چاہیے۔ اسے 127.0.0.1 سے بائنڈ کریں تاکہ یہ صرف اسی مشین پر قابل رسائی ہو۔ آپ جو ہر پورٹ کھولتے ہیں وہ ایک دروازہ بن جاتا ہے جس کی اب آپ کو حفاظت کرنی ہے، اس لیے فہرست مختصر رکھیں۔

آپ اپنے سرور کے لیے ufw کمانڈز کا مکمل سلسلہ یہاں بنا بھی سکتے ہیں، پھر انہیں ترتیب سے چلائیں:

ToolUFW rule generator

مرحلہ 3: فعال کریں، اور تصدیق کریں کہ یہ چالو ہے

sudo ufw enable

یہ تنبیہ دیتا ہے کہ یہ کمانڈ موجودہ SSH کنکشنز میں رکاوٹ ڈال سکتی ہے۔ چونکہ آپ نے مرحلہ 2 میں 22/tcp کی اجازت دی تھی، آپ کا سیشن برقرار رہتا ہے۔ نتیجے کی تصدیق کریں:

sudo ufw status verbose
Status: active
Default: deny (incoming), allow (outgoing)

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
80/tcp                     ALLOW IN    Anywhere

یہاں دو چیزیں پڑھیں۔ Status: active کا مطلب ہے کہ فائر وال چل رہا ہے۔ اور ہر اصول دو بار ظاہر ہوتا ہے، ایک بار سادہ اور ایک بار (v6) کے ساتھ، جو بتاتا ہے کہ UFW IPv4 کے ساتھ ساتھ IPv6 کو بھی احاطہ کر رہا ہے۔ اگر (v6) سطریں غائب ہیں، تو آپ کا IPv6 پہلو غیر منظم ہے، جو خود ایک الگ مسئلہ ہے جس کا احاطہ IPv6 فائر وال پوسٹ میں کیا گیا ہے۔

قواعد کا بعد میں انتظام

قواعد کو نمبروں کے ساتھ دیکھنے کے لیے تاکہ آپ کوئی ایک ہٹا سکیں:

sudo ufw status numbered
sudo ufw delete 3

کسی پورٹ کو صرف ایک پتے سے اجازت دینے کے لیے، جو کہ کسی ایڈمن سروس کو صرف آپ کے اپنے IP تک محدود کرنے کا ایک بہترین طریقہ ہے:

sudo ufw allow from 10.0.0.24 to any port 5432 proto tcp

فائر وال صرف ایک تہہ ہے۔ یہ کنٹرول کرتا ہے کہ کیا چیز کسی پورٹ تک پہنچ سکتی ہے، لیکن یہ کسی ایسے شخص کو سست نہیں کرتی جو آپ کے کھلے ہوئے پورٹ، جیسے SSH، پر بار بار حملہ کر رہا ہو۔ اس کے لیے، دہرایا جانے والے حملہ آوروں کو بلاک کرنے کے لیے SSH کے سامنے Fail2ban شامل کریں۔ گہرائی میں دفاع کا مطلب ہے کہ ہر تہہ ان چیزوں کا احاطہ کرتی ہے جنہیں دوسری تہہ نہیں کر سکتی۔

فائر وال تب ہی معنی رکھتا ہے جب آپ یہ جان لیں کہ پورٹس کیا ہیں اور سروسز کیسے سنتی ہیں، اور اسے ترتیب دینا نئے VPS پر پہلے 10 منٹ میں ایک قدم ہے۔

FAQ

کیا UFW کو فعال کرنے سے میری SSH سیشن منقطع ہو جائے گی؟

نہیں، بشرطیکہ آپ پہلے SSH کی اجازت دیں۔ sudo ufw allow 22/tcp کو sudo ufw enable سے پہلے چلائیں، اور آپ کا کنکشن برقرار رہے گا کیونکہ فائر وال اب port 22 کی اجازت دیتا ہے۔ خطرہ اس وقت ہوتا ہے جب SSH کی اجازت دینے والے اصول کے بغیر default-deny فائر وال فعال کیا جائے، جو آپ کو کاٹ دیتا ہے۔ اگر ایسا ہو جائے، تو اپنے فراہم کنندہ کے VNC یا serial console کے ذریعے لاگ ان کریں اور ufw disable چلائیں۔

VPS پر مجھے کون سے ports کھولنے چاہئیں؟

صرف وہ جو آپ عوام کے لیے فراہم کرتے ہیں۔ SSH (22/tcp) تاکہ آپ باکس کو منظم کر سکیں، اور HTTP اور HTTPS (80/tcp، 443/tcp) اگر آپ ویب سائٹ چلاتے ہیں۔ باقی سب کچھ مسترد چھوڑ دیں۔ ڈیٹا بیس جیسے اندرونی خدمات کو 127.0.0.1 سے بائنڈ ہونا چاہیے اور انہیں کوئی فائر وال اصول نہیں ملنا چاہیے، تاکہ وہ نیٹ ورک سے کبھی قابل رسائی نہ ہوں۔

کیا UFW IPv6 کو سنبھالتا ہے؟

جدید Ubuntu پر، ہاں: IPV6=yes کو /etc/default/ufw میں سیٹ کیا گیا ہے، لہذا ہر اصول دونوں اسٹیکس پر لاگو ہوتا ہے اور ufw status IPv6 اصولات کو (v6) suffix کے ساتھ دکھاتا ہے۔ جس طرح یہ اب بھی غلط ہو سکتا ہے، اس کا احاطہ the IPv6 firewall trap میں کیا گیا ہے۔

میں UFW کا اصول کیسے ہٹاؤں؟

انڈیکس نمبروں کے ساتھ اصولات کی فہرست کے لیے sudo ufw status numbered چلائیں، پھر sudo ufw delete N چلائیں جہاں N اس اصول کا نمبر ہے جسے آپ ختم کرنا چاہتے ہیں۔ آپ اسپیسیفکیشن کے ذریعے بھی حذف کر سکتے ہیں، مثال کے طور پر sudo ufw delete allow 80/tcp۔

میں کسی ایک IP address سے port کی اجازت کیسے دوں؟

عام allow کے بجائے from اصول استعمال کریں۔ اپنے دفتر کے address کو PostgreSQL تک پہنچنے کی اجازت دینے کے لیے sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp چلائیں۔ default-deny پالیسی کے ساتھ port ہر کسی کے لیے بند رہتا ہے جب تککہ کوئی اصول اسے نہ کھولے، لہذا یہ from اصول اندر جانے کا واحد راستہ ہے: پورا انٹرنیٹ بلاک رہتا ہے اور صرف وہ address جسے آپ نامزد کرتے ہیں، اندر آتا ہے۔ عام allow 5432/tcp بھی شامل نہ کریں، جو port کو ہر کسی کے لیے کھول دے گا۔ یہ ڈیٹا بیس یا ایڈمن پینل کو ظاہر کرنے کا محفوظ ترین طریقہ ہے۔ اس کی تصدیق sudo ufw status verbose سے کریں، جو port کے ساتھ source address دکھاتا ہے۔