معرفی
فایروال یک سیستم برای ایجاد امنیت در شبکه است که ترافیک ورودی و خروجی به یک سیستم را مدیریت و فیلتر میکند و این کار را بر اساس قوانینی که کاربر ریشه / ادمین برای آن وضع میکند انجام میدهد. در حیقیقت فایروال برای این اجرا میشود تا ار ارسال و دریافت اطلاعات ناخواسته و برقراری ارتباط با شبکه جلوگیری کرده و آن را حداقل رسانده و یا در بهترین حالت کاملاً جلوی اینگونه ارتباطات که از نظر مدیر سیستم خطرناک میباشد جلوگیری کند و این درحالی است که تمامی عملیات های مجاز آزاد بوده و به خوبی کار خود را در سیستم انجام خواهند داد. در بیشتر سرور ها فایروال نقش یک لایه امنیتی را بازی میکند که برای هک نشدن سرور مورد نیاز است و جلوی دسترسی پیدا کردن حمله کننده را به سرور میگیرد. در این بین کانفیگ درست فایروال بر این امر تأثیر بسیار زیادی دارد و در صورت کانفیگ نشدن صحیح ممکن است عملاً سیستم با نداشتن فایروال فرقی نداشته باشد.
این مقاله و بخش بعدی آن به شما مطالبی در مورد نحوه کارکرد فایروال را یاد خواهد داد و همچنین نگاهی بر وضعیت نرم افزارهای فایروال و قابلیتهایی همچون iptables و FirewallD که بخشهای مهمی مخصوصاً برای سرور های کلاد هستند خواهیم انداخت.
ابتدا با معرفی کوتاهی از TCP و پکت های مختلف آن و همچنین انواع مختلف فایروال شروع خواهیم کرد.
پکت های TCP شبکه
قبل از اینکه بحث فایروال ها را کامل کنیم بهتر است نگاهی بر transport control protocol یا همان TCP بیاندازیم و کمی در مورد آن بدانیم.
ترافیک TCP شبکه همه از طریق پکت هایی در شبکه انتقال پیدا میکنند و همه آنها یک هدر مخصوص به خود دارند که در آنها چیزهایی مثل منبع و آدرس مقصد و اطلاعات کنترل آنها وجود دارد وپکت ها اطلاعات را بوحود آورده و آنها دیتا هارا میسازند ( payload نیز گفته میشود ) همانطور که گفتیم هدر های پکت اطلاعاتی برای راهنمایی در خود دارند تا گم نشوند به همین دلیل است که به مقصدی که به آنها گفته شده است راهنمایی میشوند. در همین هدرها نیز اطلاعاتی برای فایروال ها قرار داده شده است که فایروال از روی آنها تشخیص میدهد که یک پکت را فیلتر کند و یا اجازه عبور دهد.
بهتر است این را نیز به یاد داشته باشید که یک ارتباط سالم TCP هنگامی که پکت ها را دریافت کرد با پکت هایی که ارسال میکند به مبدأ خود میفهماند که پکت ها به سلامت و بدون کاستی سیده اند در غیر این صورت ارتباط قطع و یا یکطرفه بدون اطلاع از اینکه اشکالی پیش آمده است خواهد بود.
ترکیب اطلاعات هدر و اطلاعات ارسال و دریافت را میتوان برای پیدا کردن یک اتصال بین دو سیستم گیرنده و فرستنده استفاده کرد.
انواع فایروال
بیایید نگاهی سریع بر انواع فایروال که به طور کلی به سه دسته تقسیم میشوند نیز داشته باشیم. فیلترینگ بر اساس پکت ها ؛ با وضعیت ؛ لایه اپلیکیشنی
فایروال های بر اساس فیلترینگ پکت ها و یا بدون توجه به ارسال کننده به این صورت کار میکنند که هیچ کاری به اتصالات و برقرار بودن connection ندارند به همین دلیل است که فقط بر اساس پکت هایی که در شبکه از آنها قصد عبور دارند فیلترینگ را انجام میدهند و این کار را نیز بر اساس هدر هر پکت انجام خواهند داد.
فایروال های بر اساس وضعیت کمی متفاوت هستند این مدل فایروال ها قادر به تشخیص برقراری ارتباط و وضعیت پکت ها هستند که این کار آنها را انعطاف پذیر تر از فایروال های بدون نیاز به وضعیت میکند. این مدل فایروال ها تمامی پکت ها دریافتی را تا زمانی که مشخص شود مبدأ ارسالی آنها کجا است دریافت کرده و درخود نگهداری میکنند البته تا قبل از اینکه قانونی برای آنها وضع شود.
فایروال های اپلیکیشنی یک قدم فراتر خواهند رفت ؛ این نوع فایروال با آنالیز کردن اطلاعاتی که رد و بدل میشود کار میکند. که به ترافیک شبکه اجازه میدهد با قوانین فایروال دسته بندی شوند و برای اپلیکیشن خود یا سرویس مورد نظر ارسال شوند این مدل با نام دیگر فایروال های بر پایه پروکسی ( proxy based firewall ) نیز شناخته میشوند.
به جز فایروال های نرم افزاری که در تمامی سیستمعامل های مودم ها به کار گرفته میشوند فایروال ها سخت افزاری نیز وجود دارند مانند روتر ها و همچنین تجهیزات فایروالی با این حال بحث ما در مورد فایروال های بر پایه وضعیت شبکه (stateful) میباشد که بر روی سرور ها اجرا شده و امنیت آنها را بیشتر مینماید.
قوانین فایروال ها
همانطور که در بالا گفته شدترافیک شبکه که فایروال را پیمایش میکنند در برابر قوانین وضع شده در فایروال آزموده میشوند تا معلوم شود که این اطلاعات اجازه عبور دارند یا خیر. برای اینکه بفهمیم فایروال دقیقاً چگونه عمل خواهد کرد بهتر است مثالی بزنیم تا بهتر متوجه قضیه شوید :
فرض کنید که سروری دارید که لیست قوانین زیر را برای فایروال آن وضع کردهاید تا بر روی ترافیک دریافتی اعمال کند
۱. ترافیک های جدید یا از قبل گرفته شده را قبول کن و به قسمت همگانی اینترفیس شبکه (public ) و پورت های ۸۰ و ۴۴۳ هدایت کن (پورت های http و HTTPs )
۲. ترافیک هایی را که از آی پی هایی به جز آی پی کارکنان فنی (کارکنان دفتر شما) دریافت میکنی به پورت ۲۲ هدایت کن (ssh )
۳. ترافیکی را که از آی پی های داخل دفتر شرکت شما منتثل میشوند قبول کرده و به قسمت شبکه خصوصی و پورت ۲۲ بفرست (ssh)
توجه داشته باشید که در این قوانین سه چیز حتماً به کار میروند ؛ قبول کن ؛ ردکن ؛ رها کن
این سه کاری چیزی است که فایروال حتماً باید در مواجهه با ترافیک شبکه انجام دهد. قبول کردن به معنی اجازه دادن به ترافیک مورد نظر برای عبور است و رد کردن به معنای بلاک کردن ترافیک و ارسال ارور ureachable یا غیرقابل دسترسی به فرستنده است و رها کردن به معنی بلاک کردن ترافیک بدون فرستادن جوابی به فرستنده است
بدین صورت است که ترافیک شبکه در برابر لیستی از قوانین فایروال آزموده میشود. به محض اینکه ترافیک با یک قانون مطابقت داشته باشد در شبکه داخلی و روی سرور ها راه پیدا کرده و به مقصد نهایی خواهد رسید. تمامی این قوانی را میتوان برای سرور ها در نظر گرفت و از دسترسی افراد نامربوط به سرور یا سیستم جلوگیری کرد.
در قسمت بعد در مورد ترافیک های دریافتی و ارسالی و چند ابزار خوب صحبت خواهیم کرد.