Ubuntu پر firewalld کے ساتھ فائر وال ترتیب دینے کی ایک عملی اور درست رہنمائی — اسے انسٹال کرنا، زونز کے ساتھ کام کرنا، سروسز اور پورٹس کھولنا، رِچ رولز لکھنا، اور پروڈکشن VPS پر تبدیلیاں محفوظ طریقے سے لاگو کرنا۔
ضروری پیشگی شرائط
- ایک Ubuntu 22.04/24.04 سرور جس میں ایک non-root صارف ہو جسے
sudoکے اختیارات حاصل ہوں۔ - SSH رسائی۔ فائر وال ترتیب دیتے وقت اپنا موجودہ SSH سیشن کھلا رکھیں، تاکہ اگر آپ خود کو باہر بند کر بیٹھیں تو آپ بحالی کر سکیں۔
مرحلہ 1 — firewalld انسٹال اور شروع کریں
Ubuntu بطورِ ڈیفالٹ firewalld کے بجائے ufw کے ساتھ آتا ہے۔ اگر ufw فعال ہے تو پہلے اسے غیر فعال کر دیں تاکہ دو مینیجرز ایک ہی بیک اینڈ پر آپس میں نہ ٹکرائیں:
sudo systemctl disable --now ufw
پھر firewalld انسٹال اور فعال کریں:
sudo apt update
sudo apt install firewalld -y
sudo systemctl enable --now firewalld
تصدیق کریں کہ یہ چل رہا ہے:
sudo firewall-cmd --state
آپ کو running نظر آنا چاہیے۔
مرحلہ 2 — زونز کو سمجھیں
firewalld رولز کو زونز میں گروپ کرتا ہے، جن میں سے ہر ایک کسی نیٹ ورک کنکشن کے لیے اعتماد کی سطح کی نمائندگی کرتا ہے۔ آپ کا فعال زون طے کرتا ہے کہ کون سی ٹریفک کی اجازت ہے۔ سب سے عام زونز یہ ہیں:
| زون | عام استعمال |
|---|---|
drop |
تمام آنے والی ٹریفک کو بغیر کسی جواب کے ڈراپ کر دیتا ہے (سب سے زیادہ پابند) |
block |
آنے والی ٹریفک کو ICMP پیغام کے ساتھ مسترد کرتا ہے |
public |
غیر بھروسہ مند نیٹ ورکس کے لیے ڈیفالٹ؛ صرف منتخب کردہ سروسز کی اجازت |
internal |
بھروسہ مند اندرونی نیٹ ورکس |
trusted |
تمام ٹریفک کی اجازت دیتا ہے (سب سے کم پابند) |
ڈیفالٹ اور فعال زونز چیک کریں:
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones
ایک نئے سرور پر ڈیفالٹ عموماً public ہوتا ہے، جو عوام کا سامنا کرنے والے VPS کے لیے درست انتخاب ہے۔ اس میں فی الحال جس کی بھی اجازت ہے، وہ سب دیکھیں:
sudo firewall-cmd --zone=public --list-all
مرحلہ 3 — Runtime بمقابلہ permanent: کلیدی تصور
ہر تبدیلی بطورِ ڈیفالٹ runtime کنفیگریشن پر لاگو ہوتی ہے، جو ری لوڈ یا ری بوٹ پر ضائع ہو جاتی ہے۔ کسی تبدیلی کو برقرار رکھنے کے لیے --permanent شامل کریں۔ permanent تبدیلیاں اُس وقت تک نافذ نہیں ہوتیں جب تک آپ ری لوڈ نہ کریں۔
محفوظ ورک فلو یہ ہے: پہلے runtime میں آزمائیں، پھر برقرار رکھیں۔ کسی کام کرنے والے runtime سیٹ اپ کو برقرار رکھنے کا سب سے صاف طریقہ یہ ہے:
sudo firewall-cmd --runtime-to-permanent
یا ہر رول میں --permanent شامل کریں اور پھر ری لوڈ کریں:
sudo firewall-cmd --reload
--reload permanent رولز کو قائم شدہ کنکشنز کو ختم کیے بغیر دوبارہ پڑھتا ہے — آپ کا SSH سیشن زندہ رہتا ہے۔
مرحلہ 4 — کسی بھی چیز سے پہلے SSH کی اجازت دیں
فائر وال کو سخت کرنے سے پہلے یقینی بنائیں کہ SSH کی اجازت ہے، ورنہ آپ کا اگلا ری کنیکٹ ناکام ہو جائے گا۔ ssh سروس ڈیفالٹ پورٹ 22 کا احاطہ کرتی ہے:
sudo firewall-cmd --permanent --zone=public --add-service=ssh
اگر آپ SSH کو کسی کسٹم پورٹ پر چلاتے ہیں (مثلاً 2222)، تو اس کے بجائے وہ پورٹ کھولیں:
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
اسے لاگو کریں:
sudo firewall-cmd --reload
مرحلہ 5 — اپنی ایپلیکیشنز کے لیے سروسز کھولیں
firewalld سینکڑوں پہلے سے طے شدہ سروسز کو نام سے جانتا ہے۔ انہیں firewall-cmd --get-services کے ساتھ فہرست کریں۔ ایک عام ویب سرور کے لیے HTTP اور HTTPS کی اجازت دیں:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
اگر آپ اسی مشین پر کاروباری ای میل ہوسٹ کرتے ہیں، تو متعلقہ submission اور IMAP پورٹس کھولیں:
sudo firewall-cmd --permanent --zone=public --add-service=smtp-submission
sudo firewall-cmd --permanent --zone=public --add-service=imaps
sudo firewall-cmd --reload
کسی ایسے بے ترتیب پورٹ کو کھولنے کے لیے جو کسی نامزد سروس کے تحت نہ آتا ہو، پروٹوکول کے ساتھ --add-port استعمال کریں:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
مرحلہ 6 — رولز ہٹانا
کسی سروس یا پورٹ کو بند کرنے کے لیے add کو remove سے بدلیں اور ری لوڈ کریں:
sudo firewall-cmd --permanent --zone=public --remove-service=http
sudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp
sudo firewall-cmd --reload
مرحلہ 7 — باریک بینی سے کنٹرول کے لیے رِچ رولز
رِچ رولز آپ کو ایسی شرائط بیان کرنے دیتے ہیں جو سادہ سروسز نہیں کر سکتیں — مثلاً، رسائی کو ماخذ IP کے ذریعے محدود کرنا۔ SSH کی اجازت صرف اپنے دفتر کے نیٹ ورک سے دینے اور باقی ہر جگہ اسے مسترد کرنے کے لیے، پہلے وسیع ssh سروس کو ہٹائیں، پھر ایک رِچ رول شامل کریں:
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="203.0.113.10/32" service name="ssh" accept'
sudo firewall-cmd --reload
نئے رول کو پہلے runtime میں آزمائیں (--permanent کے بغیر) اور اسے برقرار رکھنے سے پہلے تصدیق کریں کہ آپ اب بھی اپنے مجاز IP سے کنکٹ کر سکتے ہیں۔ آپ brute-force کوششوں کو سست کرنے کے لیے کسی سروس کو rate-limit بھی کر سکتے ہیں:
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule service name="ssh" limit value="5/m" accept'
مرحلہ 8 — تصدیق اور آڈٹ
یہ تصدیق کرنے کے لیے کہ سب کچھ مطلوبہ حالت کے مطابق ہے، اپنے زون کی حتمی حالت کی فہرست بنائیں:
sudo firewall-cmd --zone=public --list-all
نحوی غلطیوں کے لیے permanent کنفیگریشن چیک کریں:
sudo firewall-cmd --check-config
لاک آؤٹ سے بحالی
اگر کوئی تبدیلی آپ کی رسائی کاٹ دے، تو runtime تبدیلی ری بوٹ پر ختم ہو جاتی ہے — لہٰذا آپ کے فراہم کنندہ کے کنسول سے ایک hard reboot پچھلی permanent حالت کو بحال کر دیتا ہے۔ اس سے بھی بہتر یہ ہے کہ کسی ایسے کنسول سیشن کے ذریعے کام کریں جو آپ کا فراہم کنندہ آپ کو دیتا ہے، یا خطرناک تبدیلیوں سے پہلے ایک ٹائمڈ rollback ترتیب دیں۔ یہی وہ جگہ ہے جہاں ایک مینیجڈ کلاؤڈ پلیٹ فارم پر چلنا مدد دیتا ہے: آپ کے پاس out-of-band کنسول رسائی اور سنیپ شاٹس رہتے ہیں تاکہ کوئی غلط ترتیب دیا گیا رول کبھی کسی مردہ سرور میں نہ بدلے۔
نتیجہ
اب آپ کے پاس ایک کام کرنے والا firewalld سیٹ اپ موجود ہے: اعتماد کی سطحوں کے لیے زونز، آپ کی ایپس کے لیے نامزد سروسز اور پورٹس، ماخذ پر مبنی پابندیوں کے لیے رِچ رولز، اور ایک محفوظ runtime-to-permanent ورک فلو۔ رول سیٹ کو کم سے کم رکھیں — صرف وہی کھولیں جس کی آپ کو ضرورت ہے — اور جب بھی آپ کوئی نئی سروس شامل کریں تو اس کا دوبارہ آڈٹ کریں۔
کیا آپ یہ سختی ایسے انفراسٹرکچر پر چاہتے ہیں جو مملکت کے اندر رہے، PDPL/NCA کے مطابق ڈیٹا ریزیڈنسی اور مقامی عربی سپورٹ کے ساتھ؟ Skyline Cloud کے ساتھ ایک VPS یا کلاؤڈ سرور شروع کریں اور ان مراحل کو منٹوں میں لاگو کریں۔ اپنا اکاؤنٹ بنائیں اور شروع کریں۔
Comments
0 total · 0 threads