بخشی از مقاله
عنوان :
فایروال
( FireWall )
زیر نظر استاد ارجمند :
سرکار خانم نعمتی
گرد آورندگان :
محمد الیاسی – حسین کلانتری
بهار 86
مقدمه ای بر فایروال
فایروال وسیله ای است که کنترل دسترسی به یک شبکه را بنابر سیاست امنیتی شبکه تعریف می کند.علاوه بر آن از آنجایی که معمولا یک فایروال بر سر راه ورودی یک شبکه می نشیند لذا برای ترجمه آدرس شبکه نیز بکار گرفته می شود.
مشخصه های مهم یک فایروال قوی و مناسب جهت ایجاد یک شبکه امن عبارتند از:
1- توانایی ثبت و اخطار :ثبت وقایع یکی از مشخصه های بسیار مهم یک فایروال به شمار می شود و به مدیران شبکه این امکان را می دهد که انجام حملات را کنترل کنند. همچنین مدیر شبکه می تواند با کمک اطلاعات ثبت شده به کنترل ترافیک ایجاد شده توسط کاربران مجاز بپردازد. در یک روال ثبت مناسب ، مدیر می تواند براحتی به بخشهای مهم از اطلاعات ثبت شده دسترسی پیدا کند. همچنین یک فایروال خوب باید بتواند علاوه بر ثبت وقایع، در شرایط بحرانی، مدیر شبکه را از وقایع مطلع کند و برای وی اخطار بفرستد.
2- بازدید حجم بالایی از بسته های اطلاعات: یکی از تستهای یک فایروال ، توانایی آن در بازدید حجم بالایی از بسته های اطلاعاتی بدون کاهش چشمگیر کارایی شبکه است. حجم داده ای که یک فایروال می تواند کنترل کند برای شبکه های مختلف متفاوت است اما یک فایروال قطعا نباید به گلوگاه شبکه تحت حفاظتش تبدیل شود.عوامل مختلفی در سرعت پردازش اطلاعات توسط فایروال نقش دارند. بیشترین محدودیتها از طرف سرعت پردازنده و بهینه سازی کد نرم افزار بر کارایی فایروال تحمیل می شوند. عامل محدودکننده دیگر می تواند کارتهای واسطی باشد که بر روی فایروال نصب می شوند. فایروالی که بعضی کارها مانند صدور اخطار ، کنترل دسترسی مبنی بر URL و بررسی وقایع ثبت شده را به نرم افزارهای دیگر می سپارد از سرعت و کارایی بیشتر و بهتری برخوردار است.
3- سادگی پیکربندی: سادگی پیکربندی شامل امکان راه اندازی سریع فایروال و مشاهده سریع خطاها و مشکلات است.در واقع بسیاری از مشکلات امنیتی که دامنگیر شبکه های می شود به پیکربندی غلط فایروال بر می گردد. لذا پیکربندی سریع و ساده یک فایروال ، امکان بروز خطا را کم می کند. برای مثال امکان نمایش گرافیکی معماری شبکه و یا ابزرای که بتواند سیاستهای امنیتی را به پیکربندی ترجمه کند ، برای یک فایروال بسیار مهم است.
4- امنیت و افزونگی فایروال: امنیت فایروال خود یکی از نکات مهم در یک شبکه امن است.فایروالی که نتواند امنیت خود را تامین کند ، قطعا اجازه ورود هکرها و مهاجمان را به سایر بخشهای شبکه نیز خواهد داد. امنیت در دو بخش از فایروال ، تامین کننده امنیت فایروال و شبکه است:
الف- امنیت سیستم عامل فایروال : اگر نرم افزار فایروال بر روی سیستم عامل جداگانه ای کار می کند، نقاط ضعف امنیتی سیستم عامل ، می تواند نقاط ضعف فایروال نیز به حساب بیاید. بنابراین امنیت و استحکام سیستم عامل فایروال و بروزرسانی آن از نکات مهم در امنیت فایروال است.
ب- دسترسی امن به فایروال جهت مقاصد مدیریتی : یک فایروال باید مکانیزمهای امنیتی خاصی را برای دسترسی مدیران شبکه در نظر بگیرد. این روشها می تواند رمزنگاری را همراه با روشهای مناسب تعیین هویت بکار گیرد تا بتواند در مقابل نفوذگران تاب بیاورد.
انواع فایروال
انواع مختلف فایروال کم و بیش کارهایی را که اشاره کردیم ، انجام می دهند، اما روش انجام کار توسط انواع مختلف ، متفاوت است که این امر منجر به تفاوت در کارایی و سطح امنیت پیشنهادی فایروال می شود.بر این اساس فایروالها را به 5 گروه تقسیم می کنند.
1- فایروالهای سطح مدار (Circuit-Level): این فایروالها به عنوان یک رله برای ارتباطات TCP عمل می کنند. آنها ارتباط TCP را با رایانه پشتشان قطع می کنند و خود به جای آن رایانه به پاسخگویی اولیه می پردازند.تنها پس از برقراری ارتباط است که اجازه می دهند تا داده به سمت رایانه مقصد جریان پیدا کند و تنها به بسته های داده ای مرتبط اجازه عبور می دهند. این نوع از فایروالها هیچ داده درون بسته های اطلاعات را مورد بررسی قرار نمی دهند و لذا سرعت خوبی دارند. ضمنا امکان ایجاد محدودیت بر روی سایر پروتکلها ( غیر از TCP) را نیز نمی دهند.
2- فایروالهای پروکسی سرور : فایروالهای پروکسی سرور به بررسی بسته های اطلاعات در لایه کاربرد می پردازد. یک پروکسی سرور درخواست ارائه شده توسط برنامه های کاربردی پشتش را قطع می کند و خود به جای آنها درخواست را ارسال می کند.نتیجه درخواست را نیز ابتدا خود دریافت و سپس برای برنامه های کاربردی ارسال می کند. این روش با جلوگیری از ارتباط مستقیم برنامه با سرورها و برنامه های کاربردی خارجی امنیت بالایی را تامین می کند. از آنجایی که این فایروالها پروتکلهای سطح کاربرد را می شناسند ، لذا می توانند بر مبنای این پروتکلها محدودیتهایی را ایجاد کنند. همچنین آنها می توانند با بررسی محتوای بسته های داده ای به ایجاد محدودیتهای لازم بپردازند.
البته این سطح بررسی می تواند به کندی این فایروالها بیانجامد. همچنین از آنجایی که این فایروالها باید ترافیک ورودی و اطلاعات برنامه های کاربردی کاربر انتهایی را پردازش کند، کارایی آنها بیشتر کاهش می یابد. اغلب اوقات پروکسی سرورها از دید کاربر انتهایی شفاف نیستند و کاربر مجبور است تغییراتی را در برنامه خود ایجاد کند تا بتوان داین فایروالها را به کار بگیرد.هر برنامه جدیدی که بخواهد از این نوع فایروال عبور کند ، باید تغییراتی را در پشته پروتکل فایروال ایجاد کرد.
3- فیلترهای Nosstateful packet : این فیلترها روش کار ساده ای دارند. آنها بر مسیر یک شبکه می نشینند و با استفاده از مجموعه ای از قواعد ، به بعضی بسته ها اجازه عبور می دهند و بعضی دیگر را بلوکه می کنند. این تصمیمها با توجه به اطلاعات آدرس دهی موجود در پروتکلهای لایه شبکه مانند IP و در بعضی موارد با توجه به اطلاعات موجود در پروتکلهای لایه انتقال مانند سرآیندهای TCP و UDP اتخاذ می شود. این فیلترها زمانی می توانند به خوبی عمل کنند که فهم خوبی از کاربرد سرویسهای مورد نیاز شبکه جهت محافظت داشته باشند. همچنین این فیلترها می توانند سریع باشند چون همانند پروکسی ها عمل نمی کنند و اطلاعاتی درباره پروتکلهای لایه کاربرد ندارند.
4- فیلترهای ٍStateful Packet : این فیلترها بسیار باهوشتر از فیلترهای ساده هستند. آنها تقریبا تمامی ترافیک ورودی را بلوکه می کنند اما می توانند به ماشینهای پشتشان اجازه بدهند تا به پاسخگویی بپردازند. آنها این کار را با نگهداری رکورد اتصالاتی که ماشینهای پشتشان در لایه انتقال ایجاد می کنند، انجام می دهند.
این فیلترها ، مکانیزم اصلی مورد استفاده جهت پیاده سازی فایروال در شبکه های مدرن هستند.این فیلترها می توانند رد پای اطلاعات مختلف را از طریق بسته هایی که در حال عبورند ثبت کنند. برای مثال شماره پورت های TCP و UDP مبدا و مقصد، شماره ترتیب TCP و پرچمهای TCP. بسیاری از فیلترهای جدید Stateful می توانند پروتکلهای لایه کاربرد مانند FTP و HTTP را تشخیص دهند و لذا می تواننداعمال کنترل دسترسی را با توجه به نیازها و سرعت این پروتکلها انجام دهند.
5- فایروالهای شخصی : فایروالهای شخصی ، فایروالهایی هستند که بر روی رایانه های شخصی نصب می شوند.آنها برای مقابله با حملات شبکه ای طراحی شده اند. معمولا از برنامه های در حال اجرا در ماشین آگاهی دارند و تنها به ارتباطات ایجاد شده توسط این برنامه ها اجازه می دهند که به کار بپردازند نصب یک فایروال شخصی بر روی یک PC بسیار مفید است
زیرا سطح امنیت پیشنهادی توسط فایروال شبکه را افزایش می دهد. از طرف دیگر از آنجایی که امروزه بسیاری از حملات از درون شبکه حفاظت شده انجام می شوند ، فایروال شبکه نمی تواند کاری برای آنها انجام دهد و لذا یک فایروال شخصی بسیار مفید خواهد بود. معمولا نیازی به تغییر برنامه جهت عبور از فایروال شخصی نصب شده (همانند پروکسی) نیست.
موقعیت یابی برای فایروال
محل و موقعیت نصب فایروال همانند انتخاب نوع صحیح فایروال و پیکربندی کامل آن ، از اهمیت ویژه ای برخوردار است. نکاتی که باید برای یافتن جای مناسب نصب فایروال در نظر گرفت عبارتند از :
موقعیت و محل نصب از لحاظ توپولوژیکی : معمولا مناسب به نظر می رسد که فایروال را در درگاه ورودی/خروجی شبکه خصوصی نصب کنیم. این امر به ایجاد بهترین پوشش امنیتی برای شبکه خصوصی با کمک فایروال از یک طرف و جداسازی شبکه خصوصی از شبکه عمومی از طرف دیگر کمک می کند.
قابلیت دسترسی و نواحی امنیتی : اگر سرورهایی وجود دارند که باید برای شبکه عمومی در دسترس باشند ، بهتر است آنها را بعد از فایروال و در ناحیه DMZ قرار دهید. قرار دادن این سرورها در شبکه خصوصی وتنظیم فایروال جهت صدور اجازه به کاربران خارجی برای دسترسی به این سرورها برابر خواهد بود با هک شدن شبکه داخلی. چون شما خود مسیر هکرها را در فایروال باز کرده اید. در حالی که با استفاده از ناحیه DMZ ، سرورهای قابل دسترسی برای شبکه عمومی از شبکه خصوصی شما بطور فیزیکی جدا هستند، لذا اگر هکرها بتوانند به نحوی به این سرورها نفوذ کنند بازهم فایروال را پیش روی خود دارند.
مسیریابی نامتقارن : بیشتر فایروالهای مدرن سعی می کنند اطلاعات مربوط به اتصالات مختلفی را که از طریق آنها شبکه داخلی را به شبکه عمومی وصل کرده است، نگهداری کنند. این اطلاعات کمک می کنند تا تنها بسته های اطلاعاتی مجاز به شبکه خصوصی وارد شوند. در نتیجه حائز اهمیت است که نقطه ورود و خروج تمامی اطلاعات به/از شبکه خصوصی از طریق یک فایروال باشد.
فایروالهای لایه ای : در شبکه های با درجه امنیتی بالا بهتر است از دو یا چند فایروال در مسیر قرار گیرند. اگر اولی با مشکلی روبرو شود، دومی به کار ادامه می دهد.معمولا بهتر است دو یا چند فایروال مورد استفاده از شرکتهای مختلفی باشند تا در صورت وجود یک اشکال نرم افزاری یا حفره امنیتی در یکی از آنها ، سایرین بتوانند امنیت شبکه را تامین کنند.
فایروال ها چگونه کار می کنند؟
کامپیوتر خود را رویین تن کنید
اگر مدت زیادی است با اینترنت سروکار دارید،به احتمال زیاد لغت فایروال(firewall)برایتان آشناست.فایروال درست مثل دیواره ای که مانع گسترش آتش از قسمتی به قسمت دیگر می شود،عمل می کند وازهجوم انواع خطرات به شبکه محلی شما و یا کامپیوتر متصل به اینترنت جلو گیری می کند.به زبان ساده یک فایروال یک برنامه با یک قطعه سخت افزاری است که در محل اتصال شبکه شما به اینترنت قرار میگیردو اطلاعاتی را که میان رایانه های شما و اینترنت رد و بدل می شود، کنترل می کند.
برای اینکه با لزوم استفاده از فایروال آشنا شوید،فرض کنید شبکه شما بدون استفاده از فایروال به اینترنت وصل شود.در این صورت هر کسی می تواند به آسانی به هریک از رایانه هایتان دست یابد،آنرا بررسی و با آن اتصالFtpیاTelnetبر قرارکند،در آن صورت فکرش را بکنید که شبکه شما چه وضعی پیدا خواهد کرد.ولی با نصب فایروال در محل مناسب،اوضاع کاملا عوض می شود.در این صورت شما می توانید با تنظیم فیلترهای فایروال،قوانین مورد نظر خود را روی شبکه تان اعمال کنید.
تعیین کنید که کاربران شبکه شما میتوانند به چه سایت هایی وصل شوندواجازه دارند چه فایل هایی را به اینترنت بفرستند ودریافت کنند.به این ترتیب براحتی میتوانید رایانه تان را مدیریت کنید.حالکه اهمیت فایروال روشن شد،به تنظیمات آن می پردازیم.فایر وال قابل تنظیم است،یعنی شما می توانید به تناسب کارتان و انتظاری که ازآن دارید فیلترهایی را به آن اضافه یا کم کنید.این که فایروال هنگام عبور دادن اطلاعات از خودش،به چه نوع اطلاعاتی توجه کند و کدام نوع آن را بررسی کرده و جلویعبور آنها را بگیرد،به نظر شما بستگی دارد.می توانید با تنظیم هر کدام از موارد زیر به فایروال دیکته کنیدکه چطور عمل کند:
1)نشانی IP:اگر هنگام اداره شبکه محلی خود متوجه شدید که رایانه ای از طریق اینترنت مرتبت بهserver شبکه شما وصلمیشود و بار ترافیکی زیادی ایجاد می کند،می توانید از فایروال خود بخواهید که به آن رایانه یا نشانی IP مشخص،اجازه ورودبه شبکه را ندهد.
2)نام حوزه (Domain name):از آنجا که نشانیIP یک عدد 32بیتی و استفاده از آن راحت نیست،به همه serverها در اینترنت علاوه بر نشانی IP یک نام حوزه اختصاص میدهند.شما می توانید فایروال را طوری تنظیم کنید که رایانه های شبکهمحلی بتواند به سایت های خاصی (با نشانی حوزه خاص)دسترسی داشته باشند. یا اینکه به مشخص کردن نام حوزه در فایروالبه رایانه های شبکه تان اجازه بدهید که از آن سایت ها دیدن کنند.
3)پورت و پروتکل:فایروال می توانداز طریق شماره پورت های رایانه ها که برای ارتباط با یکدیگر به کار می برند،اطلاعاترد و بدل شده را کنترل کند،همچنین می توان کلمات واصطلاحات خاصی را در بانک اطلاعاتی فایروال مشخص کرد. در اینصورت هنگام وارد یا خارج شدن اطلاعات فایروال محتوای آنها را بررسی می کند و اگر با کلمات خاصی که برایش مشخصکرده ایم روبه رو شود،اجازه نمی دهد آن اطلاعات عبورکنند.
فایروال در برابر چه خطراتی از ما محافظت می کنند؟
1)ویروس ها:از معمول ترین خطرات برای هر رایانه به حساب می آیند و معمولا برنامه های کوچکی هستند که خود را رویرایانه های دیگر کپی کرده و به این روش به سرعت در شبکه شما پخش می شوند.
2)اشکالات برنامه ها و سیستم عامل ها:در بعضی برنامه ها امکان دسترسی به آن برنامه از راه دور (Backdoor)آن همبدون امنیت کافی فراهم شده است.به این ترتیب هکرها می توانند از آن استفاده کرده واز راه دور کنترل برنامه شمارا بدستبگیرند.
3)ماکرو ها:اگر فایروال ورود وخروج اطلاعات را کنترل نکند.هکرها میتوانند با فرستادن قطعه برنامه ها(که ماکرو نام دارند)به رایانه ها،داده ها را پاک کنند یا تغییر دهند و کل شبکه را از کار بیندازند.
4)بمب های ایمیل:در یک لحظه یک نامه صدها و هزاران بار برای یک سرویس دهنده نامه الکترونیکی فرستاده می شود وکاراو را مختل می کند تا جایی که این سیستم دیگر نمی تواند نامه ها را دریافت کند و از کار می افتد.
5)در بسیاری از مواردی که به سایت ها حمله می شود،هکرها برای وصل شدن به server،سعی می کنند درخواست هایبی شماری برای سرور بفرستد به طوری که سرور نمی تواند سیستم درخواست دهنده را پیدا کند و گیج می شود،به این ترتیبوقتی تعداد این نوع در خواست ها زیاد باشد،server کند میشود در نهایت از کار می افتد.هر فایروال با توجه به سطح امنیتیکه ایجاد می کند،می تواند در مقابل تعدادی از این خطرات از شبکه ما محافظت کند.
طراحي فايروال محيطي (Perimeter Firewall)
طراحي فايروال براي Data Center و محافظت از يك Data Center
1-تعاريف
طراحي محيط شبكه مطابق با مدل هاي روز به صورت زير خواهد بود
- جدا سازي دامن هاي خطر با لايه هاي مختلف فايروال
- يك دامنه خطر در هر لايه در ساختار طراحي
- نواحي امنيتي در Outer-Tire براي دسترس بودن
- نواحي امنيتي در دامنه خطر Middle-Tire براي اجزاي Tire-2
- امنيت در دامنه خطر لايه داخلي(-Tire Inner) براي دسترسي داخلي به سرورها و برنامه هاي كاربردي و سرور پايگاه داده
- Out Of Band Management
- Out Of Band Back up
- جدا سازي فيزيكي دامنه هاي خطر
- جدا سازي منطقي نواحي امنيتي
- زوج فايروالهاي با ضريب اطمينان بالا
در اين مقاله واژه هاي خارجي، مياني و داخلي جهت توصيف 3 لايه از فايروال مي باشد. مدل لايه نرم افزار كاربردي به صورت:
Tier 1 Presentation
Tier 2 Application
Tier 3 Data
طراحي جزيي محيطي:
Tier 1 از ساختار نرم افزار كه توسط فايروال خارجي سرويس داده مي شود
Tier 2 از ساختار نرم افزار كه توسط فايروال مياني سرويس داده مي شود.
Tier 3 از ساختار نرم افزار كه توسط فايروال داخلي سرويس داده مي شود.
در اين طراحي، فايروالها تمام ترافيك ورودي وخروجي محيط شبكه را كنترل مي كنند بنابراين افزونگي (Redundancy) كامل لايه هاي خارجي، داخلي و مياني فايروال ميزان اطمينان و پايداري بالا را حتمي مي سازد.
2-دفاع در عمق
در اين طراحي، دو محصول فايروال متفاوت در نظر گرفته شده است. آسيب پذيرهايي كه ممكن است در يك سيستم فايروال كشف شوند نمي توانند روي فايروال ديگر به اجرا در آمده و شبكه پيرامون مركز ديتا (Data Center) را مورد تهاجم قرار دهند.
جدا سازي فيزيكي نواحي خطر، داخل لايه (Tier) فايروال به كمك سوئيچ هاي لايه دو و رابط هاي فيزيكي فايروال حاصل مي شود.
نواحي چندگانه خطر مي توانند براي هر لايه تعريف شوند. نواحي امنيتي داخل يك حوزه خطر جهت رسيدن به تفكيك بيشتر با استفاده از جداسازي منطقي توسط VLAN به كار مي آيند. دو سوئيچ مجزا ممكن است در يك حوزه خطر براي اهداف افزونگي زير ساخت به كار آيند. استفاده ا ز دو كارت شبكه نيز براي افزونگي ارتباط Host در اين راستا قرار دارد. دياگرام زير طراحي شبكه در سطوح بالا را نشان مي دهد.
3-فايروال داخلي
كنترل فايروال ها توسط فايروال داخلي انجام مي شود. اگر هر كدام از فايروال هاي خارجي و يا مياني و يا سيستم هاي داخل DMZ مورد حمله قرار گرفته و كنترل آنها توسط هكرها بدست گرفته شود فايروال داخلي به عنوان محافظ آدرس هاي داخلي شبكه در برابر حملات انجام شده خواهد بود. فايروال Check Point مي تواند بعنوان لايه سوم مورد استفاده قرار بگيرد. به عنوان مثال مجموع دستگاه Nokia IP 530 كه در حالت فعال/غير فعال تنظيم شده اند را مي توان استفاده نمود.
4-فايروالهاي مياني:
نقش فايروالهاي لايه داخلي (Inter-tier) بوسيله فايروالهاي مياني ايفا مي شود. آنها برنامه هاي كاربردي را در معماري سه لايه اي فعال مي كنند. فايروال-1 NG مي تواند در يك پيكربندي HA (High Availability) براي اين منظور استفاده شود.
5-فايروالهاي خارجي
نقش مكانيزمهاي تقويت امنيت بوسيله اين فايروالها ايفا مي شود. اين فايروالها به اينترنت متصل مي شوند. اين فايروالها در يك زوجي از پيكربندي فعال-غير فعال پياده سازي شده كه يكي از آنها به عنوان فايروال اوليه فعاليت كرده و ديگري به عنوان فايروال Standby به منظور اطمينان بالا (High Availability) عمل مي كند.
نواحي امنيتي لايه 1 (Tier-1) نيز بوسيله فايروالهاي خارجي كنترل مي شوند. سرويس هاي برنامه هاي كاربردي مانند Mail Relay، DNS و پروكسي هاي وب توسط فايروالهاي خارجي كنترل مي شوند. فايروالهاي Cisco مانند سري Cisco pix 535 مي توانند براي لايه خارجي به كار آيند.
6-دستاوردها
طراحي محيطي (Perimeter design) دستاوردهاي زير را به همراه دارد:
- اطمينان و پايداري بالا از طريق افزونگي
- كارايي بالا
- OSPF (آگاهي شبكه)
- افزايش اطمينان و بازيابي (VRRP)
- افزونگي (Failover)ارتباطات داخلي
- افزونگي (Failover)ارتباطات خارجي
- نواحي امنيتي و حوزه هاي خطر چند گانه (درگاههاي VLAN)
- بازرسي بسته ها و فيلترينگ آنها به روش Statefull
- بازرسي محتوي بوسيله مكانيزم Check Point Application Intelligence
- سخت افزار مختص عملكرد فايروال
- دفاع در عمق- لايه هاي مختلف فايروال و محصولات متنوع
- ترجمه و تفسير آدرس بين شبكه ها
- قابليت IDS در ساختار موجود
بررسی نحوه عملکرد فایروال Firewallیا ديواره آتش
قبل از تحليل اجزای ديوار آتش عملكرد كلی و مشكلات استفاده از ديوار آتش را بررسی ميكنيم.
بسته های TCP و IP قبل از ورود يا خروج به شبكه ابتدا وارد ديوار آتش ميشوند و منتظر ميمانند تا طبق معيارهای حفاظتی و امنيتی پردازش شوند. پس از پردازش و تحليل بسته سه حالت ممكن است اتفاق بيفتد :
1- اجازه عبور بسته صادر ميشود (Accept Mode)
2- بسته حذف ميشود (Blocking Mode)
3- بسته حذف شده و پاسخ مناسب به مبدا آن بسته داده شود (Response Mode)
غير از حذف بسته ميتوان عملياتی نظير ثبت ، اخطار، ردگيری، جلوگيری از ادامه استفاده از شبكه و توبيخ هم در نظر گرفت.
به مجموعه قواعد ديوار آتش سياستهای امنيتی نيز گفته ميشود. همانطور كه همه جا عمليات ايست و بازرسی وقتگير و اعصاب خرد كن است ديوار آتش هم بعنوان يك گلوگاه ميتواند منجر به بالا رفتن ترافيك ، تاخير، ازدحام و نهايتا بن بست در شبكه شود. یعنی بسته ها آنقدر در پشت ديوار آتش معطل ميمانند تا زمان طول عمرشان به اتمام رسيده و فرستنده مجبور میشود مجددا اقدام به ارسال آنها كند و اين كار متناوبا تكرار ميگردد. به همين دليل ديوار آتش نياز به طراحی صحيح و دقيق دارد تا کمترین تاخیر را در اطلاعات امن و صحیح ایجاد نماید. تاخير در ديوار آتش اجتناب ناپذير است و فقط بايد به گونه ای باشد كه بحران ايجاد نكند.
از آنجايی كه معماری شبكه به صورت لايه لايه است ، در مدل TCP/IP برای انتقال يك واحد اطلاعات از لايه چهارم بر روی شبكه بايد تمام لايه ها را بگذراند، هر لايه برای انجام وظيفه خود تعدادی فيلد مشخص به ابتدای بسته اطلاعاتی اضافه كرده و آنرا تحويل لايه پايين تر ميدهد. قسمت اعظم كار يك ديوار آتش تحليل فيلدهای اضافه شده در هر لايه و header هر بسته ميباشد
سياست امنيتی يك شبكه مجموعه ای متناهی از قواعد امنيتی است كه بنابر ماهيتشان در يكی از لايه های ديوار آتش تعريف ميشوند :
1- قواعد تعيين بسته های ممنوع (بسته های سياه) در اولين لايه از ديوار آتش
2- قواعد بستن برخی از پورتها متعلق به سرويسهايی مثل Telnet يا FTP در لايه دوم
3- قواعد تحليل header متن يك نامه الكترونيكی يا صفحه وب در لايه سوم
لايه اول ديوار آتش:
لايه اول ديوار آتش بر اساس تحليل بسته IP و فيلدهای header اين بسته كار ميكند و در اين بسته فيلدهای زير قابل نظارت و بررسی هستند :
1- آدرس مبدا : برخی از ماشينهای داخل و يا خارج شبكه با آدرس IP خاص حق ارسال بسته نداشته باشند و بسته هايآنها به محض ورود به ديوار آتش حذف شود.
2- آدرس مقصد : برخی از ماشينهای داخل و يا خارج شبكه با آدرس IP خاص حق دريافت بسته نداشته باشند و بسته های آنها به محض ورود به ديوار آتش حذف شود. (آدرس های IP غير مجاز توسط مسئول ديوار آتش تعريف ميشود.)
3- شماره شناسايی يك ديتاگرام قطعه قطعه شده (Identifier & Fragment Offset) : بسته هايی كه قطعه قطعه شده اند يا متعلق به يك ديتاگرام خاص هستند بايد حذف شوند.
4- شماره پروتكل : بسته هايی كه متعلق به پروتكل خاصی در لايه بالاتر هستند ميتوانند حذف شوند. يعنی بررسی اينكه بسته متعلق به چه پروتكلی است و آيا تحويل به آن پروتكل مجاز است يا خير؟
5- زمان حيات بسته : بسته هايی كه بيش از تعداد مشخصی مسيرياب را طی كرده اند مشكوك هستند و بايد حذف شوند.
6- بقيه فيلدها بنابر صلاحديد و قواعد امنيتی مسئول ديوار آتش قابل بررسی هستند.
مهمترين خصوصيت لايه اول از ديوار آتش آنست كه در اين لايه بسته ها بطور مجزا و مستقل از هم بررسی ميشوند و هيچ نيازی به نگه داشتن بسته های قبلی يا بعدی يك بسته نيست. بهمين دليل ساده ترين و سريع ترين تصميم گيری در اين لايه انجام ميشود. امروزه برخی مسيريابها با امكان لايه اول ديوار آتش به بازار عرضه ميشوند يعنی به غير از مسيريابی وظيفه لايه اول يك ديوار آتش را هم انجام ميدهند كه به آنها مسيريابهای فيلتركننده بسته (Pocket Filtering Router ) گفته ميشود. بنابراين مسيرياب قبل از اقدام به مسيريابی بر اساس جدولی بسته های IP را غربال ميكند و تنظيم اين جدول بر اساس نظر مسئول شبكه و برخی قواعد امنيتی انجام ميگيرد.
با توجه به سزيع بودن اين لايه هرچه درصد قواعد امنيتی در اين لايه دقيقتر و سخت گيرانه تر باشند حجم پردازش در لايه های بالاتر كمتر و در عين حال احتمال نفوذ پايين تر خواهد بود ولی در مجموع بخاطر تنوع ميلياردی آدرسهای IP نفوذ از اين لايه با آدرسهای جعلی يا قرضی امكان پذير خواهد بود و اين ضعف در لايه های بالاتر بايد جبران شود.
لايه دوم ديوار آتش:
در اين لايه از فيلدهای header لايه انتقال برای تحليل بسته استفاده ميشود. عمومی ترين فيلدهای بسته های لايه انتقال جهت بازرسی در ديوار آتش عبارتند از :
1- شماره پورت پروسه مبدا و مقصد : با توجه به آنكه پورتهای استاندارد شناخته شده هستند ممكن است مسئول يك ديوار آتش بخواهد سرويس ftp فقط در محيط شبكه محلی امكان پذير باشد و برای تمام ماشينهای خارجی اين امكان وجود نداشته باشد. بنابراين ديوار آتش ميتواند بسته های TCP با شماره پورت های 20 و 21 (مربوط به ftp) كه قصد ورود و خروج از شبكه را دارند ، حذف كند. يكی ديگر از سرويسهای خطرناك كه ممكن است مورد سو استفاده قرار گيرد Telnet است كه ميتوان به راحتی پورت 23 را مسدود كرد. يعنی بسته هايی كه مقصدشان شماره پورت 23 است حذف شوند.
2- فيلد شماره ترتيب و فيلد Acknowledgment : اين دو فيلد نيز بنا بر قواعد تعريف شده توسط مسئول شبكه قابل استفاده هستند.
3- كدهای كنترلی (TCP code Bits) : ديوار آتش با بررسی اين كدها ، به ماهيت آن بسته پی برده و سياستهای لازم را بر روی آن اعمال ميكند. بعنوان مثال يك ديوار آتش ممكن است بگونه ای تنظيم شود كه تمام بسته هايی كه از بيرون به شبكه وارد ميشوند و دارای بيت SYN=1 هستند را حذف كند. بدين ترتيب هيچ ارتباط TCP از بيرون به درون شبكه برقرار نخواهد شد.
از مهمترين خصوصيات اين لايه آنست كه تمام تقاضا های برقراری ارتباط TCP بايستی از اين لايه بگذرد و چون در ارتباط TCP ، تا مراحل " سه گانه اش" به اتمام نرسد انتقال داده امكان پذير نيست لذا قبل از هر گونه مبادله داده ديوار آتش ميتواند مانع برقراری هر ارتباط غير مجاز شود. يعنی ديوار آتش ميتواند تقاضاهای برقراری ارتباط TCP را قبل از ارائه به ماشين مقصد بررسی نموده و در صورت قابل اطمينان نبودن مانع از برقراری ارتباط گردد. ديوار آتش اين لايه نياز به جدولی از شماره پورتهای غير مجاز دارد.
لايه سوم ديوار آتش:
در اين لايه حفاظت بر اساس نوع سرويس و برنامه كاربردی انجام ميشود. يعنی با در نظر گرفتن پروتكل در لايه چهارم به تحليل داده ها ميپردازد. تعداد header ها در اين لايه بسته به نوع سرويس بسيار متنوع و فراوان است. بنابراين در لايه سوم ديوار آتش برای هر سرويس مجزا (مانند وب، پست الكترونيك و...) بايد يك سلسله پردازش و قواعد امنيتی مجزا تعريف شود و به همين دليل حجم و پيچيدگی پردازش ها در لايه سوم زياد است. توصيه موكد آنست كه تمام سرويسهای غير ضروری و شماره پورتهايی كه مورد استفاده نيستند
در لايه دوم مسدود شوند تا كار در لايه سوم كمتر باشد.
بعنوان مثال فرض كنيد كه موسسه ای اقتصادی، سرويس پست الكترونيك خود را دائر نموده ولی نگران فاش شدن برخی اطلاعات محرمانه است. در اين حالت ديوار آتش در لايه سوم ميتواند كمك كند تا برخی آدرسهای پست الكترونيكی مسدود شوند و در عين حال ميتواند در متون نامه های رمز نشده به دنبال برخی از كلمات كليدی حساس بگردد و متون رمز گذاری شده را در صورتی كه موفق به رمزگشايی آن نشود حذف نمايد.
بعنوان مثالی ديگر يك مركز فرهنگی علاقمند استقبل از تحويل صفحه وب به كاربر درون آنرا از لحاظ وجود برخی از كلمات كليدی بررسی نمايد و اگر كلماتی كه با معيارهای فرهنگی مطابقت ندارد درون صفحه يافت شد آن صفحه را حذف نمايد.
فيلترهای Stateful و هوشمند:
دقت كنيد كه فيلترهای معمولی كارايی لازم را برای مقابله با حملات ندارند زيرا آنها بر اساس يك سری قواعد ساده بخشی از ترافيك بسته های ورودی به شبكه را حذف ميكنند. امروزه بر عليه شبكه ها حملانی بسيار تكنيكی و هوشمند طرح ريزی ميشود بگونه ای كه يك فيلتر ساده قابل اعتماد و موثر نخواهد بود. بديهی است كه يك فيلتر يا ديوار آتش قطعا بخشی از ترافيك بسته ها را به درون شبكه هدايت خواهد كرد .
(زيرا در غير اينصورت شبكه داخلی هيچ ارتباطی با دنيای خارج نخواهد داشت.) نفوذگر برای آنكه ترافيك داده های مخرب او حذف نشود تلاش ميكند با تنظيم مقادير خاص در فيلدهای بسته های TCP و IP آنها را با ظاهری كاملا مجاز از ميان ديوار آتش يا فيلتر به درون شبكه بفرستد. به عنوان مثال فرض كنيد فيلتری تمام بسته ها به غير از شماره پورت 80 (وب) را حذف ميكند. حال يك نفوذگر در فاصله هزاران كيلومتری ميخواهد فعال بودن يك ماشين را از شبكه بيازمايد.
بدليل وجود فيلتر او قادر نيست با ابزارهايی مانند Ping ، Nmap و Cheops و ... از ماشينهای درون شبكه اطلاعاتی كسب كند. بنابراين برای غلبه بر اين محدوديت يك بسته SYN-ACK (با شماره پورت 80) به سمت هدف ميفرستد. يك ديوار آتش معمولی با بررسی Source Port به اين بسته اجازه ورود به شبكه را ميدهد زيرا ظاهر آن نشان ميدهد كه توسط يك سرويس دهنده وب توليد گشته است و حامل داده های وب ميباشد.
بسته به درون شبكه داخلی راه يافته و و چون ماشين داخلی انتظار دريافت آنرا نداشته پس از دريافت يكی از پاسخ های RESET يا ICMP Port Unreliable را برميگرداند. هدف نفوذگر بررسی فعال بودن چنين ماشينی بوده است و بدين ترتيب به هدف خود ميرسد. فيلتر بسته (يا ديوار آتش ) نتوانسته از اين موضوع باخبر شود! برای مقابله با چنين عملياتی ديوار آتش بايد فقط به آن گروه از بسته های SYN-ACK اجازه ورود به شبكه را بدهد كه در پاسخ به يك تقاضای SYN قبلی ارسال شده اند.
همچنين بايد بشرطی بسته های ICMP Echo Reply بدرون شبكه هدايت شود كه حتما در پاسخ يك پيام ICMP Echo Request باشد. يعنی ديوار آتش بايد بتواند پيشينه (History) بسته های قبلی را حفظ كند تا در مواجهه با چنين بسته هايی درست تصميم بگيرد. ديوار های آتشی كه قادرند مشخصات ترافيك خروجی از شبكه را برای مدتی حفظ كنند و بر اساس پردازش آنها مجوز عبور صادر نمايند ديوار آتش هوشمند ناميده ميشوند.
البته نگهداری مشخصات ترافيك خروجی شبكه (يا ورودی) در يك فيلتر Stateful هميشگی نيست بلكه فقط كافی است كه ترافيك چند ثانيه آخر را به حافظه خود بسپارد! وجود فيلترهای Stateful باعث ميشود بسته هايی كه با ظاهر مجاز ميخواهند درون شبكه راه پيدا كنند از بسته های واقعی تميز داده شوند.
بزرگترين مشكل اين فيلتر ها غلبه بر تاخير پردازش و حجم حافظه مورد نياز ميباشد.ولی در مجموع قابليت اعتماد بسيار بالاتری دارند و ضريب امنيت شبكه را افزايش خواهند داد. اكثر فيلترهای مدرن از اين تكنيك بهره گيری نموده اند. يك ديوار آتش يا فيلتر هوشمند و Stateful پيشينه ترافيك خروجی را برای چند ثانيه آخر به خاطر ميسپارد و بر اساس آن تصميم ميگيرد كه آيا ورود يك بسته مجاز است يا خير.
ديوار آتش مبتنی بر پراكسی (Proxy Based Firewall):
فيلترها و ديوارهای آتش معمولی و Stateful فقط نقش ايست و بازرسی بسته ها را ايفا ميكنند. هر گاه مجوز برقراری يك نشست صادر شد اين نشست بين دو ماشين داخلی و خارجی بصورت مستقيم (انتها به انتها) برقرار خواهد شد . بدين معنا كه بسته های ارسالی از طرفين پس از بررسی عينا تحويل آنها خواهد شد.
فيلترهای مبتنی بر پراكسی رفتاری كاملا نتفاوت دارند:
وقتی ماشين مبدا تقاضای يك نشست (Session) مثل نشست FTP يا برقراری ارتباط TCP با سرويس دهنده وب را برای ماشين ارسال ميكند فرايند زير اتفاق ميافتد:
پراكسی به نيابت از ماشين مبدا اين نشست را برقرار ميكند. يعنيطرف نشست ديوار آتش خواهد بود نه ماشين اصلی! سپس يك نشست مستقل بين ديوار آتش و ماشين مقصد برقرار ميشود. پراكسی داده های مبدا را ميگيرد ، سپس از طريق نشست دوم برای مقصد ارسال می نمايد. بنابراين :
در ديوار آتش مبتنی بر پراكسی هيچ نشست مستقيم و رو در رويی بين مبدا و مقصد شكل نمی گيرد بلكه ارتباط آنها بوسيله يك ماشين واسط برقرار ميشود. بدين نحو ديوار آتش قادر خواهد بود بر روی داده های مبادله شده در خلال نشست اعمال نفوذ كند. حال اگر نفوذگر بخواهد با ارسال بسته های كنترلی خاص مانند SYN-ACK كه ظاهرا مجاز به نظر می آيند واكنش ماشين هدف را در شبكه داخلی ارزيابی كند در حقيقت واكنش ديوار آتش را مشاهده ميكند و لذا نخواهد توانست از درون شبكه داخلی اطلاعات مهم و با ارزشی بدست بياورد.
ديوار آتش مبتنی بر پراكسی در لايه سوم عمل ميكند و قادر است حتی بر داده های ارسالی در لايه كاربرد مثل محتوای نامه های الكترونيكی يا صفحات وب نظارت كند.
ديوار آتش مبتنی بر پراكسی به حافظه نسبتا زياد و CPU بسيار سريع نيازمندند و لذا نسبتا گران تمام ميشوند. چون ديوار آتش مبتنی بر ديوار آتش بايد تمام نشستهای بين ماشينهای درون و بيرون شبكهرا مديريت و اجرا كند لذا گلوگاه شبكه محسوب ميشود و هر گونه تاخير يا اشكال در پيكربندی آن ، كل شبكه را با بحران جدی مواجه خواهد نمود.
ممكن است از شما سوال شود كه استفاده از كدام نوع ديوارهای آتش در شبكه ای كه امنيت داده های آن حياتی است منطقی تر و امن تر خواهد بود؟
اگر قرار باشد از ديوار آتش مبتنی بر پراكسی در شبكه استفاده شود اندكی از كارايی سرويس دهنده هايی كه ترافيك بالا (مثل سرويس دهنده وب) دارند كاسته خواهد شد زيرا پراكسی يك گلوگاه در شبكه محسوب ميشود. اگر سرويس دهنده ای را برای كل كاربران اينترنت پيكربندی كرده ايد بهتر است در پشت يك ديوار آتش مبتنی بر پراكسی قرار نگيرد.
در طرف مقابل فيلترها و ديوارهای آتش معمولی سريعند وليكن قابليت اطمينان كمتری دارند و نميتوان به آنها به عنوان حصار يك شبكه اطمينان نمود. در نتيجه بهترين پيشنهاد استفاده همزمان از هر دونوع ديوار آتش است. شبكههای متعلق به سازمانها يا موسسات تجاری در دو بخش سازماندهی و پيكربندی ميشوند:
-بخش عمومی شبكه شامل سرويس دهنده وب ، پست الكترونيكی و FTP كه به عموم كاربران اينترنت سرويس ميدهد. اين بخش اصطلاحا DMZ (بخش غير محرمانه غير نظامی!) نام دارد.
-بخش حصوصی يا محرمانه كه صرفا با هدف سرويس دهی به اعضای آن سازمانيا موسسه پياده سازی شده است.
بخش عمومی شبكه توسط يك فيلتر (معمولی يا هوشنمد) حفاظت ميشود تا از كارايی سرويس دهنده آن كاسته نشود. شبكه داخلی در پشت يك ديوار آتش مبتنی بر پراكسی پنهان ميشود تا ضمن غير قابل نفوذ بودن با اينترنت در ارتباط باشد. در چنين ساختاری يك نفوذگر خارجی برای برقراری ارتباط بايك ماشين داخلی دو مانع عمده بر سر راه دارد : فيلتر و ديوار آتش مبتنی بر پراكسی. حال حتی اگر بتواند با مكانيزم های متداول از سد فيلتر بگذرد پشت ديوار آتش متوقف خواهد شد.
ديوار های آتش شخصی:
يك ديوار آتش كل ماشينها شبكه داخلی را حفاظت ميكند. سوال مهم اينست كه در محيطهای معمولی مانند ISP كه هيچ ديوار آتش يا فيلتری نصب نشده و و ماشينهای اعضای شبكه بی حفاظ رها شده اند تكليف كاربران بی گناه چيست؟!!
بسياری از كاربران ISP كه از مودمهای معمولی يا سريع (مثل سری xDSL) برای اتصال به شبكه اينترنت استفاده ميكنند بدليل عدم وجود يك سيستم امنيتی قدرتمند به دام نفوذگران بدخواه می افتند و داده هايشان سرقت ميشود و يا مورد آزار و اذيت قرار ميگيرند. اينگونه حوادث نادر نيست بلكه هر روز اتفاق می افتد. حال چگونه ميتوان از اين ماشينها حفاظت كرد؟
ديوار آتش شخصی (PersonalFirewall) يك ابزار نرم افزاری است كه روی ماشين شما نصب ميشود و ورود و خروج بسته ها به یا از ماشين را نظارت ميكند و مانع دسترسی غير مجاز به منابع شده و از داده ها حفاظت ميكند.
در اکثر نسخه های لینوکس و همچنین در ویندوز اکس پی هنگام نصب ، يك ديوار آتش با يكسری قواعد پيش فرض و نسبتا مطمئن بر روی ماشين كاربر فعال شده و ترافيك بسته ها را نظارت ميكند و حتی الامكان از دسترسی غير مجاز به آن جلوگيری ميكند. اگر کاربری بخواهد از ضریب تنظیمات امنیتی بالاتری بر خوردار شود بايد سطوح امنیتی بالاتری را با پیکربندی فایروال در نظر بگیرد و یا از فایروالهای سخت افزاری علاوه بر فایروالهای ذکر شده استفاده نماید
فایروال IPTables ، زنجیره و قوانین :
1 . مقدمه :
موضوع مورد بحث در این مقاله، مفهوم جداول، زنجیرها (Chains) و قوانین (Rules) می باشد و اینکه به چه شکل می توان از آنها استفاده نمود تا یک کامپیوتر دارای سیستم عامل Linux را به یک فایروال تبدیل نمود.
در این مقاله هدف بررسی مجموعه دستورات لازم برای آنکه یک فایروال توسط IPTables راه اندازی شود، نمی باشد؛ بلکه فقط توسط یک نقشه فیزیکی شبکه سعی دارد تا جریان بسته و جایگاه جداول را در IPTables ارائه نماید. این دیاگرام می تواند سنگ بنای معرفی ویژگی ها، دستورات، و مفاهیم IPTables به شکل غیر فنی باشد. این مقاله صرفاً جنبه آشنایی برای افراد تازه کار داشته و در مقاله های بعدی موجود در سایت www.aidagroups.com می توانید اطلاعات تخصصی در مورد IPTables و نحوه پیکربندی آن بدست آورید.
2 . شبکه مُدل مورد استفاده :
بسیاری از متخصصان، دنیای شبکه و تجهیزات را به آن دلیل بر برنامه نویسی ترجیح می دهند که در دنیای شبکه همه چیز فیزیکی بوده و احساس راحتی بیشتری نسبت به دنیای برنامه نویسی بدست می آورند! درست یا غلط، من نیز همین خط مشی را برای این مقاله بر می گزینم. اجازه دهید در این مقاله بحث خود را بر روی یک شبکه واقعی که در طرح آن در شکل 1 آمده است، متمرکز نماییم. با این شبکه سعی خواهیم کرد تا در دنیای جالب و تا حدی پیچیده Netfilter و IPTables به کنکاش بپردازیم.
شبکه مورد بررسی در این مقاله از یک کامپیوتر پنتیوم IV ، دارای 512MB حافظهٔ RAM که بر روی مادربورد Gigabyte قرار دارد و دارای دو کارت شبکه از نوع D_link 538TX می باشد و در بازار کشورمان نیز بسیار فراوان است، تشکیل می گردد.