فایروال چیست؟ درباره انواع فایروال ها
فایروال چیست؟
فایروال یا دیواره آتش یک سیستم نرمافزاری یا سخت افزاری است که ترافیک های وارد شده و خارج شده از یک درگاه یا Gateway رو آنالیز می کند و مبنی بر نوع قوانین و سیاست هایی که برای آن تعیین می شود، اجازه(Allow) یا عدم اجازه(Deny) ورود یا خروج اطلاعات از این درگاه رو صادر میکنه.
هدفعمده آنها نیز مشخصاً امن کردن شبکه و اعمال محدودیت بر درگاههای ورودی یا خروجیه که چه بسته هایی از آن خرج و یا به آن وارد شوند.
پیشرفت و نوع فایروالها سه نسل رو طی کرده است :
نسل اول فایروالها یا FirstGeneration که وظیفه Packet Filtering را دارند.
همانگونه که در مدل OSI مطرح شده است می توان گفت که بحث Packet روی لایه سوم این مدل مطرح می شود.در واقع این نسل از فایروالها تا لایه سوم مدل OSI می توانستند اطلاعات رو کنترل و آنالیز کنند و با توجه به اطلاعاتی که بدست می آید و قوانینی که برای این فایروال مشخص می شود، به فیلتر کردن Packet ها و البته Frame ها (لایه 2) می پردازند.
حالا یک ایراد مطرح می شود؟ و آن اینکه این فایروال State یک Packet را شناسایی نمی کند. به عنوان مثال نمی تواند در حوضه که این ورودی مربوط به یک Connection جدید است یا یک Connection که قبلاً وجود داشته است شناسایی داشته باشد . بدین معنی که شناسایی فقط مربوط به حوضه منبع(Source) و مقصد ِ(Destination) می شود و دلیل ورود و خروج براش مهم نیست!
برای درک بهتر این قضیه رو یک مثال ساده را از از پروتکل و کانکشن ftp مطرح می کنیم و مشکلساز شدن این سری از فایروال ها را می بینیم:
ارتباط FTP Active یک ارتباط به صورت زیر می باشد:
1 – کلاینت درخواست رو به سمت سرور FTP فرستاده و یک Concetion ایجاد می کند (برای مثال از پورت 1026 خود به پورت 21 سرور)
2 – سرور به conccetion کلاینت جواب می دهد (سرور پاسخ را از پورت 21 خودش به پورت 1026 کلاینت میفرستد)
3 – سرور یک conncetion به کلاینت برای ارسال اطلاعات ایجاد می کند (سرور از پورت 20 خود یک کانکشن به پورت 1027 کلاینت ایجاد می کند)
4 – کلاینت قبول می کند و اطلاعات رو دریافت می کند.
حال اگر کلاینت از یک فایروال نسل اول استفاده کند، فایروال مرحله 3 جلوی آن را گرفته و آن ارتباط شناسایی نشده بین پورت های 20 و 1027 است.
فایروال نمی تواند قبول کند که این اجازه این ارتباط قبلاً 21 و 1026 صادر شده است و در آن لحضه هدف استفاده از همان پورت ها است. (که برای راه حل مشکل ساز شدن این سری فایروال ها، پروتکل FTP Passive ایجاد شد)
نسل دوم فایروالها یا Second Generation یا Stateful Filtering که مربوط به فایروالهایی است که تا لایه 4 مدل OSI میان بالا و State و حالت Connection را شناسایی می کنند.
این فایروالها قابلیت شناسایی اتفاقاتی که مانند مثال زده شده بود را دارند.
نسل سوم فایروالها یا Third Generation فایروالهای application layer هستند
این نوع فایروالها تا لایه هفتم مدل OSI میتونن شناسایی کرده و می توانند در کنترل ترافیک بسیار هوشمندانهتر عمل کنند زیرا می توان اطلاعات زیادی را از لایه اپلیکیشن برای آنها تحلیل کرد.
برای مثال می تواند ترافیک از نوع DNS رو تشخیص دهد و یا نوع محتوای HTTP را شناسایی کند. ( حتی در صورت استفاده از یک پورت نامتعارف). که فایروال پاوان از این دسته از فایروال ها است.
انواع مختلف فایروال
1. فایروالهای Network-Level
که معمولاً از نسل اول و نسل دوم فایروالها هستند
وظیفه این فایروالها Packet Filtering است که حالا این را یا به صورت Stateless (نسل اول) یا به صورت Stateful (نسل دوم) می توانند انجام دهند.
عملکرد آنها به این صورت است که Packet ها و Frame هایی که وارد می شوند را بازرسی می کنند و بر آنها اعمال قانون می کنند و هما نطور که ذکر شد حداکثر تا لایه 4 مدل OSI رو شناسایی و هندل می کنند این سری از فایروالها امروزه دراکثریت روترها و سوئیچها دیده می شود.برای مثال کسانی که با روترهای سیسکو کار کرده باشند و مفهوم Access List ها رو بدانند، در واقع از همین نوع فایروال در حال استفاده می باشند و حتی اکثر روترهای خانگی (مودم ایدیاسال/روتر/سویچ/اکسس پوینت) به این نوع فایروال ها مجهز هستن و میتونن پکت فیلترینگ انجام دهند.
مزیت اصلی این فایروالها سرعت خیلی بالای آنها است که خیلی سریع عمل می کنند و کانکشن ها را هندل می کنند. حالا اگر Stateless باشند معمولا از سرعت بالاتری برخوردار هستند (چون حافظه کمتری اشغال می کنند و به گذشته و آینده کاری ندارند! ) ولی اگر Stateful باشند سرعت نسبتا کمتری دارند زیرا باید که تاریخچه پکت را بررسی کند.ایراد عمده این نوع فایروال ها این است که محتوای پکت مهم نیست و برای انواع اعمال قانونها محدود است و نهایتا اینکه نسبت به بقیه فایروال ها قابلیت نفوذ بیشتری دارند..
2. فایروالهای Applicationlayer یا لایه 7
این نوع فایروالها که نسل سوم می باشند که قادر هستند تا لایه 7 را کنترل کنند و به همین دلیل بسیار نسبت به فایروالهای Networklayer بسیار متفاوت می توانند عمل کنند.مزیت این فایروالها بشناسایی و آنالیز در لایه هفتم می باشد، که می توانند محتوای اطلاعات رد و بدل شده را هم شناسایی و حتی بر اساس محتوا اعمال فیلتر کنند. مثلاً می توان از این فایروال برای بلاک کردن رد و بدل شدن موسیقی بین شبکه استفاده کرد. کاری که با فایروال سری قبل نمی توان انجام داد. چون در آن فایروال ها فقط مبدا و مقصد و پورت و پرتکل شناسایی می شود، ولی این سری از فایروالها می توانند محتوا رو هم بازرسی کنند و به طبع امکانات برای امن کردن ارتباطات بسیار بازتر خواهد. ضمنا به سیستم این سری از فایروالها می توان افزونههایی را هم اضافه کرد تا کارای بیشتری داشته باشند، مثلاً فایروال می تواند محتوا را نیز از لحاظ ویروس هم چک کند .
اما عیب بزرگی که وجود دارد آن است که معمولا سرعت کمتری نسبت به سایر سری های فایروال دارد. چون محتوای بیشتری در آن چک می شوذ.مثلاً یک فایروال به دنبال چک کردن درخواستی که برایش آمده هم از لحاظ کسی که درخواست را و اینکه چک کند که Authenticated هست یا خیر، سپس محتوا را بررسی کند که ویروسی هست یا خیر ، سپس این که چه اپلیکیشنی این درخواست را فرستاده (مثلاً یک Web Browser است یا یک مسنجر مثل یاهو مسنجر) بعد درخواست رو 2 تیکه کند، تیکه اول را به یک سرور بدهد و تیکه دوم رو به یک سرور دیگر (کاری که Reverse Proxy ها انجام میدن به نیت لود بالانس)، و یک محدودیت پهنای باند 128 را هم بر آن اعمال کند !
سختافزاری و نرمافزاری بودن فایروالها
تمامی فعالیت هایی که یک فایروال انجام می دهد در یک محیط نرمافزاری انجام می شود.
حالا اینکه این نرمافزار چطور ارائه شود و در اختیار مصرف کننده قرار گیرد متفاوت است.
اکثرا سازنده نرمافزار، نرمافزار را فروخته و به مشتری پیشنیازهای نرمافزاری و سختافزاری را اعلام می کند .
در بعضی مواقع سازنده نرمافزار را به همراه سختافزار ارایه می دهد.
که هر کدام مزایا و معایب دارند:
مزیت اصلی یک فایروال سختافزاری این است که اگر سازنده، سازنده معتبری باشد، اعضای آن سختافزار را طوری انتخاب و طراحی کرده است که با نرمافزار مربوطه به طور اساسی هماهنگی بسیار زیادی داشته باشد که سیستم firewall بتواند بهترین پرفورمنس و بازدهی رو داشته باشد. اما در حالت نرمافزاری اینگونه نیست. در واقع دیواره آتش هاي سخت افزاري ، دستگاههاي سخت افزاري مجزائی می باشند که داراي سیستم عاملاختصاصی خود می باشد. بنابراین بکارگیري آنان باعث ایجاد یک لایه دفاعی اضافه در مقابل تهاجمات می گردد. دیواره آتش هاي سخت افزاري در مواردي نظیر حفاظت چندین سیستم و حتی شبکه مفید بوده و یک سطح مناسب از امنیت را در کل شبکه ایجاد می کند. مدیر شبکه می تواند سیاسیت های کلی یا جزیی برای کل شبکه تبیین کند.از طرفی یک فایروال نرمافزاری می توانند ارزونتر باشند و فقط می توانند یک سیستم را محافظت کند.
یک فایروال امروزی چه وظایفی دارد و چه انتظاراتی باید از یک فایروال باید داشته باشیم:
کنترل ترافیک بر اساس IP (محل مبدا و مقصد)، Port (پرتکل انتقال داده) ، نام دامنه (نام محل مبدا و مقصد) ، نام یوزر، نوع محتوا (مثل موسیقی، فیلم، فایل rar)، نوع اپلیکیشن (مثلاً فایرفاکس از پورت 80 استفاده کند ولی یاهومسنجر استفاده نکند) و …
پاسکاری ترافیک به سمت سرورهای مختلف و تغییر آی پی (NAT) و تغییر پورت (PAT) برای این پاسکاری
لاگ کردن ثبت وقایع که “کی، کِی، برای چی، چیکار کرده ؟!”
کنترل پهنای باند
کَش کردن اطلاعات جهت تسریع سرعت
کنترل ویروس و حملات
هر کدوم از این عملکردها که یک فایروال انجام می دهد ، می تواند روی انتخاب فایروال تاثیر بگذارد.
و این سوال که ما به کدام سری از فایروال نیاز داریم و قصد انتخاب داریم (لایه نتوورکی یا لایه اپلیکیشن)
به چه امکاناتی نیاز داریم و به کدام نیاز نداریم.آیا نیاز ما فایروال سخت افزاری است یا نرم افزاری .
بعد از مشخص شدن کامل این نیاز ها سیستم مورد نیاز رو انتخاب کرده و در شبکه آن را Deploy می کنیم.