بیایید به صورتی جزئی تر به قوانین Firewall نگاهی بیندازیم. یکی از اصلی ترین مفاهیم در فهم این موضوع، دانستن این نکته است که قوانین ترتیبی به صورت بالا به پایین دارند. ممکن است این قانون را در دیگر برنامه ها و محصولات نیز دیده باشید. برای کسانی که در دنیای Windows کار می کنند، این موضوع در Outlook از پیش مشاهده شده است. همانطور که در Outlook گاهی اتفاق می افتاد که قوانین ترتیب درستی نداشته باشند، این اتفاق می تواند در Issabel Firewall هم رخ دهد از هین روست که باید توجه زیادی در این مورد داشت.
شکل زیر نگاهی ساده است به نحوه ی عملکرد Issabel Firewall:

بیایید از بالا شروع کنیم، یک بسته وارد Issabel Firewall می شود.
سیستم شروع به پیمایش Firewall می کند و این قانون به سادگی توضیح می دهد که اگر بسته ی وارد شده مربوط به به پورت 22 است (که معمولا با عنوان SSH شناخته می شود)، و از آدرس IP به مقدار 202.11.22.33 آمده است، به او اجازه دهید تا عمل مشخص از پیش تعریف شده ی ACCEPT برایش انجام گردد. سپس به Issabel می رود. اگر بسته به طور کامل ایت قانون را شامل نشود، به قانون بعدی رفته و این کار به همین ترتیب ادامه می یابد تا در نهایت در یکی از Rule ها تطبیق لازم یافت شود.
ممکن است فکر کنید که یک بسته هیچگاه با هیچ کدام از Rule ها تطبیق نیابد، چرا که از آدرس IP دیگری قانونی را تنظیم نکرده اید.
باید گفت که در پایان قوانین قانونی تعریف شده است که اگر با هیچ پورتی و از هیچ آدرس IP ای تبعیت نکرد، عمل بسیار واضحی روی آن انجام گیرد که همان REJECT است.
شاید بیندیشید که نوشتن REJECT در پایان دستورات در سیستم افزونگی ایجاد می نماید، اما مثل هر نرم افزار کاربردی دیگری، نباید دستورات را پایان نیافته باقی بگذارید چرا که ممکن است نتیجه ی غیر قابل انتظاری رخ دهد.
مفهوم دیگری وجود دارد که باید آن را بیاموزید و Loopback نامیده می شود.
واسط کاربری ای که LO نامیده می شود و همان مخفف عبارت Loopback است در شکل زیر به نمایش در آمده است. اگر تا کنون فرمان Ifconfig را در Linux prompt اجرا کرده باشید، باید دیده باشید که در کنار واسط (Interface) شبکه تان، واسط کاربری دیگری وجود دارد که Lo نامیده می شود.

برنامه های کاربردی موجود در سیستم لینوکس از طریق واسط Lo با هم ارتباط برقرار می کنند. شاید برای استفاده از Localhost برنامه های کاربردی ای را پیکربندی کرده باشید، و این نمونه ایست از برنامه های کاربردی ای که از واسط کاربری Lo استفاده می نمایند.
همانطور که می توانیددر شکل بالا ببینید، واسط Lo در حال استفاده است و ترافیک را Handle نمی کند. همواره لازم است در قوانین Firewall حضور داشته باشد، در غیر این صورت ممکن است ببینیید که بسیاری از سرویس های موجود در Localhost رد شوند.
از دیگر کاربرد های Local Loopback می توان به Virtual adaptor اشاره کرد که نیازی به کارت سخت افزاری ندارد. به کمک این سرویس می توان بدون سخت افزار دست به ایجاد IP Stack زد. اگر تا کنون بدون یک کارت شبکه ی در حال کار، سیستم Issabel ای ایجاد نموده اید، مشاهده خواهید کرد که حداقل واسط Lo در حال کار است. این بدان معناست که برنامه های مبتنی بر IP Stack ی که در دسترس هستند (همچنین هر ببرنامه ی کاربردی ای که از ارتباطات مبتنی بر IP استفاده می نماید) در یک پشته پایین می آیند، چرا که انتظار می رود یک IP Stack وجود داشته باشد که بتوان با آن ارتباط برقرار کرد.
بیایید نگاهی به تنظیمات پیش فرض Issabel Firewall بیندازیم، خواهید دید که شکل مربوط به Firewall است.

قوانین بالا تنظیمات پیش فرض قوانین است که سیستم Issabel با آن ها به صورت از پیش تعریف شده ارائه می شود. شکل بالا می تواند به عنوان راهنما در نمایش قوانین برایتان عمل کند، تا بتوانید برای ایجاد حالت بهینه ی مورد نظرتان قوانین اشتباه یا اضافه را حذف نمایید. اگر صفحه نمایشتان کمی متفاوت به نظر می رسد، ممکن است Firewall را فعال نکرده باشید. تا زمانیکه آن را فعال نکردید، قادر نخواهید بود قوانین را ویرایش کرده یا به جای دیگری حرکت دهید. نیازی نیست که بترسید، اگر سیستمتان سیستمی Live باشد، این تنظیمات پیش فرض بیش از حد محدود کننده نخواهند بود و نباید تاثیری بر سیستمتان بگذارند.
بیایید نگاهی بیندازیم.

فلش های آبی رنگ به شما اجازه می دهند که قوانین را به بالا یا پایین قانون دیگر حدکت دهید. این کار هیچ چیز عجیبی نیست بلکه فقط همانطور که در بالا توضیح داده شد ترتیب بررسی قوانین را تغییر می دهد(خصوصا در جاهاییکه تعداد زیادی قانون accept یا reject مورد استفاده هستند).
فلش های سبز رنگ نشان دهنده ی ترافیک وارد شونده به Firewall هستند. به منظور استفاده ی مفید از واژه ها، این مورد با عنوان INPUT تعریف شده است، تا بسته ی ورودی به سیستم را نمایش دهد. همچنین می توانید FORWARD را برای بسته هایی انتخاب نمایید که از طریق سیستم Issabel تان مسیر دهی شده اند و OUTPUT را برای بسته هایی که سیستمتان را ترک می کنند انتخاب نمایید.
لامپ ترافیک سبز رنگ است بدین معنا که Rule Action برای این قانون مشخص Accept در نظر گرفته شده ا ست. واسط انتخاب های مربوط به واسط را نمایش می هد. د رجدول بالا به این معناست که Rule می تواند به هر واسطی تعلق داشته باشد.
بعدی آدرس مبدا است. همانطور که می بینید، قانون پیش فرض به این ترتیب تنظیم شده است که به هر آدرس IPای اجازه دهد که سیستم Issabel دسترسی داشته باشد. اینجا همان جاییست که در آن می توانید آدرس های IP ای که می توانند از Issabel عبور کنند را محدود نمود.
مورد بعدی آدرس مقصد است. از این مورد برای Outgoing Rules استفاده می شود. در یک تنظیم ساده، می توانید آن را 0.0.0.0 یا هر چیز دیگری در نظر بگیرید.
اطلاعات جزئی تر پورت و پروتکل از Defined port بدست می آید.
در نهایت، پایین دو آیکن آخر، Light Bulb را داریم. این مورد فعال یا غیر فعال بودن قوانین را نشان می دهد. آخرین آیکون، EDIT است.
تعداد کمی قانون اولیه وجود دارد که باید قبل از پیش رفتن در موضوع به آن ها بپردازیم، خصوصا اگر اولین بار است که با مفاهیم مربوط به Firewall آشنا می شوید و از پیش آشنایی ای با جداول IP ندارید.
قانون Lo را در جایش در بالای جدول قرار دهید و تغییرش ندهید.
پیشنهاد می کنم در تصحیح و تغییر قوانین HTTP و HTTPS دقت کافی را داشته باشید. در غیر این صورت این قوانین را از دست خواهید داد و یا تغییراتی ایجاد خواهید کرد که صحیح نیستند. همچنین ممکن است دسترسی خودتان را به واسط گرافیکی Issabel ببندید و این بدان معناست که دیگر نمی توانید تغیری در آن ایجاد نمایید. اگر به این مشکل برخوردید به بخش سوالات متداول در انتهای راهنما مراجعه نمایید تا خودتان را از این شرایط خلاص نمایید.
در انتهای جدول سه قانون وجود دارد که باید همانطور در انتهای جدول بمانند و ترتیبشان نیز تغییری نکند.
در فصل قبل در مورد قانون Lo در بالای جدول صحبت نمودیم. در ادامه کاملا در مرد سه قانون آخر و اینکه برای چه چیزی استفاده می شوند صحبت خواهیم نمود. شماره ی قوانینی که به آن ها رجوع می کنم، شماره قوانینی هستند که در تنظیمات پیش فرض مورد استفاده قرار گرفته اند، همچنین مشابه شکل با 22 قانون نمایش داده شده.
قانون 20 قانونیست که به ترافیک اجازه می دهد جاییکه ترافیک خروجی یک لینک یا رابطه با آدرس IP و پورتی خاص ایجاد کرده است به سیستم Issabel باز گردد. بنابرین برای نمونه اگر سیستم Issabel تان از طریق Say port 1678 اتصالی به یک سرویس خارجی ایجاد کند، تا جایی که با پورت و آدرس IP سیستم Issabel مورد استفاده برای ارتباط با سرویس خارجی تطبیق یابد، به ترافیک اجازه خواهد داد که به سیستم Issabel باز گردد. انچه گفته شد بی شک نگاهی بسیار ساده به این بخش بود. برای داشتن اطلاعات بیشتر می توانید در گوگل عبارت IPTABLES CONNECTION TRACKING را جستجو نمایید.
قانون 21 قانون DENY است. همانطور که پیشتر اشاره کردیم این Rule در انتهای لیست قرار دارد. به این ترتیب اگر هیچ تطبیقی در هر کدام از قوانین بالایی یافت نشد، بسته ها Reject شده و از سیستم Issabel عبور نمی کنند.
قانون 22 نیز یک deny all rule است، اما با قانون 21 متفاوت می باشد، این تفاوت در آن است که این deny در مورد هر نوع ترافیکیست که forward شده است.
در نهایت یک چیز دیگر هست که باید به ان توجه نمود و آن زمانیست که یک قانون جدید اجرا می کنید. این قانون جدید در انتهای جدول وارد می شود. چون در ترتیب قوانین این قانون پایین تر از DENY ALL قرار گرفته است، هیچگاه پردازش نخواهد شد. اینکه بتوانید قوانین مخصوص خودتان را بسته به نیاز هایتان ایجاد و ویرایش نمایید بسیار خوب است، کافیست برای اجرایشان آن ها را در جای درستشان قرار دهید. توجه داشته باشید که بدون شک باید در بالای این قوانین قرار بگیرند.
تا کنون تا حدی می توانید در سیستمتان تغییراتی را ایجاد نمایید. و شاید یکی از اولین قوانینی که می خواهید تغییر دهید محدود کردن آدرس های IP ای است که می توانند به SSH دسترسی داشته باشند بجای اینکه آن ها را باز رها کنید تا هر کسی بتواند به آن ها دسترسی داشته باشد.
بنابراین بیایید قانون شماره ی 11 را ویرایش نماییم

که یکی از SSH های پورت مقصد است.
روی آیکون EDIT کلیک کنید تا پنجره ی زیر به نمایش در آید.

یکی از نکات مهمی که تا کنون به آن اشاره ای نشده است، کاربرد پورت های SOURCE و DESTINATION می باشد.
موردی که باید در Inbound Rules نگران آن باشیم مسئله ی Destination port است. این پورتیست که به آن اجازه می دهید ترافیک از طریقش وارد سیستم Issabel تان گردد.
تلاش برای قفل نمودن پورت منبع در Inbound Rules برای ترافیک خارجی ممکن نیست چرا که بنا به فاکتور های متعددی متفاوت خواهد بود. این کار در واقع هیچ گونه هدفی را دنبال نمی کند مگر پیچیده تر کردن قوانینتان.
بنابراین آنچه می خواهیم در ادامه به آن بپردازیم مثالیست در جهت محدود کردن دسترسی به SSH، به گونه ای که فقط از طریق آدرس 85.15.1.158 بتوان به آن دسترسی داشت. در نتیجه تنها تغییری که ایجاد می کنیم در قسمت Source Address است. سپس باید شکل زیر را مشاهده نمایید:

در انتها می توانید Subnet شماره ی /32 را مشاهده نمایید. در این مورد آدرس منبع را فقط به یک آدرس IP محدود می کند. اگر می توانستیم آن را به صورت دیگری بنویسیم به صورت 255.255.255.255/85.15.1.158 به نمایش در می آمد. بنابراین فقط یک اتصال از آن آدرس IP مشخص قادر خواهد بود که به SSH دسترسی داشته باشد.
اگر یک آدرس واحد نداشته باشید، اما می تواند آدرس IP از یک Subnet مشخص باشد، می توانید Subnet را محدود نمایید، بنابراین اگر از 24/85.15.1.158 استفاده نماییم که مشابه نوشتن 255.255.255.0/85.15.1.158 است، هر آدرس IP ای که منطبق با الگوی 85.15.1.xxx باشد می تواند به SSH دسترسی داشته باشد. این کار ایده آل و امن نیست، خصوصا اگر کنترل کاملی بر کل Subnetmask آن آدرس IP نداشته باشید
مورد دیگری که ممکن است از این گزینه استفاده کنید لزوما در SSH نیست، اما در قوانین SIP و RTP، خصوصا جاییکه Voice Provider از round robin ی که از 4 یا 5 سرور تشکیل شده تا از SIP Service استفاده نماید. شما باید بفهمید که چه محدوده ایست و Subnet ای با آن تطبیق دارد، این موضوع اجازه می دهد که به صورتی امن افرادی را که به پورت SIP دسترسی دارند محدود نماییم.
حال قبل از اینکه شروع به محدود کردن آدرس های IP تان نمایید، نفس عمیقی بکشید و تامل نمایید. چیزی که فراموش شده است، خصوصا اگر واسط اترنت سیستم Issabel تان به شبکه ی محلی متصل باشد، این است که با بستن دسترسی از طریق SSH در فایروال دسترسی خود از طریق شبکه محلی LAN را نیز قطع کنید.
بنابراین باید یک قانون Firewall جدید ایجاد نمایید، که مورد کنونی را برای دسترسی های خارجی از اینترنت و دومی را برای دسترسی به LAN استفاده نماید.بنابراین یک قانون جدید می تواند به صورت زیر باشد

آدرس منبع، محدوده ی آدرس های IP شبکه ی محلی LAN است. حواستان باشد که از /24 استفاده کرده ایم، بنابراین هر Workstation ی در شبکه ام می تواند به SSH دسترسی داشته باشد.
من این قانون را ذخیره کرده و آن را در جای صحیح خود قرار می دهم.
در نتیجه قوانین به صورت زیر خواهند شد:

خواهید دید که دو قانون برای SSH وجود دارد، یکی برای Extenal Address و دیگری برای Internal Address. ممکن است فکر کنید که این شکل خیلی سنگین است و شما شکل ساده تر آن را در دیگر ابزارهای Firewall ی که تا کنون استفاده کرده ایددیده اید، اما این راهیست که جدول IP قوانین را handle می نماید.
به احتمال بسیار زیاد گام بعدی ای که باید طی کنید محدود کردن SIP به تعداد محدودی آدرس IP است. این نیز به روش مشابهی انجام می گیرد. اما مجددا به خاطر داشته باشید، اگر SIP تان را به یک آدرس خارجی محدود کنید، باید خودتان را آماده ی این اتفاق نمایید که همه ی گوشی های SIP سیستم Issabel از کار بیفتند. همچنین باید اطمینان حاصل نمایید که یک قانون internal را نیز تنظیم کرده اید و شامل RTP می باشد.
تا کنون ممکن است کمی در سیستم Issabel سرگردان شده باشید و Option های زیادی وجود داشته باشد که در این راهنما به آن ها اشاره ای نشده باشد. آنچه تا کنون پوشش داده شد، نحوه ی عملکرد اجرای Issabel Firewall GUI و نیز توضیح کاملی در مورد IPTable است که می توانید از طریق آن واقعا از Issabel Firewall استفاده نمایید.
زمانیکه در جدول IPTable به اطلاعات موجود در این جدول نگاه می کنید، اصلی ترین چیزی که باید از آن آگاه باشید موارد زیرند:
نیازی به نصب IPTable نیست، چرا که پیش از این نصب شده است.
برای رفتن به command line و ذخیره و تراز نمودن جداولتان ، نیازی نیست که آن ها را Restart نمایید. این کاربه عنوان بخشی از عملیات ذخیره سازی خود به خود صورت می گیرد.
به هر حال می توانید، پس از اینکه به قوانین پایان دادید، به Commandline رفته و بررسی کنید که قوانینتان در IPTable به چه ترتیب است. برای لیست کردن قوانین IPTable کنونی تان کافیست در Command line سیستم لینوکس عبارت iptables –L را وارد نمایید.
نیازی نیست سرویس IPTable را به صورت دستی Start نمایید، این کار به صورت اتوماتیک توسط سیستم Issabel صورت می گیرد.