خلاصه پایان نامه دیوار آتش مبتنی بر سیستم عامل لینوکس
پروژه پایان نامه دوره کارشناسی مهندسی کامپیوتر نرم افزار
پیشگفتار:
این قابلیت که بتوان یک کامپیوتر را در هر کجا به کامپیوتری دیگر در جایی دیگر متصل کرد، به منزله یک سکه دو رو است؛ برای اشخاصی که در منزل هستند گردش در اینترنت بسیار لذت بخش است در حالی که برای مدیران امنیت در سازمان ها، یک کابوس وحشتناک به حساب میآید.
«دیوار آتش» پیاده سازی مدرنی از روش قدیمی حصارهای امنیتی است: خندقی عمیق دور تا دور قلعه حفر می کردند. این الگو همه را مجبور میکند تا برای ورود یا خروج از قلعه، از یک پل متحرک و واحد بگذرند و بتوان همه را توسط پلیس حراست بازرسی کرد. در دنیای شبکه های کامپیوتری، همین راهکار ممکن خواهد بود: یک سازمان میتواند هر تعداد شبکه محلی داشته باشد که به صورت دلخواه به هم متصل شده اند، اما تمام ترافیک ورودی یا خروجی سازمان صرفاً از طریق یک پل متحرک (همان دیوار آتش) میسر است.
مطالب این پایان نامه در دو فصل تنظیم شده است. فصل اول به معرفی دیوارهای آتش می پردازد. در این فصل، مطالبی از قبیل اثرات مثبت و منفی دیوار آتش، تواناییها و ناتواناییهای آن، نحوه عملکرد دیوارهای آتش، انواع دیوار آتش، معماری های دیوار آتش و نحوه انتخاب، پیاده سازی و آزمایش یک دیوار آتش بررسی میشوند. این فصل، یک دید جامع در مورد نحوه انتخاب دیوار آتش منطبق با سیاست امنیتی سازمان میدهد. فصل دوم به پیاده سازی نرم افزاری یک دیوار آتش فیلتر کننده بسته با استفاده از ابزار ارائه شده در سیستم عامل لینوکس، یعنی iptables می پردازد. در این فصل، مطالبی از قبیل نحوه پیکربندی سیستم مبتنی بر لینوکس به عنوان یک مسیریاب، جداول و زنجیرها، قوانین و تطبیق ها و اهداف، پیکربندی iptables، مشخصات فیلترسازی، تعمیم ها، مشخصات هدف، ترکیب NAT با فیلترسازی بسته و نحوه ذخیره و بازیابی دستورات iptables بررسی میشوند. این فصل، نحوه نوشتن قوانین دیوار آتش فیلتر کننده بسته را به منظور کنترل مناسب ترافیک ورودی یا خروجی توضیح میدهد.
چکیده:
تأمین امنیت شبکه، بخش حساسی از وظایف هر مدیر شبکه محسوب میشود. از آنجاییکه ممکن است محافظت های متفاوتی موردنیاز باشد، لذا مکانیزم های گوناگونی هم برای تأمین امنیت در شبکه وجود دارد. یکی از این مکانیزم ها استفاده از دیوار آتش میباشد. مدیر شبکه باید درک بالایی از انواع دیوار آتش، نقاط قوت و ضعف هر نوع، حملات تهدید کننده هر نوع، معماری های دیوار آتش، تأثیرات آن بر شبکه و کاربران، سیاست امنیتی سازمان و همچنین نیازهای فنی پیاده سازی داشته باشد تا بتواند راه حل مناسب را انتخاب و به درستی پیاده سازی نماید و سپس آنرا مورد آزمایش قرار دهد. در همین راستا، سیستم عامل «Linux» برای پیاده سازی نرم افزاری دیوار آتش فیلتر کننده بسته، ابزاری را به نام «iptables» در اختیار کاربر قرار میدهد تا با استفاده از دستورات این ابزار بتواند قوانین و فیلترهای موردنیاز را برای کنترل مطلوب دسترسی، خواه از داخل شبکه به خارج و خواه بالعکس، پیکربندی نماید.
فصل اول
دیوارهای آتش شبکه
فصل اول: دیوارهای آتش شبکه
1-1 : مقدمه
امروزه با وجود طیف گسترده راه حلهای دیوار آتش، انتخاب و پیاده سازی دیوار آتش به فرایندی زمان گیر مبدل شده است. روش جذاب در راه حلهای دیوار آتشی که به بازار عرضه شده اند، به همراه ادعاهای نصب و مدیریت آسان، ممکن است سازمانها را به سمتی سوق دهد که بدون آنکه به طور کامل نیاز به راه حل دیوار آتش را بررسی نمایند، تصمیم به پیاده سازی آن بگیرند. با اتخاذ تصمیمات عجولانه، سازمانها اثراتی را که یک راه حل دیوار آتش بر شبکه موجود و کاربران آنها میگذارد، نادیده میگیرند.
چه متغیرهایی باید در هنگام تعیین نیاز به یک دیوار آتش، مورد توجه قرار گیرند؟ سازمانهایی که اتصال به اینترنت یا هر شبکه نامطمئن دیگر دارند، ممکن است نیاز به پیاده سازی یک راه حل دیوار آتش داشته باشند. به هر حال، این سازمانها باید اثراتی را که یک دیوار آتش بر سرویسهای شبکه، منابع و کاربران آن خواهد گذاشت مورد توجه قرار دهند و نحوه قرارگیری دیوار آتش براساس نیازهای تجاری خاص آنها و زیربنای شبکه را در نظر بگیرند. سازمانها باید نیازهای ویژه خود را مشخص کنند، زیربنای فعلی شبکه خود را تجزیه و تحلیل نمایند و از اطلاعات بدست آمده به عنوان مبنایی برای تصمیمات خود استفاده کنند. در برخی موارد، ممکن است بعد از بررسی تمام متغیرها، دریابند که یک راه حل دیوار آتش، ضروری نیست و یا پیاده سازی آن غیرعملی است.
1-2 : یک دیوار آتش چیست؟
دیوارهای آتش شبکه، سدی مابین شبکهها به وجود میآورند که از ترافیک (traffic) ناخواسته یا بدون مجوز (unauthorized) جلوگیری میکند.
تعریف: دیوار آتش شبکه، سیستم یا گروهی از سیستمهاست که با استفاده از قوانین (rules) یا فیلترهای از پیش پیکربندی شده، دسترسی مابین دوشبکه- یک شبکه مطمئن (Trusted) و یک شبکه نامطمئن (Untrusted)- را کنترل میکند.
شکل 1-1: نمایش دیوار آتش شبکه
ممکن است دیوارهای آتش، فقط از یک مسیریاب (router)، چندین مسیریاب، یک سیستم میزبان یا چندین میزبان اجرا کننده نرم افزار دیوار آتش، دستگاههای سخت افزاری مخصوصی که برای تأمین سرویسهای دیوار آتش طراحی شده اند، یا هر ترکیبی از آنها تشکیل شده باشد. این موارد از نظر طراحی، کاربردی بودن، معماری و هزینه متغیر هستند. بنابراین، برای پیاده سازی موفق یک راه حل دیوار آتش در یک سازمان، مهم است که دریابیم که هر راه حل دیوار آتشی چه کاری میتواند انجام دهد و چه کاری نمیتواند انجام دهد. راه حلهای دیوار آتش میتوانند هم اثرات مثبت بر شبکه بگذارند و هم اثرات منفی.
1-3 : دیوارهای آتش چه کاری انجام میدهند؟
1-3-1 : اثرات مثبت
اگر دیوارهای آتش، به درستی پیاده سازی شوند میتوانند دسترسی به شبکه و از شبکه را کنترل کنند. دیوارهای آتش طوری میتوانند پیکربندی شوند که از دسترسی کابران بیرونی یا بدون مجوز به شبکهها و سرویسهای داخلی یا محرمانه جلوگیری نمایند؛ و نیز میتوانند طوری پیکربندی شوند که از دسترسی کاربران داخلی به شبکهها و سرویسهای بیرونی یا بدون مجوز جلوگیری کنند. برخی از دیوارهای آتش میتوانند داخل یک سازمان طوری قرار بگیرند که دسترسی به سرویسها را مابین بخشها و دیگر شبکههای محرمانه کنترل کنند.
تأیید اعتبار کاربر (User authentication): دیوارهای آتش میتوانند طوری پیکربندی شوند که نیاز به تأیید اعتبار کاربر داشته باشند. این مورد به مدیران شبکه امکان میدهد که دسترسی کاربران خاصی را به سرویسها و منابع خاصی کنترل نمایند. تأیید اعتبار، این امکان را نیز به مدیران شبکه میدهد که فعالیت معینی از کاربر و تلاشهای بدون مجوز برای دستیابی به شبکهها و سرویسهای محافظت شده را دنبال کنند.
نظارت و ثبت وقایع (Auditing and logging): دیوارهای آتش میتوانند امکانات نظارت و ثبت را در اختیارمان قرار دهند. با پیکربندی دیوار آتش جهت نظارت و ثبت فعالیت، میتوان اطلاعات را نگهداری نمود و در آینده مورد تجزیه و تحلیل قرار داد. دیوارهای آتش میتوانند بر اساس اطلاعاتی که جمع آوری کرده اند، آمارهایی تولید نمایند. این آمارها میتواند در اتخاذ تصمیمات خط مشی (Policy) که مربوط به دستیابی به شبکه و سودمندی آن است، مفید واقع شود.
امنیت (Security): برخی از دیوارهای آتش به گونه ای عمل میکنند که میتوانند شبکههای مطمئن یا داخلی را از شبکههای نامطمئن یا بیرونی پنهان کنند. این لایه امنیتی اضافه میتواند از سرویسها در مقابل پویشهای ناخواسته محافظت نماید.
دیوارهای آتش همچنین میتوانند یک نقطه مرکزی برای مدیریت امنیت ایجاد کنند. این مسئله، زمانی که منابع انسانی و مالی یک سازمان محدود باشد میتواند بسیار مفید واقع گردد.
1-3-2 : اثرات منفی
اگرچه راه حلهای دیوار آتش مزایای بسیاری دارند، اما ممکن است برخی اثرات منفی نیز بر جای بگذارند.
گلوگاههای ترافیکی (Traffic bottlenecks): در بعضی از شبکهها، دیوارهای آتش، یک گلوگاه ترافیکی ایجاد میکنند. با عبور دادن تمام ترافیک شبکه از دیوار آتش، امکان متراکم شدن شبکه بیشتر میشود.
نقطه شکست واحد (Single point of failure): دیوارهای آتش میتوانند یک نقطه شکست واحد ایجاد نمایند. در اغلب پیکربندیهایی که دیوارهای آتش تنها ارتباط مابین شبکهها هستند، اگر به درستی پیکربندی نشوند و یا در دسترس نباشند، هیچ ترافیکی را از خود عبور نخواهند داد.
محروم سازی کاربر (User frustration): دیوارهای آتش ممکن است کاربران را ناامید سازند زمانیکه منابع شبکه یا سرویسهای آن مسدود باشند یا در دسترس کاربران نباشند و یا برای دستیابی نیاز به تأیید اعتبار باشد و کاربران کلمه عبورشان را فراموش کرده باشند.
مسئولیتهای مدیریتی بیشتر: اغلب یک دیوار آتش، مسئولیتهای مدیریتی شبکه را بیشتر میکند و عیب یابی شبکه را پیچیده تر میسازد. اگر مدیران شبکه زمانی را برای پاسخ به هر اخطار و بررسی ثبت وقایع به طوری منظم صرف نکنند، هرگز متوجه نخواهند شد که آیا دیوار آتش وظیفه خود را به درستی انجام میدهد یا نه. تمام دیوارهای آتش نیاز به پشتیبانی اجرایی مداوم، نگهداری کلی، به روز رسانیهای نرم افزاری، وصلههای امنیتی (patch) و اداره مناسب حوادث دارند که بر مسئولیتهای مدیران شبکه میافزاید.
1-4 : دیوارهای آتش، چه کارهایی را نمیتوانند انجام دهند؟
رایج ترین تصور غلط در مورد دیوارهای آتش، این است که دیوارهای آتش، امنیت شبکه شما را تضمین میکنند. یک دیوار آتش نمیتواند و تضمین نمیکند که شبکه شما صددرصد امن است. برای حفاظت بیشتر، یک دیوار آتش بهتر است به همراه دیگر معیارهای امنیت استفاده شود. حتی در آن صورت نیز، هیچ تضمینی وجود ندارد که شبکه، صددرصد امن باشد.
دیوارهای آتش نمیتوانند هیچ حفاظتی در مقابل حملات درونی انجام دهند. برای آنکه یک دیوار آتش، مؤثر واقع شود، باید تمام ترافیک از آن عبور کند. معمولاً کاربران شبکه مطمئن یا درونی، بدون نیاز به عبور از دیوار آتش، به سرویسهای حفاظت شده دسترسی دارند. امروزه درصد زیادی از حوادث امنیتی، از درون شبکه مطمئن ناشی میشوند.
دیوارهای آتش نمیتوانند در مقابل دسترسی ناخواسته یا بدون مجوز از طریق درهای پشتی (back doors) شبکه شما، محافظت کنند. معمولاً درهای پشتی زمانی ایجاد میشوند که یک کاربر درونی از طریق یک مودم غیرمجاز با بیرون تماس میگیرد و با یک شبکه نامطمئن، ارتباط برقرار میکند.
در بیشتر پیاده سازیها، دیوارهای آتش نمیتوانند حفاظتی در مقابل ویروسها یا کد مخرب (malicious code) انجام دهند. از آنجاییکه بیشتر دیوارهای آتش، فیلد بارکاری (payload) بسته را بررسی نمیکنند، از تهدیدهایی که ممکن است در بستهها باشد، آگاه نیستند.
سرانجام، هیچ دیوارآتشی نمیتواند در مقابل خط مشهای ناکافی یا بدمدیریت شده، محافظتی انجام دهد. اگر یک کلمه عبور، اعلان شود شبکه شما در خطر است. برخی از نفوذهای امنیتی به این دلیل رخ میدهند که کاربران به طور غیرعمدی، کلمه عبورشان را اعلان میکنند یا اینکه ایستگاه کاری خود را به صورت باز رها میکنند.
1-5 : چگونه دیوارهای آتش عمل میکنند؟
اکنون که یک دیوار آتش را تعریف نمودیم و به تواناییها و ناتواناییهای آن اشاره نمودیم، نوبت به بررسی نحوه عملکرد دیوارهای آتش فرا میرسد.
دیوارهای آتش شبکه برای اتخاذ تصمیم در مورد کنترل دسترسی از دو نگرش منطق طراحی امنیتی استفاده میکنند. این دو نگرش، منطق متضادی دارند اما هدف هر دو، کنترل دسترسی است. این دو نگرش عبارتند از:
هر چیزی که به طور مشخص اجازه داده نشود، رد میشود.
هر چیزی که به طور مشخص رد نشود، اجازه داده میشود.
هر نگرش طرفدارانی دارد، اما نگرشی که اغلب توصیه میشود، این است که هر چیزی که به طور مشخص اجازه داده نشود، رد میشود. این نگرش، در مقابل دسترسی ناخواسته یا غیرمجاز، حالتی آینده نگر (proactive) پیش میگیرد. این نگرش، براساس این اصل کار میکند که کل دسترسی، تا زمانیکه یک قانون یا فیلتر پیکربندی شود که به طور مشخص اجازه دسترسی دهد، رد میشود. این نگرش، به طور پیش فرض امنیت بیشتری را تأمین میکند، اما میتواند خیلی محدود کننده محسوب شود. در بسیاری حالات، ترافیک قانونی تا زمانیکه متغیرهای صحیح تعیین شود و قوانین یا فیلترهایی پیکربندی شوند و پیاده سازی شوند که اجازه عبور را به ترافیک بدهند، منتظر میماند.
منطق طراحی متضاد، یعنی هر چیزیکه به طور مشخص رد نشود، اجازه داده میشود، در مقابل دسترسی ناخواسته یا غیرمجاز، حالتی واکنشی (reactive) از خود نشان میدهد. این نگرش، براساس این اصل کار میکند که کل دسترسی، تا زمانیکه یک قانون یا فیلتر پیکربندی شود که به طور مشخص آنرا رد کند، اجازه داده میشود. این نگرش، امنیت کمتری را تأمین میکند اما انعطاف پذیرتر محسوب میشود زیرا ترافیک قانونی، دیگر منتظر نمیماند.
1-6 : انواع دیوارهای آتش
فهرست پایان نامه دیوار آتش مبتنی بر سیستم عامل لینوکس
فهرست:
فهرست مطالب............................................................................................................................................ 3
فهرست شکل ها......................................................................................................................................... 9
فهرست جدول ها....................................................................................................................................... 11
چکیده (فارسی).......................................................................................................................................... 12
فصل اول: دیوارهای آتش شبکه........................................................................... 13
1-1 : مقدمه................................................................................................................................... 14
1-2 : یک دیوار آتش چیست؟.................................................................................................. 15
1-3 : دیوارهای آتش چه کاری انجام می دهند؟................................................................. 16
1-3-1 : اثرات مثبت....................................................................................................... 16
1-3-2 : اثرات منفی....................................................................................................... 17
1-4 : دیوارهای آتش، چه کارهایی را نمی توانند انجام دهند؟........................................ 18
1-5 : چگونه دیوارهای آتش عمل میکنند؟......................................................................... 20
1-6 : انواع دیوارهای آتش.......................................................................................................... 21
1-6-1 : فیلتر کردن بسته............................................................................................. 22
1-6-1-1 : نقاط قوت......................................................................................... 24
1-6-1-2 : نقاط ضعف....................................................................................... 25
1-6-2 : بازرسی هوشمند بسته................................................................................... 28
1-6-2-1 : نقاط قوت......................................................................................... 31
1-6-2-2 : نقاط ضعف....................................................................................... 32
1-6-3 : دروازه برنامه های کاربردی و پراکسیها...................................................... 32
1-6-3-1 : نقاط قوت......................................................................................... 35
1-6-3-2 : نقاط ضعف....................................................................................... 36
1-6-4 : پراکسیهای قابل تطبیق................................................................................. 38
1-6-5 : دروازه سطح مداری........................................................................................ 39
1-6-6 : وانمود کننده ها................................................................................................ 40
1-6-6-1 : ترجمه آدرس شبکه...................................................................... 40
1-6-6-2 : دیوارهای آتش شخصی................................................................. 42
1-7 : جنبه های مهم دیوارهای آتش کارآمد....................................................................... 42
1-8 : معماری دیوار آتش........................................................................................................... 43
1-8-1 : مسیریاب فیلترکننده بسته........................................................................... 43
1-8-2 : میزبان غربال شده یا میزبان سنگر............................................................. 44
1-8-3 : دروازه دو خانه ای........................................................................................... 45
1-8-4 : زیر شبکه غربال شده یا منطقه غیرنظامی............................................... 46
1-8-5 : دستگاه دیوار آتش.......................................................................................... 46
1-9 : انتخاب و پیاده سازی یک راه حل دیوار آتش.......................................................... 48
1-9-1 : آیا شما نیاز به یک دیوار آتش دارید؟....................................................... 48
1-9-2 : دیوار آتش، چه چیزی را باید کنترل یا محافظت کند؟....................... 49
1-9-3 : یک دیوار آتش، چه تأثیری روی سازمان، شبکه و کاربران
خواهد گذاشت؟............................................................................................... 50
1-10 : سیاست امنیتی ............................................................................................................. 51
1-10-1 : موضوعات اجرایی......................................................................................... 52
1-10-2 : موضوعات فنی.............................................................................................. 53
1-11 : نیازهای پیاده سازی....................................................................................................... 54
1-11-1 : نیازهای فنی................................................................................................... 54
1-11-2 : معماری............................................................................................................ 54
1-12 : تصمیم گیری................................................................................................................... 55
1-13 : پیاده سازی و آزمایش................................................................................................... 56
1-13-1 : آزمایش، آزمایش، آزمایش!........................................................................ 57
1-14 : خلاصه ............................................................................................................................. 58
فصل دوم: پیاده سازی دیوار آتش با استفاده از iptables................................... 60
2-1 : مقدمه................................................................................................................................... 61
2-2 : واژگان علمی مربوط به فیلترسازی بسته.................................................................... 62
2-3 : انتخاب یک ماشین برای دیوار آتش مبتنی بر لینوکس........................................ 65
2-4 : به کار بردن IP Forwarding و Masquerading..................................................... 65
2-5 : حسابداری بسته................................................................................................................. 70
2-6 : جداول و زنجیرها در یک دیوار آتش مبتنی بر لینوکس....................................... 70
2-7 : قوانین................................................................................................................................... 74
2-8 : تطبیق ها............................................................................................................................. 75
2-9 : اهداف................................................................................................................................... 75
2-10 : پیکربندی iptables........................................................................................................ 76
2-11 : استفاده از iptables....................................................................................................... 77
2-11-1 : مشخصات فیلترسازی.................................................................................. 78
2-11-1-1 : تعیین نمودن آدرس IP مبدأ و مقصد.................................. 78
2-11-1-2 : تعیین نمودن معکوس............................................................... 79
2-11-1-3 : تعیین نمودن پروتکل................................................................ 79
2-11-1-4 : تعیین نمودن یک رابط............................................................. 79
2-11-1-5 : تعیین نمودن قطعه ها.............................................................. 80
2-11-2 : تعمیم هایی برای iptables (تطبیق های جدید)................................ 82
2-11-2-1 : تعمیم های TCP........................................................................ 82
2-11-2-2 : تعمیم های UDP....................................................................... 86
2-11-2-3 : تعمیم های ICMP.................................................................... 86
2-11-2-4 : تعمیم های تطبیق دیگر.......................................................... 87
2-11-3 : مشخصات هدف............................................................................................ 92
2-11-3-1 : زنجیرهای تعریف شده توسط کاربر....................................... 92
2-11-3-2 : هدف های تعمیمی ................................................................... 92
2-11-4 : عملیات روی یک زنجیر کامل................................................................... 94
2-11-4-1 : ایجاد یک زنجیر جدید.............................................................. 94
2-11-4-2 : حذف یک زنجیر ....................................................................... 94
2-11-4-3 : خالی کردن یک زنجیر ............................................................ 95
2-11-4-4 : فهرست گیری از یک زنجیر ................................................... 95
2-11-4-5 : صفر کردن شمارنده ها.............................................................. 95
2-11-4-6 : تنظیم نمودن سیاست............................................................... 95
2-11-4-7 : تغییر دادن نام یک زنجیر........................................................ 96
2-12 : ترکیب NAT با فیلترسازی بسته............................................................................ 96
2-12-1 : ترجمه آدرس شبکه.................................................................................... 96
2-12-2 : NAT مبدأ و Masquerading................................................................. 98
2-12-3 : NAT مقصد................................................................................................... 99
2-13 : ذخیره نمودن و برگرداندن قوانین............................................................................. 101
2-14 : خلاصه............................................................................................................................... 102
نتیجه گیری................................................................................................................................................. 105
پیشنهادات.................................................................................................................................................... 105
منبع:
ندارد.