آموزش فایروال لینوکس و بررسی فایروال‌های لینوکسی

مقدمهدر این مستند فایروال‌های لینوکسی بررسی خواهد شد.در ابتدا به معرفی توزیع‌هایی از فایروال که با استفاده از سیستم عامل لینوکس تهیه شده‌اند پرداخته می‌شود و بعد از آن به بررسی دقیق ابزار‌ّهای پوشاننده‌یiptables پرداخته می‌شود.در ابتدا به بررسی فایروال‌هایی می‌پردازیم که هسته‌ی آن‌ها، سیستم‌عامل لینوکس است و این گونه می‌توان بیان کرد که این دسته از فایروال‌ها همان لینوکس customizeشده است.تعداد فایر‌وال‌هایی که هسته‌ی آن‌ها سیستم عامل لینوکس است را می‌توانید در آدرس [1] ذکر شده در فصل مراجع مشاهده فرمائید.تعداد زیادی از فایروال‌ّها از سیستم عامل لینوکس به عنوان هسته استفاده کرده اند که در این مستند اختصار به معرفی فایروال‌های· Ipcop· Pfsense· SmoothWall Express· Endian· ClearOS· Monowall· Drawbridge· Ipfire· Alpine Linux· OPNsense· Devil-Linux· Untangle NG Firewall· VyOSمی‌پردازیم.2 توزیع‌هایی از فایروال مبتنی بر لینوکسدر این فصل به معرفی توزیع‌هایی از فایروال‌ها که هسته‌ی آن‌ّها لینوکس است می‌پردازیم.2-1 فایروال IPCOPفایروال ipcop به صورت سیستم عامل موجود است و این فایروال را می‌توان رایگان از سایت آن دانلود کرد و از آن استفاده کرد. این فایروال با هدف فراهم آوردن استفاده‌ی ساده از امکاناتِ یک فایروال طراحی شده است، که بتوان بر روی سخت افزار یک PCنصب و استفاده کرد.مدیریت این فایروال با استفاده از web interface بوده و از زبان فارسی پشتیبانی می‌کند.شکل ‏2‑1شکل ‏2‑1 نمایی از ipcopعمل کرد این فایروال این گونه است که در ابتدا از شما درخواست مشخص کردن نوع شبکه را می‌کند و شبکه‌ها را اینگونه دسته بندی می‌کند:1. شبکه Green: شبکه‌ی داخلی(LAN ) که مطمئن می‌باشد.2. شبکه Blue: شبکه‌ی بیسیمِ مطمئن، که می‌توان به عنوان Green 2 هم از آن استفاده کرد.3. شبکه Orange: این شبکه به عنوان DMZ یا محل قرار گیری web server در نظر گرفته می‌شود .4. شبکه Red: این شبکه همان شبکه‌ی نامطئن یا اینترنت می‌باشد.این شبکه‌ها را می‌توان مانند شکل ‏2‑2 نمایش داد.شکل ‏2‑2 نمایی از شبکه‌های مورد استفاد در IPcopویژگی‌های ipcopرا می‌توان در آدرس [2] ذکر شده در فصل مراجع مشاهده کرد.2-2 فایروال pfsenseفایروال pfsense با هدف firewall/router به صورت متن باز بر اساس Free BSD طراحی شده است. این فایروال به صورت سیستم عامل برروی یک سخت‌افزار یا virtual machine نصب شده و امکان مدیریت شبکه‌ی اختصاصی را به شما می‌دهد.مدیریت این فایروال از طریق web interface فراهم آورده شده است. شکل ‏2‑3شکل ‏2‑3 نمایی از PFsemseویژگی‌های این فایروال در آدرس [3] ذکر شده در فصل مراجع موجود است.2-3 فایروال SmoothWall Expressبرند Smoothwall یک شرکت نرم‌افزاری شخصی است که در کانادا به فیلتر کردن محتوای وب و همچنین به نگهداری و پشتیبانی پروژه‌های smoothwall مشغول است.این محصول به صورت متن باز موجود است و می‌توان از آن بر روی یک ماشین مجازی یا یک سخت افزار استفاده کرد و همچنین دارای رابط کاربر گرافیکی web interface می‌باشد و برای استفاده از این فایروال/روتر احتیاج به دانش لینوکسی بالایی نیست. شکل ‏2‑4شکل ‏2‑4 نمایی از smoothwallویژگی‌های این فایروال در آدرس [4] ذکر شده در فصل مراجع موجود است.2-4 فایروال Endianفایروال endianبا هدف مدیریت یکپارچه‌ی تحدیدات یا UTM طراحی شده است که از شبکه محافظت کرده و ارتباطات را بهبود می‌بخشد که base این فایروال redhat است و به صورت متن باز موجود است دارای ویژگی‌های بسیار زیادی است.شکل ‏2‑5شکل ‏2‑5 نمایی از endianویژگی‌های این فایروال در آدرس [5] ذکر شده در فصل مراجع موجود است.2-5 فایروال clear osفایروال clear os که base آن centos و redhat می‌باشد با هدف قرار گرفتن به عنوان gateway در شبکه‌های کوچک طراحی شده است که برای مدیریت آن یک web interface فراهم امده که به مدیر شبکه امکان پیکربندی را به صورت GUI می‌دهد. در این فایروال در صورتی که نیاز به خرید serviceهای خاص بود می‌توان با پرداخت مبلغی آن‌ها را همراه با پشتیبانی تهیه کرد.این فایروال به صورت رایگان در دسترس می‌باشد و متن باز است. شکل ‏2‑6شکل ‏2‑6نمایی از clear osویژگی‌های این فایروال در آدرس [6] ذکر شده در فصل مراجع موجود است.2-6 فایروال m0n0wallفایروال m0n0wall با هدف جمع کردن ویژگی‌ها و packageهای مورد نیاز فایروال در یک بسته و همچین ساده سازی استفاده از آن‌ها طراحی شده که base آن Free BSD است. پیکربندی در این سیستم فایروال در یک فایل با فرمت XML نگه داری می‌شود که این کار باعث شفافیت درک پیکربندی می‌شود.این فایروال از جمله اولین فایروالی است که در زمان bootپیکربندی خود را با استفاده از PHPانجام می‌دهد و پیکربندی را در یک فایل با فرمت ‌XML انجام می‌دهد. شکل ‏2‑7شکل ‏2‑7 نمایی از monowallویژگی‌های این فایروال در آدرس [7] ذکر شده در فصل مراجع موجود است.2-7 فایروال Ipfireاین فایروال به صورت سیستم عامل موجود می‌باشد که توسط web interfaceقابل پیکربندی بوده و شباهت‌هایی به endian و ipcop در طراحی و رابط کاربری دارد.شکل ‏2‑8 نمایی از ipfireشکل ‏2‑8 نمایی از ipfireویژگی‌های این فایروال در آدرس [8] ذکر شده در فصل مراجع موجود است.2-8 فایروال Alpine Linuxبرند Alpine Linuxیک اجتماع توسعه دهنده و طراح سیستم عامل برای روترهای X86 ، فایروال ، VPNها، VOIP boxesو serverهاست.در این فایروال قابلیت PaXوجود دارد که این قابلیت برای حفاظت از bugهای نرم‌افزار در مقابل exploid است و به صورت patch بر روی کرنل نصب می‌شود.شکل ‏2‑9 نمایی از alpine linuxویژگی‌های این فایروال در آدرس [9]ذکر شده در فصل مراجع موجود است.2-9 فایروال OPNsenseبرند OPNsenseیک سیستم عامل بر مبنای FreeBSDاست که به عنوان یک فایروال و روتر طراحی شده که برگرفته از pfsense است.این پروژه تمرکزش را بر روی پل‌های‌امنیتیِ یکسری ویژگی‌ّهای خاص قرار داده است که این ویژگی‌ها عبارتند از:امکان استفاده از libreSSL به جای OpenSSLشخصی‌سازی شده‌ی مقاوم از ‌BSDفایروال OPNsenseهمچنین دارای یک مکانیزم به روز رسانی‌ امنیتی است.شکل ‏2‑10 نمایی از OPNsenseویژگی‌های این فایروال در آدرس [11] ذکر شده در فصل مراجع موجود است.2-10 فایروالdevil-Linuxفایر وال Devil-Linux یک توزیع لینوکس است که به عنوان روتر/فایروال که بر روی سیستم قابل نصب است استفاده می‌شود.این فایروال به علت نداشتن محیط گرافیکی نسبت به بقیه‌ی فایروال‌ّهای معرفی شده در این مستند، سبک وزن‌تر است.شما می‌توانید در شکل ‏2‑11 نمایی از این فایروال را مشاهده کنید.شکل ‏2‑11 نمایی از devil_linux firewallویژگی‌های این فایروال در آدرس [12] ذکر شده در فصل مراجع موجود است.2-11 فایروال Untangle NG Firewallخود Untangle از دسته‌ نرم‌افزار‌های NGFW/UTM به حساب می‌آید که این فایروال با هدف فراهم آوردن احتیاجاتِ تشکیل یک شبکه اَمن، طراحی شده است.همچنین این فایروال امکان GUI مبتنی بر Web interface را برای مدیریت فایروال دارا می‌باشد. شکل ‏2‑12شکل ‏2‑12 نمایی از فایروال Untangle NGویژگی‌های این فایروال در آدرس [13] ذکر شده در فصل مراجع موجود است.2-12 فایروالVyOSفایروال VyOS به عنوان یک سیستم‌عامل، که نرم‌افزار‌ّهای تحت شبکه را دارا می‌باشد طراحی شده است که با این وجود می‌توان از آن به عنوان فایروال و روتر استفاده کرد.شکل ‏2‑13 نمایی ازVyOSویژگی‌های این فایروال در آدرس [14] ذکر شده در فصل مراجع موجود است.2-13 مقایسهدر می‌توان چندین فایروال که از جهات مختلف بررسی شده‌اند را مشاهده کنید.جدول ‏2‑1 مقایسه‌ی linux firewallجدول ‏2‑1 مقایسه‌ی linux firewall3 ابزار‌هایIPtables’s wrapper[13]در این فصل قصد داریم به بررسی ابزار‌هایی بپردازیم که با استفاده از ماجول IPtables انجام فرایند‌های مورد نیاز شبکه‌ای سیستم را برای ما راحت‌تر می‌کنند و انعطاف پذیری بیشتری به دستورات IPtables می‌دهد.در لینوکس IPtables از ماجول‌ّهای موجود در سیستم عامل لینوکس است که وظیفه‌ی پردازش بسته‌های شبکه‌ را در سیستم لینوکس دارد. البته در آینده ماجول NFtable جایگزین IPtables می‌شود که در موارد زیر با IPtables تفاوت دارد:فناوری NFtable در Syntax نسبت به IPtables طراحی مناسب‌تری را دارا می‌باشد.می‌توان در یک دستور چندین Rule را تعریف کرد که این قابلیت در IPtables وجود ندارد.انعطاف پذیری در NFtableبه دلیل وجود chainهای متفاوت.بهبود performance.جفت مقدار‌های پشت سرهم، عنوان مثال می‌توان چند ip و پورت را با هم ترکیب کرد و در زمانی که احتیاج شد از آن‌ها استفاده کنیم.هوشمندی و پروتکل‌هایی که پشت‌بانی می‌کند بیشتر از iptable است.قابلیت exportکانفیگ به صورت بسیار ساده.به نسخه کرنل جدیدتر از 3.13 نیاز دارد.در این مستند قصد بر آموزش و بررسی دستورات IPtablesو یا NFtables را نداریم بلکه به بررسی ابزار‌هایی می‌پردازیم که از IPtables استفاده می‌کند تا این که نیاز‌های ما را برطرف کند و با بررسی جزئیات آن‌ها از صحت و اَمنیت آن‌ها اطمینان حاصل کنیم.البته iptables بر روی برخی از توزیع‌های لینوکس وجود ندارد مانند FreeBSD که ماجول مخصوص به خود به نام PF را دارند.که ما در این مستند به بررسی این توزیع نمی‌پردازیم.3-1 بررسی Iptablesهمان گونه که گفته شد iptables یک ماجول طراحی شده برای لینوکس است که کار‌های شبکه‌ای مورد نیاز سیستم را فراهم می‌آورد. Iptables برای ارتقاع خود از ماجول‌های دیگری هم استفاده می‌کند که می‌توان این ماجول‌ّها را در آدرس[15] مشاهده کرد.برای استفاده‌ی ماجول‌های گسترش در Iptables می‌توان با استفاده از option –m به همراه نام ماجول از ماجول استفاده کرد. همان‌گونه که گفته شد لیست ماجول‌ها در آدرس [15] آورده شده است و در صورت نیاز کافی است که با مراجعه به این سایت از ماجول‌ّهای گسترش iptables استفاده کنید.اما در ادامه به بررسی ابزار‌ّهایی می‌پردازیم که با استفاده از امکانات iptable یک محیط ساده را برای استفاده از iptables فراهم می‌آورند.3-2ابزار Shorewallابزار Shorewallیک ابزار سطح بالا برای تنظیمات Netfilter است. شما احتیاجات firewall/gateway خود را در یکسری فایل‌ّهای مشخص توصیف می‌کنید. shorewall کانفیگ فایل‌های تنظیم شده را می‌خواند و با استفاده از iptables ، iptables-restore ، tc و ipبه اعمال netfilterمی‌پردازد.ویژگی‌های shorewall:با ضبط ارتباطات netfilterعمل netfilter را به صورت state full [16]انجام می‌دهدمی‌تواند از آن در گستره‌ی وسیعی از router/firewall/gateway application استفاده کردبدون محدودیت در تعداد کارت‌های interfaceتمام پیکربندی توسط پیکر بندی فایل‌های موجود انجام می‌شودامکان zoneبندی شبکه را به شما می‌دهدامکان تخصیص interfaceها به zoneهای مختلفپشتیبانی از مدیریت مرکزی فایروالابزار Shorewall بر روی یک سیستم مشخص نصب می‌شوداسکریپت‌ها اجرایی توسط shorewall کنترل می‌شوددارای quick guid برای راه‌اندازی و تغییرات سریع· محیط گرافیکی آن توسط webmin پشتیبانی می‌شود· پشتیبانی به صورت انعطاف پذیر از مدیریت و route آدرس‌هاویژگی Masquerading/SNATویژگی Portforwarding/DNATویژگی One-to-one NATویژگی Proxy arpویژگی NETMAPویژگی Multi ISP support(پشتیبانی از وجود چندین لینک از طریق Router/Firewallهای یکسان)امکان تشکیل لیست سیاهی از ipهای مورد نظرپشتیبانی از فرمان‌های عمل گرفرمان‌های start, stopn و clear در فایروالامکان ایجاد هشدار صدایی برای زمانی که یک بسته‌ی خاص تنظیم شده دریافت می‌شودگستره‌ی وسیعی از فرمان‌های اطلاعات دهنده‌ی وضعیتویژگی VPN_supportویژگی IPSEC, GRE, IPIP and OpenVPN Tunnelsویژگش PPTP clients and Servers.پشتیبانی از Traffic control/shappingپشتیبانی از توزیع‌های متفاوت گسترده‌ی لینوکسپشتیبانی از RPM و DEbianویژگش Automatically install and updateقابلیت شناسایی MAC آدرسویژگی Traffic accountingپشتیبانی ازBridge/ Firewall· پشتیباتی ازIPv6سازگاری با محیط‌های مجازی سازیویژگیKVMویژگی Xenویژگی Linux-Vserverویژگی OpenVZویژگی VirtualBoxویژگی LXCویژگی Docker (Shorewall 5.0.6 and later)3-2-1 نحوه‌ی استفاده از shorewallبعد از نصب نرم‌افزار بر روی سیستم نوبت به پیکربندی این نرم‌افزار می‌رسد.همان گونه که گفته شد برای پیکر بندی این نرم‌افزار باید با فایل‌ کانفیگ‌های مربوطه کار کنیم، همچنین همان‌طور که گفته شد این نرم‌افزار دارای راهنما‌های زیادی است. در ابتدا می‌توان فایل‌های راهنما را در مسیر برنامه ‏3‑1 مشاهده کرد./usr/share/doc/shorewallبرنامه ‏3‑1 فایل documantهای shorewallهمچنین در شاخه‌ی معرفی شده در برنامه ‏3‑1 می‌توان فایل‌ّهای راهنمای پیکربندی، و نمونه‌هایی از تغییرات فایل کانفیگ را مشاهده کرد.برای کانفیگ shorewall احتیاج است که در ابتدا وارد مسیر /etc/shorewall شوید و کانفیگ فایل مورد نظر را ایجاد کرده و تغییرات را مطابق با راهنمایی‌های موجود انجام دهید، اما این کار مشکل بوده و این که شخص بخواهد نام کانفیگ فایل‌ها و نحوه‌ی تنظیم هر فایل را بداند، کار زمان بری است، اما راه حل این است که در ابتدا در مسیر برنامه ‏3‑2 وارد شده و تمامی و یا فایل‌های لازمه را در مسیر /etc/shorewall کپی کند، خوبی این کار این است که این فایل‌ها دارای نام‌های مورد نیاز است و راهنما‌یی‌های مورد نیاز در داخل فایل برای وارد کردن نحوه‌ی تنظیمات مشخص شده است./usr/share/doc/shorewall/default-configurationبرنامه ‏3‑2 فایل‌های پیش‌فرضنکته‌‌ی قبل از راه اندازی این است که:برای راه اندازی این فایروال در ابتدا باید حداقل ۴ فایل را پیکر بندی کنیم، که این فایل‌ها عبارتند از:1. /etc/shorewall/interfacesدر این فایل باید اینترفیس‌ها مشخص و نامگذاری شوند و این که باید به یک zone نسبت داده شوند برای نمونه شما می‌توانید فایل /usr/share/doc/shorewall/two-interface/example/interface را مشاهده کنید. البته فرمان man shorewall-interface اطلاعات کاملی در این باره به شما می‌دهد.2. /etc/shorewall/policyسیاست‌ّهای مورد نظر در این فایل تعریف می‌شود بعنوان مثال شما می‌توانید دسترسی برای zoneهای مختلف را تعیین کنید. نمونه برای این فایل در مسیر /usr/share/doc/shorewall/two-interface/example/policy موجود است و شما می‌توانید با man shorewall-policy اطلاعات دقیقی به دست آورید.3. /etc/shorewall/rulesدر این قسمت شما می‌توانید قوانین خاص شبکه‌ را پیاده سازی کنید مانند بستن PING راهنماهای این فایل کانفیگ نیز مانند دیگر فایل‌های گفته شده در دسترس است.4. /etc/shorewall/zones در فایل نامگذاری zoneها انجام می‌شودنکته) موارد و نام‌هایی که در فایل‌های گفته شده استفاده می‌کنید مانند نام zone و ... با هم در ارتباط هستند و شما باید از نام‌هایی استفاده کنید که در تمامی فایل‌ها یکسان باشند. بهتر است که از نام‌های گفته شده‌ی خود نمونه فایل‌کانفیگ‌ها استفاده کنید، به عنوان نمونه برای zone محلی از نام loc استفاده کنیم و برای خود zone فایروال از fw استفاده کنیم و برای zone اینترنت از net استفاده کنیم، به این دلیل که برای تغییرات، زمانی که نمونه‌ای از فایل‌کانفیگ را مشاهده می‌کنیم، برای استفاده از آن دچار ابهام نشویم.نحوه‌ی کار کردن با shorewall تا حدودی گفته شد و در این قسمت برای آشنایی بیشتر چندین مثال آورده شده استفرض کنید که یک سیستم با دو اینترفیس داریم و فایل کانفیگ zoneآن را مانند شکل ‏3‑1 قرار داده ایم.شکل ‏3‑1 تعریف zoneدر شکل ‏3‑1 مشاهده می‌کنید که zoneهای متفاوتی تعریف شده است. نام‌های zone عبارنتد از fw, net و loc که نوع آن‌ها هم مشخص شده است.در شکل ‏3‑2 مشاهده می‌کنید که اینترفیس loc و net به دو اینترفیس نصبت داده شده است نام این فایل interface است که زیر شاخه‌ی /etc/shorwallاست.شکل ‏3‑2 نسبت دهی zoneبه اینترفیسشکل ‏3‑3 فایل‌کانفیگ policyرا نمایش می‌دهد که این فایل مشخص کرده کدام zone به کدامیک از zoneهای دیگر ارتباط یا اجازه‌ی ورود داشته باشد.شکل ‏3‑3 نمایی از فایل policyدر شکل ‏3‑3 مشخص شده که دسترسی از شبکه‌ی local به net برقرار باشد و همچنین دسترسی دیگر شبکه‌ها مشخص شده است و البته اخرین policyاین است که تمامی ارتباطاط دیگر rejectشود نکته این جاست اگر که این خط در این فایل نباشد shorewall شروع به کار نمی‌کند.فرض کنید که شما می‌خواهید هیچ کس نتواند از شبکه‌ی اینترنت، فایروال را پینگ کند. در این زمان مانند شکل ‏3‑4عمل کنید.شکل ‏3‑4 نمایی از فایل policyشما می‌توانید برای تنظیم nat masquerade مانند شکل ‏3‑5 در فایلmasq عمل کنید.شکل ‏3‑5 فایل masqبرای تنظیمات دیگر می‌توانید با مراجعه به سایت shorewall از نمونه‌ها و syntaxهای ذکر شده استفاده کنید.تا این جا با تنظیمات shorewall آشنا شدیم حال نوبت به این می‌رسد که بررسی کنیم که چگونه فایل‌ها اجرا می شوند و چه دستوراتی در پشت صحنه اجرا می‌شود.زمانی که پیکر بندی‌های اولیه‌ را در shorewall انجام دادیم نوبت به start کردن آن می‌رسد. برای بررسی این که پشت صحنه جه اتفاقاتی می‌افتد می‌توان از همین قسمت کرد.نکته)زمانی که از فرمان shorewall start استفاده می‌کنید ممکن است با خطایی مواجه شوید این خطا ممکن است که به دلیل اشتباهات موجود در فایل‌های کانفیگ باشد که در این زمان باید به /var/log/shorwall-init.log مراجعه کنید تا این که متوجه علت خطا شویم و آن را بر طرف کنیمبرای شروع بررسی ابتدا مواردی که shorewall start نمایش داده می‌شود را بررسی می‌کنیم برنامه ‏3‑3 خروجی shorwall startرا نمایش می دهد.1 Compiling...2 Processing /etc/shorewall/params ...3 Processing /etc/shorewall/shorewall.conf...4 Loading Modules...5 Compiling /etc/shorewall/zones...6 Compiling /etc/shorewall/interfaces...7 Determining Hosts in Zones...8 Locating Action Files...9 Compiling /usr/share/shorewall/action.Drop for chain Drop...10 Compiling /usr/share/shorewall/action.Broadcast for chain Broadcast...11 Compiling /usr/share/shorewall/action.Invalid for chain Invalid...12 Compiling /usr/share/shorewall/action.NotSyn for chain NotSyn...13 Compiling /usr/share/shorewall/action.Reject for chain Reject...14 Compiling /etc/shorewall/policy...15 Running /etc/shorewall/initdone...16 Compiling Kernel Route Filtering...17 Compiling Martian Logging...18 Compiling /etc/shorewall/masq...19 Compiling MAC Filtration -- Phase 1...20 Compiling /etc/shorewall/rules...21 Compiling /usr/share/shorewall/action.Invalid for chain %Invalid...22 Compiling MAC Filtration -- Phase 2...23 Applying Policies...24 Generating Rule Matrix...25 Creating iptables-restore input...26 Shorewall configuration compiled to /var/lib/shorewall/.start27 Starting Shorewall....28 Initializing...29 Processing /etc/shorewall/init ...30 Processing /etc/shorewall/tcclear ...31 Setting up Route Filtering...32 Setting up Martian Logging...33 Setting up Proxy ARP...34 Setting up Traffic Control...35 Preparing iptables-restore input...36 Running /sbin/iptables-restore...37 Processing /etc/shorewall/start ...38 Processing /etc/shorewall/started ...39 done.برنامه ‏3‑3 خروجی shorwall startدر جدول ‏3‑1 به بررسی رخ داد‌ها در فاز شروع shorewall می‌پردازیم.جدول ‏3‑1 shorewall startupدر این قسمت با اتفاقاتی که در مرحله‌ی ابتدایی داد آشنا شدیم در قسمت بعدی با استفاده ازفرمان shorewall trace check –r به بررسی shorewall می‌پردازیم.خروجی فرمان shorewall trace check –r تعداد ۱۴۰۰ خط است که از آوردن تمام خطوط در این مستند خود داری می‌شود.برنامه ‏3‑4 خروجی فرمان shorewall trace ckeck –r است که نمایش میدهد چه environmentهایی اضافه و تغییر داده شده‌اند1 Checking...2 Processing /etc/shorewall/params ...3 Params:4 export DISPLAY='localhost:10.0'5 export HOME='/root'6 export LANG='en_US.UTF-8'7 export LANGUAGE='en_US:'8 export LESSCLOSE='/usr/bin/lesspipe %s %s'9 export LESSOPEN='| /usr/bin/lesspipe %s'10 export LOGNAME='root'11 export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37; 44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;3 1:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar= 01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35 :*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:* .mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc =01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35: *.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga =00;36:*.spx=00;36:*.xspf=00;36:'12 export MAIL='/var/mail/root'13 export PATH='/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin'14 export PWD='/root'15 export SHELL='/bin/bash'16 export SHLVL='1'17 export SSH_CLIENT='172.30.120.97 1853 30000'18 export SSH_CONNECTION='172.30.120.97 1853 172.30.120.110 30000'19 export SSH_TTY='/dev/pts/0'20 export TERM='xterm'21 export USER='root'22 export XDG_SESSION_COOKIE='601f24b9e443f2476b290a730000016b-1477977737.426237-1167493392'23 export _='/sbin/shorewallبرنامه ‏3‑4 خروجی فرمان Check در shorewallخروجی فرمان shorewall trace ckeck –r دارای قسمت‌های مختلفی است که می‌توان کانفیگ‌های خود shorewall را هم با استفاده از این فرمان مشاهده کرد.پیکربندی‌های shorewall را نمایش می‌دهد که قسمتی از آن را در اینجا آورده شده است.پیکربندی‌های shorewall در مسیر /etc/shorewall/shorewall.confاست.Processing /etc/shorewall/shorewall.conf...IN===> STARTUP_ENABLED=YesIN===> VERBOSITY=1IN===> BLACKLIST_LOGLEVEL=IN===> LOG_MARTIANS=YesIN===> LOG_VERBOSITY=2IN===> LOGALLNEW=IN===> LOGFILE=/var/log/messagesIN===> LOGFORMAT=&quotShorewall:%s:%s:&quotIN===> LOGTAGONLY=NoIN===> LOGLIMIT=IN===> MACLIST_LOG_LEVEL=infoIN===> SFILTER_LOG_LEVEL=infoIN===> SMURF_LOG_LEVEL=infoIN===> STARTUP_LOG=/var/log/shorewall-init.logIN===> TCP_FLAGS_LOG_LEVEL=infoIN===> CONFIG_PATH=&quot/etc/shorewall:/usr/share/shorewall&quotIN===> IPTABLES=IN===> IP=IN===> IPSET=IN===> MODULESDIR=IN===> PATH=&quot/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin&quotIN===> PERL=/usr/bin/perlIN===> RESTOREFILE=restoreIN===> SHOREWALL_SHELL=/bin/shIN===> SUBSYSLOCK=&quot&quotIN===> TC=IN===> ACCEPT_DEFAULT=noneIN===> DROP_DEFAULT=DropIN===> NFQUEUE_DEFAULT=noneIN===> QUEUE_DEFAULT=noneIN===> REJECT_DEFAULT=RejectIN===> RCP_COMMAND='scp ${files} ${root}@${system}:${destination}'IN===> RSH_COMMAND='ssh ${root}@${system} ${command}'IN===> ACCOUNTING=YesIN===> ACCOUNTING_TABLE=filterIN===> ADD_IP_ALIASES=NoIN===> ADD_SNAT_ALIASES=NoIN===> ADMINISABSENTMINDED=YesIN===> AUTO_COMMENT=YesIN===> AUTOMAKE=NoIN===> BLACKLISTNEWONLY=YesIN===> CLAMPMSS=NoIN===> CLEAR_TC=YesIN===> COMPLETE=NoIN===> DELETE_THEN_ADD=Yesبرنامه ‏3‑5 پیکربندی shorewallبرنامه ‏3‑6 دستورات iptables اجرا شده را توسط shorewall نمایش می‌دهد1 SYS----> /sbin/iptables -N fooX70902 SYS----> /sbin/iptables -N foo1X70903 SYS----> /sbin/iptables -A fooX7090 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT4 SYS----> /sbin/iptables -A fooX7090 -p tcp -m multiport --dports 21,22 -j ACCEPT5 SYS----> /sbin/iptables -A fooX7090 -p tcp -m multiport --sports 60 -m multiport --dports 99 -j ACCEPT6 SYS----> /sbin/iptables -t nat -L -n7 SYS----> /sbin/iptables -t nat -N fooX70908 SYS----> /sbin/iptables -t nat -A fooX7090 -j SNAT --to-source 1.2.3.4 --persistent9 SYS----> /sbin/iptables -t nat -F fooX709010 SYS----> /sbin/iptables -t nat -X fooX709011 SYS----> /sbin/iptables -t mangle -L -n12 SYS----> /sbin/iptables -A fooX7090 -m conntrack --ctorigdst 192.168.1.1 -j ACCEPT13 SYS----> /sbin/iptables -A fooX7090 -m conntrack -p tcp --ctorigdstport 22 -j ACCEPT14 SYS----> /sbin/iptables -A fooX7090 -m conntrack ! --ctorigdst 1.2.3.415 SYS----> /sbin/iptables -A fooX7090 -p tcp -m multiport --dports 21,22 -j ACCEPT16 SYS----> /sbin/iptables -A fooX7090 -p tcp -m multiport --dports 21:22 -j ACCEPT17 SYS----> /sbin/iptables -A fooX7090 -m policy --pol ipsec --mode tunnel --dir in -j ACCEPT18 SYS----> /sbin/iptables -A fooX7090 -m physdev --physdev-in eth0 -j ACCEPT19 SYS----> /sbin/iptables -A fooX7090 -m physdev --physdev-is-bridged --physdev-in eth0 --physdev-out eth1 -j ACCEPT20 SYS----> /sbin/iptables -A fooX7090 -m iprange --src-range 192.168.1.5-192.168.1.124 -j ACCEPT21 SYS----> /sbin/iptables -A fooX7090 -m recent --update -j ACCEPT22 SYS----> /sbin/iptables -A fooX7090 -m owner --uid-owner 0 -j ACCEPT23 SYS----> /sbin/iptables -A fooX7090 -m connmark --mark 2 -j ACCEPT24 SYS----> /sbin/iptables -A fooX7090 -m connmark --mark 2/0xFF -j ACCEPT25 SYS----> /sbin/iptables -A fooX7090 -p tcp -m ipp2p --edk -j ACCEPT26 iptables v1.4.12: Couldn't load match `ipp2p':No such file or directory27 Try `iptables -h' or 'iptables --help' for more information.28 SYS----> /sbin/iptables -A fooX7090 -m length --length 10:20 -j ACCEPT29 SYS----> /sbin/iptables -A fooX7090 -j REJECT --reject-with icmp-host-prohibited30 SYS----> /sbin/iptables -A fooX7090 -j ACCEPT -m comment --comment &quotThis is a comment&quot31 SYS----> /sbin/iptables -A fooX7090 -m hashlimit --hashlimit 3/min --hashlimit-burst 3 --hashlimit-name fooX7090 --hashlimit-mode srcip -j ACCEPT32 SYS----> /sbin/iptables -A fooX7090 -m hashlimit --hashlimit-upto 3/min --hashlimit-burst 3 --hashlimit-name fooX7090 --hashlimit-mode srcip -j ACCEPT33 SYS----> /sbin/iptables -t mangle -A fooX7090 -j MARK --set-mark 134 SYS----> /sbin/iptables -t mangle -A fooX7090 -j MARK --and-mark 0xFF35 SYS----> /sbin/iptables -t mangle -A fooX7090 -j MARK --set-mark 1/0xFF36 SYS----> /sbin/iptables -t mangle -A fooX7090 -j CONNMARK --save-mark37 SYS----> /sbin/iptables -t mangle -A fooX7090 -j CONNMARK --save-mark --mask 0xFF38 SYS----> /sbin/iptables -t mangle -A fooX7090 -j CLASSIFY --set-class 1:139 SYS----> /sbin/iptables -t mangle -A fooX7090 -j IPMARK --addr src40 iptables v1.4.12: unknown option &quot--addr&quot41 Try `iptables -h' or 'iptables --help' for more information.42 SYS----> /sbin/iptables -t mangle -A fooX7090 -p tcp -j TPROXY --on-port 0 --tproxy-mark 143 SYS----> /sbin/iptables -t mangle -F fooX709044 SYS----> /sbin/iptables -t mangle -X fooX709045 SYS----> /sbin/iptables -t mangle -L FORWARD -n46 SYS----> /sbin/iptables -t raw -L -n47 SYS----> /sbin/iptables -t rawpost -L -n 48 iptables v1.4.12: can't initialize iptables table `rawpost': Table does not exist (do you need to insmod?)49 Perhaps iptables or your kernel needs to be upgraded.50 SYS----> /sbin/iptables -A fooX7090 -m pkttype --pkt-type broadcast -j ACCEPT51 SYS----> /sbin/iptables -A fooX7090 -m addrtype --src-type BROADCAST -j ACCEPT52 SYS----> /sbin/iptables -A fooX7090 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1000:1500 -j ACCEPT53 SYS----> /sbin/iptables -A fooX7090 -j NFQUEUE --queue-num 454 SYS----> /sbin/iptables -A fooX7090 -m realm --realm 155 SYS----> /sbin/iptables -A fooX7090 -m helper --helper &quotftp&quot56 SYS----> /sbin/iptables -A fooX7090 -m connlimit --connlimit-above 857 SYS----> /sbin/iptables -A fooX7090 -m time --timestart 11:0058 SYS----> /sbin/iptables -A fooX7090 -g foo1X709059 SYS----> /sbin/iptables -A fooX7090 -j LOG60 SYS----> /sbin/iptables -A fooX7090 -j ULOG61 SYS----> /sbin/iptables -A fooX7090 -j NFLOG62 SYS----> /sbin/iptables -A fooX7090 -j LOGMARK63 iptables v1.4.12: Couldn't load target `LOGMARK':No such file or directory64 Try `iptables -h' or 'iptables --help' for more information.65 SYS----> /sbin/iptables -A fooX7090 -j MARK --set-mark 566 SYS----> /sbin/iptables -A fooX7090 -j ACCOUNT --addr 192.168.1.0/29 --tname fooX709067 iptables v1.4.12: unknown option &quot--addr&quot68 Try `iptables -h' or 'iptables --help' for more information.69 SYS----> /sbin/iptables -A fooX7090 -j AUDIT --type drop70 SYS----> /sbin/iptables -A fooX7090 -m condition --condition foo71 iptables v1.4.12: Couldn't load match `condition':No such file or directory72 Try `iptables -h' or 'iptables --help' for more information.73 SYS----> /sbin/iptables -S INPUT74 SYS----> /sbin/iptables -F fooX709075 SYS----> /sbin/iptables -X fooX709076 SYS----> /sbin/iptables -F foo1X709077 SYS----> /sbin/iptables -X foo1X7090برنامه ‏3‑6 دستورات iptablesبرای بررسی deamen در shorewall به همین موارد اکتفا می‌کنیم به بررسی نمودارهای اجرایی آن می‌پردازیمدر شکل ‏3‑5 مشاهده می‌کنید که نرم‌افزار shorewall در صورت تغییر وضعیت در چه حالت‌هایی وارد می‌شود.شکل ‏3‑7 ‌state diagram shorewallدر فوچارت نمایش داده شده در شکل ‏3‑6 می‌توان روند کاری درshorewall را مشاهده کردشکل ‏3‑6 فلوچارت اجرای shorewallدر این قسمت بررسی shorewall به پایان رسید در صورت نیاز به بررسی‌های بیشتر می‌توان به manualآن مراجعه کرد و یا این که به سایت رفت ونیاز‌های خود را استخراج کرد.3-3 آموزش UFWابزار ufw به صورت پیش‌فرض برای لینوکس انتخاب شده و بر روی آن نصب شده است. این ابزار این امکان را فراهم می‌آورند تا بتوان راحتر از قابلیت‌های iptablesاستفاده کرد. در این قسمت به بررسی دقیق این ابزار می‌پردازیم و این که با چندین مثال و نمونه با این ابزار آشنا می‌شویم.برای استفاده از UFW می‌توان به دوصورت عمل کرد:1. اعمال تنظیمات توسط فرمان ufw2. اعمال تنظیمات با استفاده از تغییرات در فایل پیکربندی مربوط به UFWدر ابتدا به اعمال تنظیمات توسط فرمان UFW می‌پردازیم.3-4 فرمان UFWزمانی که برای اولین بار فرمان UFW را فعال می‌شود مجموعه‌ای از قوانین که به صورت پیش‌فرض تعیین شده‌اند اجرا می‌شوند. و ما می‌توانیم این قوانین را تغییر دهیم اما در این قسمت به آن پرداخته نمی‌شود و در این قسمت فقط به نحوه‌ی استفاده از UFWپرداخته می‌شود.برای فعال کردن UFW از برنامه ‏3‑8 استفاده می‌شود.Sudo ufw enableبرنامه ‏3‑8 enable commandبرای بررسی وضعیت UFW از برنامه ‏3‑9 استفاده می‌شودsudo ufw status verboseبرنامه ‏3‑9 status commandتوجه کنید که باenable کردن UFW، فایروال به deny کردن برخی از ورودی‌ها می‌پردازد که شما می‌توانید استثناها را با وارد کردن دستور برنامه ‏3‑10 مشاهده کنیدSudo ufw status verboseبرنامه ‏3‑10 status commandبرای غیر فعال کردن UFW از برنامه ‏3‑11 استفاده می‌کنیمSudo ufw desableبرنامه ‏3‑11 disable3-4-1 نحوه‌یAllow و denyبرای این که یک قانونی را Allow کنیم مانند برنامه ‏3‑12 عمل می‌کنیمsudo ufw allow <port>/<optional: protocol>برنامه ‏3‑12 port and IPبرای درک بهتر چندین مثال و نمونه در ادامه آورده شده است.فرمانی که اجازه‌ی ورود و خروج را برای پروتکل‌های tcpو udp بر روی پورت 53 می‌دهد برنامه ‏3‑13sudo ufw allow 53برنامه ‏3‑13 port allowفرمانی که اجازه‌ی ورود و خروج را برای پروتکل‌های tcpبر روی پورت 53 می‌دهد برنامه ‏3‑14sudo ufw allow 53/tcpبرنامه ‏3‑14 port allowفرمانی که اجازه‌ی ورود و خروج را برای پروتکل‌هایudpبر روی پورت 53 می‌دهد برنامه ‏3‑15sudo ufw allow 53/udpبرنامه ‏3‑15 allow portفرمانی که به deny کردن برخی بسته‌های شبکه‌ و یا ترافیک می‌پردازد مانند برنامه ‏3‑16 استsudo ufw allow <port>/<optional: protocol>برنامه ‏3‑16 allow port and protocolفرمانی که پروتکل‌های udp و tcp را بر روی پورت ۵۳ می‌بندد. برنامه ‏3‑17sudo ufw deny 53برنامه ‏3‑17 deny portفرمانی که پروتکل tcp را که به صورت ورودی هستند را بر روی پورت ۵۳ می‌بندد. برنامه ‏3‑18sudo ufw deny 53/tcpبرنامه ‏3‑18 dny port and protocolفرمانی که پروتکل udp را که به صورت ورودی هستند را بر روی پورت ۵۳ می‌بندد. برنامه ‏3‑19sudo ufw deny 53/udpبرنامه ‏3‑19 deny port and protocol3-4-2 حذف یک قانونفرض کنید که یک فرمان مانند برنامه ‏3‑20 را وارد کرده‌اید و می‌خواهید آن را حذف کنید.ufw deny 80/tcpبرنامه ‏3‑20 deny port and protocolبرای حذف این فرمان می‌توانید از برنامه ‏3‑21 استفاده کنیدsudo ufw delete deny 80/tcpبرنامه ‏3‑21 delete rule3-4-3 سرویس‌هابرای allow کردن یک سرویس مانند برنامه ‏3‑22 عمل می‌کنیمsudo ufw allow <service name>برنامه ‏3‑22 allow or deny serviceفرض کنید که می‌خواهید سرویسی را مانند ssh را که بر روی سیستم deny شده را allow کنید از برنامه ‏3‑23 برای انجام این کار استفاده می‌کنیم.sudo ufw allow sshبرنامه ‏3‑23 ssh enable3-4-4 مشاهده‌ی وضعیتبرای مشاهده‌ی وضعیت می‌توانید از دستور برنامه ‏3‑24 استفاده کنیدsudo ufw statusبرنامه ‏3‑24 statusبرنامه ‏3‑24 وضعیت قوانینی که با Iptables اعمال شده را نمایش می دهد که خروجی آن مانند برنامه ‏3‑25 استFirewall loadedTo Action From-- ------ ----22:tcp DENY 192.168.0.122:udp DENY 192.168.0.122:tcp DENY 192.168.0.722:udp DENY 192.168.0.722:tcp ALLOW 192.168.0.0/2422:udp ALLOW 192.168.0.0/24برنامه ‏3‑25 rule list3-4-5 اعمال قوانین پیشرفتهبرای اعمال قوانین پیشرفته با استفاده از ufw چندین مثال را دنبال می‌کنیم.برای allow کردن یک ip خاص مانند برنامه ‏3‑26 استفاده می‌کنیم.sudo ufw allow from <ip address>برنامه ‏3‑26 sowcific IPبه عنوان مثال تمام بسته‌ها از سمت 172.30.120.12اجازه‌ی ورود را داشته باشند برنامه ‏3‑27sudo ufw allow from 172.30.120.12برنامه ‏3‑27 specific IPدر صورتی که قصد داشتیم اجازه‌ی ورود برای بسته‌های یک subnetخاص مانند 172.30.120.0/24صادر کنیم می‌توانیم از برنامه ‏3‑28 استفاده کنیمsudo ufw allow from 172.30.120.0/24برنامه ‏3‑28 allow fromدر صورتی که قصد داشتیم یک ip و یا پورت خاص را aloow یا deny کنیم مانند برنامه ‏3‑29 عمل می‌کنیمsudo ufw allow from <target> to <destination> port <port number>برنامه ‏3‑29 ip , portبه عنوان نمونه قصد داریم تمامی پروتکل‌ها از ip 192.168.1.5 با پورت 22 اجازه‌ی ورود را داشته باشند برنامه ‏3‑30sudo ufw allow from 192.168.1.5 to any port 22برنامه ‏3‑30 ip , portبرای مشخص کردن این که یک ip خواص با یک پورت و پروتکل خواص می‌تواند وارد شود مانند برنامه ‏3‑31 عمل می‌کنیم.sudo ufw allow from <target> to <destination> port <port number> proto <protocol name>برنامه ‏3‑31ip , port , protocolبه عنوان نمونه ip 192.168.1.5 همراه با پورت 22 و پروتکل tcp اجازه‌ی ورود را دارد. برنامه ‏3‑32sudo ufw allow from 192.168.0.4 to any port 22 proto tcpبرنامه ‏3‑32 ip , port , protocolنکته) در صورتی که در فرمان‌های گفته شده به جای کلمه‌ی allow از deny استفاده کنید نتیجه‌ی کار deny خواهد شد.برای فعال کردن یا غیر فعال کردن ping باید فایل etc/ufw/before.rules را تغییر دهید.زمانی که وارد /etc/ufw/before.rules می‌شوید تمامی خطوط زیر را (برنامه ‏3‑33 ) پیدا کرده و پاک کنید.# ok icmp codes-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPTبرنامه ‏3‑33 ping dropو یا این که ACCEPT را به DROP تغییر دهید. برنامه ‏3‑34# ok icmp codes-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP-A ufw-before-input -p icmp --icmp-type source-quench -j DROP-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP-A ufw-before-input -p icmp --icmp-type echo-request -j DROPبرنامه ‏3‑34 ping drop3-4-6 نحوه‌ی NAT با UFWبرای NAT کردن با استفاده از UFW باید که در ابتدا وارد /etc/default شده و خط DEFAULT_FORWARD_POLICY را به DEFAULT_FORWARD_POLICY="ACCEPT”تغییر دهیم.همان گونه که می‌دانیم سرویس‌ها پارامتر‌های مورد نیاز خورد را در /etc/default قرار می‌دهند تا در زمان قبل از start اعمال شوند.در مرحله‌ی بعد برای NAT کردن باید IP_FORWARD بر روی سیستم فعال کنیم برای این کار وارد /etc/ufw/sysctl.conf شده و مقدار ip_forward را برابر یک می‌کنیم. برنامه ‏3‑35net.ipv4.ip_forward=1#net/ipv6/conf/default/forwarding=1#net/ipv6/conf/all/forwarding=1برنامه ‏3‑35 enable ip_forwardingدر مرحله‌ بعد نوبت به اعمال NAT می‌رسد. برای این کار را به انتهای فایل /etc/ufw/before.rulesقبل از filter ruleاستفاده می‌شود. برنامه ‏3‑36# NAT table rules*nat:POSTROUTING ACCEPT [0:0]# Forward traffic through eth0 - Change to match you out-interface-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE# don't delete the 'COMMIT' line or these nat table rules won't# be processedCOMMITبرنامه ‏3‑36 natبا اعمال آدرس‌های 192.168.1.0/24 به ip اینترفیس eth0 ترجمه می‌شوند.در انتها برای اعمال تغییرات فرمان برنامه ‏3‑37 را اجرا کنیدsudo ufw disable && sudo ufw enableبرنامه ‏3‑37 راه اندازی مجدد3-4-7 بررسی دقیق تر UFWخود Ufw دو امکان command lineو یک framework را فراهم آورده تا این که بتوان netfilter را مدیریت کرد. در حالی که ufw framework یک روشی را برای مدیریت و شخصی سازی رفتار‌های پیش فرض فراهم می‌آورد.چارچوب یا Frameworkمواردی را شامل مقدار اولیه دهی در زمان boot، وجود rules file برای افزودن یک rule جدید، روشی برای load کردن moduleهای مورد نیاز یا پیکربندی پارامتر‌های کرنل و ipv6 شامل می‌شود که این‌ها عبارتند از:/lib/ufw/ufw-initاسکریپت مقدار دهی اولیه /etc/ufw/before[6].rules4 مراجع“List of router and firewall distributions,” Wikipedia. 19-Oct-2016.[2] “1.1. Partial List of Features.” [Online]. Available: http://www.ipcop.org/2.0.0/en/install/html/features.html. [Accessed: 22-Oct-2016].[3] “pfSense,” Wikipedia. 15-Oct-2016.[4] “Express Feature List.” [Online]. Available: http://www.smoothwall.org/about/express-feature-list/. [Accessed: 22-Oct-2016].[5] “Open Source Firewall Features | Endian Firewall Community,” Securing everyThing: Firewall, UTM, Hotspot, VPN, IoT. .[6] “ClearOS,” Wikipedia. 14-Oct-2016.[7] “m0n0wall - Features.” [Online]. Available: http://m0n0.ch/wall/features.php. [Accessed: 22-Oct-2016].[8] “www.ipfire.org - About IPFire.” [Online]. Available: http://www.ipfire.org/features. [Accessed: 22-Oct-2016].[9] “Alpine Linux,” Wikipedia. 11-Oct-2016.[10] “LibreSSL,” Wikipedia. 17-Oct-2016.[11] “OPNsense firewall features.” [Online]. Available: https://docs.opnsense.org/. [Accessed: 25-Oct-2016].[12] “Devil Linux - Features.” [Online]. Available: http://www.devil-linux.org/product/features.php. [Accessed: 25-Oct-2016].[13] “Untangle Documentation.” [Online]. Available: https://wiki.untangle.com/index.php/Main_Page. [Accessed: 25-Oct-2016].[14] “Feature list - VyOS.” [Online]. Available: http://wiki.vyos.net/wiki/Feature_list. [Accessed: 25-Oct-2016].[15] “iptables-extensions.” [Online]. Available: http://ipset.netfilter.org/iptables-extensions.man.html. [Accessed: 30-Oct-2016].برای تماس با بنده می‌توانید از لینک زیر استفده کنید https://teaching.iranmodares.com/teaching-index.php?metaword=%D9%85%D8%AD%D9%85%D8%AF+%D8%AD%D8%B3%DB%8C%D9%86+%D8%AC%D9%84%DB%8C%D9%84%DB%8C