5.4 فائر وال
پیکٹ فلٹر اور اس سے جڑی ہر چیز: رولز، ایڈریس ٹرانسلیشن، وہ نام جن سے آپ رولز لکھتے ہیں، ٹریفک شیپنگ، اور وہ صفحات جو دکھاتے ہیں کہ فلٹر درحقیقت کیا کر رہا ہے۔
Rules — /firewall-rules

رولز کا مجموعہ، اسی ترتیب میں جس میں فائر وال اسے جانچتا ہے۔ رولز اسی طرح گروپ کیے جاتے ہیں جیسے pf انہیں لاگو کرتا ہے: پہلے floating رولز (کئی انٹرفیسز پر، یا کسی پر بھی نہیں)، پھر کسی انٹرفیس گروپ کے رولز، پھر کسی ایک انٹرفیس کے رولز؛ ہر گروپ کے اندر ترتیب نمبر فیصلہ کرتا ہے، اور جو رول سب سے پہلے مطابقت رکھے، وہی فیصلہ کرتا ہے — مطابقت کے بعد نیچے کی کسی چیز کو نہیں جانچا جاتا۔ اوپر کا سلیکٹر فہرست کو ایک انٹرفیس تک محدود کرتا ہے (ان گروپ رولز سمیت جو اس پر لاگو ہوتے ہیں)، یا floating رولز تک، یا سب کچھ دکھاتا ہے۔

| فیلڈ | مفہوم |
|---|---|
| Enabled | بند ہو تو رول فہرست میں رہتا ہے مگر نافذ نہیں ہوتا؛ اسے رولز کے مجموعے میں کمنٹ کے طور پر لکھا جاتا ہے۔ یہ جانچنے کا محفوظ طریقہ کہ کوئی رول کسی مسئلے کی وجہ ہے یا نہیں۔ |
| Sequence | ایک ہی قسم کے رولز میں جانچ کی ترتیب، کم نمبر پہلے۔ تیر والے بٹن سے رول منتقل کرنے پر اس کا نمبر نئے سرے سے دیا جاتا ہے۔ |
| Action | Pass ٹریفک کو گزرنے دیتا ہے، Block اسے خاموشی سے ڈراپ کر دیتا ہے، Reject اسے ڈراپ کر کے بھیجنے والے کو بتا دیتا ہے۔ اپنے نیٹ ورک کے اندر Reject (صارفین کو ناکامی جلد معلوم ہو جاتی ہے)؛ انٹرنیٹ کی طرف block (اسکینر کو کچھ پتا نہیں چلتا)۔ |
| Interface | رول کہاں لاگو ہوتا ہے؛ انٹرفیس گروپ بھی منتخب کیا جا سکتا ہے۔ کئی انٹرفیس چننے سے رول floating بن جاتا ہے۔ رولز اس انٹرفیس پر جانچے جاتے ہیں جس سے ٹریفک داخل ہوتا ہے۔ |
| Direction | عام طور پر in — اس انٹرفیس پر آنے والا ٹریفک۔ |
| Version | IPv4، IPv6، یا دونوں۔ ڈوئل اسٹیک نیٹ ورک پر صرف IPv4 کا احاطہ کرنے والا رولز کا مجموعہ ایک عام اور خاموش غلطی ہے۔ |
| Protocol | any، TCP، UDP، TCP/UDP، ICMP اور ہر وہ دوسرا پروٹوکول جسے pf جانتا ہے، ایک فہرست سے۔ |
| Source / Source Port | کس نے بھیجا۔ any، کسی انٹرفیس کا نیٹ ورک یا ایڈریس، کوئی ایلیاس، یا CIDR شکل میں کوئی ہوسٹ یا نیٹ ورک۔ |
| Destination / Destination Port | کہاں جا رہا ہے، انہی شکلوں میں۔ |
| Gateway | مطابقت رکھنے والے ٹریفک کو روٹنگ ٹیبل کے بجائے کسی مخصوص گیٹ وے یا گیٹ وے گروپ سے باہر بھیجنا — یہ پالیسی پر مبنی روٹنگ ہے، اور اسی طرح آپ کسی ایک شعبے کو دوسرے اپ لنک سے گزارتے ہیں۔ |
مزید فیلڈز (Show advanced کے تحت) میں لاگنگ، شیڈولنگ، زمرے، اسٹیٹ ہینڈلنگ، ریٹ کی حدیں، ٹریفک شیپنگ اور پیکٹ ٹیگنگ شامل ہیں۔
ہر رول محفوظ کرتے وقت اس معیار پر جانچا جاتا ہے جو pf خود قبول کرتا ہے: نامعلوم پروٹوکول، غیر ICMP رول پر ICMP ٹائپ، غلط ایڈریس فیملی کا گیٹ وے، ایسے پروٹوکول پر پورٹ جس میں پورٹ ہوتا ہی نہیں، نفی شدہ فہرست۔ انکار اسی فیلڈ کے نیچے ظاہر ہوتا ہے۔ یہ اس لیے اہم ہے کہ pf رولز کا مجموعہ یکجا لوڈ کرتا ہے: ایک ایسا رول جسے وہ پارس نہ کر سکے، ہر تبدیلی کو نافذ ہونے سے روک دے گا۔
کلاسک رولز۔ کسی پرانے ورژن کی، یا کسی دوسرے فائر وال سے درآمد کی گئی کنفیگریشن میں رولز پرانی شکل میں ہو سکتے ہیں۔ وہ اب بھی نافذ ہوتے ہیں اور صرف پڑھنے کے لیے دکھائے جاتے ہیں، classic کے نشان کے ساتھ، اور ایک بینر انہیں منتقل کرنے کی پیشکش کرتا ہے۔ منتقلی ہر رول کو انہی جانچوں کے بعد اس رولز کے مجموعے میں تبدیل کر دیتی ہے؛ جس رول کو جانچیں رد کر دیں وہ اپنی وجہ کے ساتھ اپنی جگہ رہتا ہے، اس لیے آدھے راستے میں کچھ ضائع نہیں ہوتا۔
رولز کے مجموعے کو ویسے پڑھیں جیسے فائر وال پڑھتا ہے۔ ٹریفک وہیں فلٹر ہوتا ہے جہاں وہ داخل ہوتا ہے: جو رول LAN کو انٹرنیٹ تک پہنچنے دیتا ہے اس کی جگہ LAN انٹرفیس ہے، WAN نہیں۔ جواب خود بخود واپس آتا ہے، کیونکہ فلٹر اسٹیٹ برقرار رکھتا ہے۔
فیکٹری کے طے شدہ رولز LAN کو باہر جانے دیتے ہیں اور WAN سے آنے والے غیر مطلوب ٹریفک کو بلاک کرتے ہیں۔ یہ ایک کارآمد ڈیفالٹ ہے؛ اسے بدلنے کے بجائے اس میں اضافہ کریں، اور اینٹی لاک آؤٹ رول اس وقت تک رکھیں جب تک آپ کو یقین نہ ہو جائے کہ اندر آنے کا آپ کے پاس کوئی اور راستہ ہے۔
Aliases — /m/firewall/alias

ان چیزوں کے نام جن کا رولز حوالہ دیتے ہیں: ہوسٹس کا ایک گروپ، نیٹ ورکس کا ایک سیٹ، پورٹس کی فہرست، خود کو تازہ کرنے والا URL ٹیبل، کوئی ملک، یا MAC فہرست۔ تین ایڈریسز کے بجائے WEB_SERVERS کے حوالے سے رولز لکھیں، اور جس دن چوتھا سرور آئے گا آپ ایلیاس بدلیں گے، چار رولز نہیں۔

ایلیاسز حقیقی فائر وال ٹیبلز میں تبدیل ہوتے ہیں؛ ان کے مندرجات Firewall → Diagnostics → Aliases پر براہ راست دیکھے جا سکتے ہیں۔
Categories — /m/firewall/category

رولز کے لیے رنگوں سے پہچانے جانے والے لیبل۔ درجن بھر رولز کے مجموعے میں یہ محض سجاوٹ ہیں؛ سو رولز پر یہی وہ ذریعہ ہیں جس سے آپ ایک پروجیکٹ سے تعلق رکھنے والے پانچ رولز ڈھونڈتے ہیں۔

Groups — /m/firewall/ifgroups

انٹرفیس گروپ ایک رول کو بیک وقت کئی انٹرفیسز پر لاگو ہونے دیتا ہے — مہمانوں کی پالیسی ایک بار لکھیں اور اسے مہمانوں کے ہر VLAN سے منسلک کر دیں۔ گروپ اپنے اراکین پر کرنل انٹرفیس گروپ بن جاتا ہے (ifconfig میں groups: کے طور پر نظر آتا ہے)، رول کے ڈائیلاگز کی انٹرفیس فہرست میں ظاہر ہوتا ہے، اور اس کے رولز Rules صفحے پر اپنا الگ حصہ بناتے ہیں، جنہیں floating رولز کے بعد اور فی انٹرفیس رولز سے پہلے جانچا جاتا ہے۔ گروپ کا نام زیادہ سے زیادہ 15 حروف، ہندسوں یا انڈر اسکور پر مشتمل ہوتا ہے اور ہندسے پر ختم نہیں ہونا چاہیے۔
NAT
ایڈریس ٹرانسلیشن، ایک صفحے میں چھپانے کے بجائے چار اقسام میں تقسیم۔
Source NAT — /nat/source_nat

باہر جانے والی ٹرانسلیشن: باہر جاتے ہوئے کون سے اندرونی ایڈریس کس بیرونی ایڈریس میں دوبارہ لکھے جاتے ہیں۔ عام سیٹ اپ کے لیے اپلائنس یہ رولز خود بخود بناتا ہے، اور جب "عام" کافی نہ ہو تو یہی وہ صفحہ ہے جہاں آپ کنٹرول سنبھالتے ہیں — کسی ایک شعبے کے لیے دوسرا پبلک ایڈریس، یا کسی VPN ٹنل کے لیے مخصوص سورس ایڈریس۔
Destination NAT — /nat/d_nat

پورٹ فارورڈنگ: کسی مخصوص ایڈریس اور پورٹ پر اپلائنس تک پہنچنے والا ٹریفک اندر کے کسی ہوسٹ کی طرف موڑ دیا جاتا ہے۔ یہی طریقہ ہے جس سے آپ کسی سرور کو باہر کے لیے دستیاب کرتے ہیں۔

وہ انٹرفیس بتائیں جس پر ٹریفک آتا ہے، پروٹوکول، باہر سے نظر آنے والا منزل کا ایڈریس اور پورٹ، اور اندرونی ہدف اور پورٹ۔ متعلقہ فائر وال رول اس کے ساتھ ہی بنایا جا سکتا ہے — ٹریفک کی اجازت دینے والے رول کے بغیر فارورڈ کچھ نہیں کرتا، اور پورٹ فارورڈ کے "کام نہ کرنے" کی یہی سب سے عام وجہ ہے۔
کسی سروس کو پورے انٹرنیٹ کے لیے دستیاب کرنا ایک فیصلہ ہے، محض ایک قدم نہیں۔ جہاں ممکن ہو سورس کو محدود کریں، اور استعمال کے منظرنامے → سرور کو انٹرنیٹ پر دستیاب کرنا پڑھیں۔
One-to-One NAT — /nat/one_to_one

ایک پورے بیرونی ایڈریس کو ایک پورے اندرونی ایڈریس پر، دونوں سمتوں میں، میپ کرتا ہے۔ اس وقت استعمال ہوتا ہے جب کسی سرور کو فارورڈ کیے گئے پورٹس والے مشترکہ ایڈریس کے بجائے اپنا الگ پبلک ایڈریس درکار ہو۔
NPTv6 — /nat/npt

IPv6 کے لیے نیٹ ورک پریفکس ٹرانسلیشن: ہوسٹ والے حصے کو چھیڑے بغیر ایک پریفکس کو دوسرے میں دوبارہ لکھتا ہے۔ ری نمبرنگ کا IPv6 والا حل، جہاں روایتی NAT نہ ضروری ہے نہ مطلوب۔
Settings
Advanced — /system-firewall

خود پیکٹ فلٹر کی ٹیوننگ: اسٹیٹ ٹیبل کی حدیں، آپٹیمائزیشن اور ٹائم آؤٹ پالیسی، فریگمنٹس کی ہینڈلنگ، اور یہ کہ آیا کچھ مخصوص ٹریفک کے لیے فلٹر کو بائی پاس کیا جاتا ہے۔
یہ سیٹنگز ہر رول کے رویّے کو بدلتی ہیں۔ ڈیفالٹ اقدار تقریباً ہر اپلائنس کے لیے درست ہیں؛ انہیں تب بدلیں جب آپ کے پاس کوئی پیمائش ہو جو ایسا کہے، اور جو بدلا ہو اسے لکھ لیں۔
Normalization — /legacy?p=filter/scrub/rule

اسکرب رولز: فریگمنٹس کو دوبارہ جوڑنا، زیادہ سے زیادہ سیگمنٹ سائز کو محدود کرنا، اور رولز کے مجموعے تک پہنچنے سے پہلے ٹریفک کو نارملائز کرنا۔ یہاں آنے کی عام وجہ کسی ایسے ٹنل کے لیے MSS کلیمپ ہوتی ہے جس میں بڑے پیکٹ غائب ہو جاتے ہیں۔
Schedules — /firewall-schedules

نام والی وقت کی حدیں جن سے کوئی رول منسلک کیا جا سکتا ہے — "دفتری اوقات"، "ویک اینڈ"۔ شیڈول والا رول صرف اسی کے اندر فعال ہوتا ہے۔

ایک شیڈول میں کئی وقت کی حدیں ہوتی ہیں، اس لیے "پیر–جمعہ 08:00–18:00 اور ہفتے کی صبح" ایک شیڈول ہے، تین نہیں۔
Log Files
Live View — /fwlog/live

پیکٹ جیسے فلٹر انہیں لاگ کرتا ہے، مسلسل اپ ڈیٹ ہوتے ہوئے، اس رول کے ساتھ جو مطابق آیا۔ کسی رول کی جانچ کے دوران یہی صفحہ کھلا رکھیں۔ شور کم کرنے کے لیے اسے انٹرفیس، ایڈریس یا پورٹ کے لحاظ سے فلٹر کریں۔
Overview — /fwlog/overview

یہی ڈیٹا مجموعی شکل میں: کون سے رولز سب سے زیادہ مطابق آئے، کیا سب سے زیادہ بلاک ہوا۔ ایسے رول کو پکڑنے کے لیے مفید جو توقع سے کہیں زیادہ بار حرکت میں آ رہا ہو۔
General / Plain View — /log/core/firewall، /log/core/filter

فلٹر کا متنی لاگ۔ Plain View خام فائل ہے، اور یہی آپ سپورٹ ٹکٹ میں کاپی کرتے ہیں۔
Diagnostics
States — /fwdiag/states

ہر وہ کنکشن جسے فلٹر اس وقت ٹریک کر رہا ہے، قابلِ تلاش، اور کسی ایک کو ختم کرنے کے اختیار کے ساتھ۔ اسٹیٹ ختم کرنا ہی وہ طریقہ ہے جس سے آپ رول بدلنے کے بعد کسی اٹکے ہوئے سیشن کو دوبارہ قائم ہونے پر مجبور کرتے ہیں — موجودہ کنکشن اسی رول کے تحت چلتے رہتے ہیں جس نے انہیں داخلے کی اجازت دی تھی۔
Sessions — /fwdiag/sessions

اس وقت کے مصروف ترین کنکشن، ٹریفک کے لحاظ سے ترتیب میں — "لائن کون استعمال کر رہا ہے" والا منظر۔
Statistics — /fwdiag/statistics

خود فلٹر کے کاؤنٹر: حد کے مقابلے میں زیرِ استعمال اسٹیٹس، گزارے اور بلاک کیے گئے پیکٹ، میموری۔ حد کے قریب پہنچتی اسٹیٹس کی تعداد ان کنکشنز کی وضاحت کرتی ہے جو لوڈ کے دوران ناکام ہوتے ہیں۔
Aliases — /firewall-aliases

ہر ایلیاس میں اس وقت کیا ہے، جیسا کہ فائر وال اسے دیکھتا ہے۔ URL ٹیبل والا ایلیاس جو تازہ نہ ہو سکا ہو، یہاں خالی یا پرانے ٹیبل کے طور پر نظر آتا ہے، جو ورنہ ایک پراسرار طور پر بے اثر رول جیسا دکھائی دیتا ہے۔
Shaper

ٹریفک شیپنگ تین حصوں میں، جنہیں اسی ترتیب سے کنفیگر کیا جاتا ہے:
- Pipes —
/m/trafficshaper/trafficshaper#pipes— بینڈوڈتھ کی ایک حد۔ پائپ دراصل پائپ کی چوڑائی ہے۔ - Queues —
#queues— کسی پائپ کے اندر حصے، وزن کے ساتھ، تاکہ مسابقت کی صورت میں ٹریفک کی ایک قسم دوسری کے لیے جگہ چھوڑ دے۔ - Rules —
#rules— کون سا ٹریفک کس پائپ یا قطار میں جائے۔


Status — /shaper-stats

فعال پائپ اور قطاریں اپنے کاؤنٹرز کے ساتھ — اس بات کا ثبوت کہ شیپنگ ہو رہی ہے، اور وہ جگہ جہاں آپ کسی قطار کو پیکٹ ڈراپ کرتے دیکھتے ہیں۔