CDN ابری

فایروال چیست و چطور کار می کند؟

shahin شاهین نوعی
24 بازدید | 0 دیدگاه | 26 تیر 1401
/storage/post-images/1654284296_2022-06-03_blog_post_13-8.png
سرفصل های مهم
فایروال چیست و چطور کار می کند؟

فایروال سیستمی است که امنیت شبکه را با فیلتر کردن ترافیک ورودی و خروجی به آن و بر اساس قوانین از پیش تعریف شده توسط کاربر، تامین می کند. در کل، هدف فایروال ها این است که وجود ارتباطات شبکه ای ناخواسته را حین به رسمیت شناختن ترافیک سالم، کاهش داده یا از بین ببرد.

در اکثر زیرساخت های سرور محور، فایروال ها یک لایه امنیتی حیاتی را فراهم کرده که با ترکیب سایر سیستم های امنیتی، از دسترسی مهاجمین به سرور جلوگیری به عمل می آورند.

در این پست به نحوه عملکرد فایروال ها اشاره کرده و توضیح مختصری از بسته های TCP را نیز در پیش خواهیم داشت. سپس انواع فایروال ها را بررسی خواهیم کرد.

بسته های شبکه TCP

قبل از بررسی عملکرد و انواع فایروال ها بهتر است با پروتکل کنترل انتقال یا TCP آشنا شویم.

ترافیک شبکه TCP به شکل بسته یا Packet درون شبکه جا به جا می شود، که در اصل شامل هدر ( که دارای اطلاعات کنترلی نظیر آدرس های مرجع و مقصد و توالی بسته ها می باشد ) و داده ها می شوند.

در زمانی که اطلاعات کنترلی درون هر بسته، از ارسال صحیح داده های همراه با آن اطمینان حاصل می کند، المان های دیگر آن به فایروال ها کمک می کنند تا بسته ها را با قوانین تعریف شده تطابق دهند.

البته باید توجه داشته باشید که برای دریافت موفق بسته های TCP باید دریافت کننده بسته های تاییدیه ای به سمت ارسال کننده بفرستد. ترکیب این اطلاعات کنترلی در بسته های ارسالی و دریافتی  به شناسایی وضعیت اتصالات بین ارسال کننده و دریافت کننده کمک می کند.

انواع فایروال ها

به طور خلاصه سه نوع فایروال شبکه ای وجود دارد؛ فیلترینگ بسته ( Packet filteringstateful و لایه اپلیکیشن.

فایروال های فیلترینگ بسته، یا stateless، به این صورت عمل می کنند که هر بسته را به تنهایی واکاوی می کنند. به همین دلیل آنها از وضعیت اتصال اطلاعی ندارند، و تنها می توانند بسته ها را بر مبنای هدرهای موجود در هر بسته رد کرده و یا مجاز دانند.

فایروال های stateful در طرف مقابل، قادرند تا وضعیت اتصال بسته ها را شناسایی کرده که این امر آنها را نسبت به فایروال های stateless بسیار منعطف تر می کند. عملکرد آنها به این صورت است که بسته های مرتبط را نگه داشته تا قبل از پیاده سازی هر گونه قانون فایروالی، وضعیت اتصالشان مشخص شود.

فایروال های لایه اپلیکیشن یک قدم جلوتر رفته و داده های انتقالی را تجزیه و تحلیل می کنند؛ که این امر باعث می شود تا ترافیک شبکه با قوانین فایروال جفت شود ( همخوانی داشته باشد ). به این گونه فایروال ها proxy-based نیز می گویند.

در کنار نرم افزارهای فایروال موجود، که در تمام  سیستم عامل های مدرن کنونی موجود هستند، عملکرد فایروال ها توسط سخت افزارهای به خصوص نیز تامین می شود، مثل روترها یا سخت افزارهای فایروال.

منظور از فایروال stateful چیست؟

یک فایروال stateful بیشتر شبیه یک نگهبان مرزی است که هر بسته ای که در حال عبور و مرور است را بازرسی می کند. برای این که یک فایروال stateful به حساب آید، باید رکورد تاریخچه ترافیک را در خود نگه دارد تا بتواند تصمیماتی پیچیده تری در مورد مجاز شمردن یا رد کردن آن گیرد.

برای مثال، در یک handshake سه جانبه  TCP، اولین بسته از سمت یک کلاینت به سمت سرور، تنها باید پرچم SYN را دارا باشد؛ اولین پاسخ سرور نیز پرچم های ACK و SYN را در بر خواهد داشت؛  بسته سوم کلاینت، و تمامی بسته های پیرو آن پرچم SYN را همراه نخواهند داشت. با دانستن نحوه عملکرد پروتکل، فایروال stateful ما می تواند تشخیص دهد که یک بسته SYN-ACK بررسی شده و در صورت نداشتن بسته  SYN آن را رد کند. فایروال های Stateful می توانند برای سشن های UDP نیز رکوردهای وضعیت داخلی ایجاد کرده و سایر انواع ترافیک را بخوبی مدیریت کنند.

تفاوت بین فایروال سطح شبکه و سطح هاست چیست؟

یک فایروال Host-based روی یک کامپیوتر مجزا نصب شده تا از فعالیت های روی شبکه خودش محافظت کند. سیاست اتخاذ شده ممکن است بر ترافیکی که از اینترنت گذر می کند، تأثیر بگذارد.

در طرف مقابل، یک فایروال network-based، روی یک مسیر مشخص در شبکه تنظیم شده و از تمام کامپیوترهای سمت داخلی فایروال در مقابل تمام کامپیوترهای خارجی آن محافظت می کند. فایروال های سطح شبکه ممکن است روی سطوح دفاعی یا روی سرورهای لبه ی یک شبکه نصب شوند، تا از یک سازمانی موجود در یک هاست یا بخشی از یک جامعه در مقابل حملات محافظت کند.

قوانین فایروال ها

همانطور که گفته شد، ترافیک شبکه ای که از یک فایروال می گذرد، از قوانینی عبور می کند که به آن اجازه ورود و خروج به شبکه را می دهد. برای توضیح بهتر قوانین فایروال ها بهتر است با چند مثال ادامه دهیم:

فرض کنید که شما سروری با لیستی از قوانین فایروال در اختیار دارید که بر ترافیک های ورودی نظارت دارد:

  1. ترافیک ورودی جدید به سمت شبکه عمومی را روی پورت های 80 و 443 ( ترافیک وب http و https ) مجاز بدان.
  2. ترافیک ورودی از آدرس IP های کارمندان غیر فنی در اداره خودمان به سمت پورت 22 ( SSH ) را drop کن.
  3. ترافیک ورودی جدید از رنج IP اداره خودمان به سمت شبکه خصوصی پورت 22 ( SSH ) را رد کن.

همانطور که مشاهده می کنید، آخرین کلمه در جمله های مثال ما "مجاز بدان" یا "رد کن" هستند. در این پروسه شما باید با سه عبارت reject, accept, drop آشنایی داشته باشید. اینها اقداماتی هستند که یک فایروال در مواجهه با ترافیک ورودی ای که با قوانین خاصی هم خوانی دارد، انجام خواهد داد.

Accept یعنی به ترافیک اجازه عبور بده؛ reject به این معناست که ترافیک را بلاک کن ولی با یک ارور "غیر قابل دسترسی" پاسخ بده؛ و در نهایت drop به معنای این است که بلاک کن و هیچ پاسخی ارسال نکن.

سایر مقادیر موجود در هر قانون به شرایطی اشاره دارد که هر بسته باید با آن هم خوانی داشته باشد که این مورد به سیاست شما در قبال ترافیک ورودی و خروجی بستگی دارد.

ممکن است گاهی اوقات ترافیک شبکه با لیستی از قوانین فایروال در یک توالی یا زنجیره، هم خوانی پیدا کند. با نگاهی جزئی تر، زمانی که یک قانون هم خوانی پیدا می کند، اقدام مرتبط با آن روی ترافیک مورد نظر اعمال می شود؛ در مثال فوق، اگر یک کارمند حسابداری سعی در برقراری ارتباط SSH با سرور را داشته باشد، طبق قانون شماره 2 درخواست وی رد خواهد شد، حتی قبل از اینکه قانون سوم تست شود.

یک ادمین سیستم، در طرف مقابل، اجازه ورود پیدا خواهد کرد، چراکه تنها با قانون شماره 3 هم خوانی دارد.

منظور از سیاست فایروال یا ruleset چیست؟

یک فایروال بر مبنای سیاست های مشخص، تعیین می کند که چه بسته هایی باید تایید، رد یا drop شوند؛ بیشتر فایروال ها تنها یک بسته را تایید یا رها می کنند، ولی به ندرت بسته ای را نادیده می گیرند. نادیده گرفتن یک بسته ممکن است به این دلیل باشد که احتمالا پهنای باند بیشتری در مسیر برگشتی خود مصرف خواهد کرد، و از طرفی سیستم مرجع بسته، در صورتی که پاسخ برگشتی دریافت نکند، فرض را بر این خواهد گذاشت که بسته توسط سیستم ریموت رها یا drop شده است.

زمانی که شخصی تصمیم دارد تا از فایروال استفاده کند، غالبا می داند که می خواهد چه اقدامی را انجام دهد؛ برای مثال، فایروال باید به ترافیکی که قصد ورود به سرور من را دارد اجازه ورود دهد؛  ولی سایر ترافیک ها را رد کند. این جمله یک سیاست فایروال به حساب می آید؛ شخصی این سیاست را اتخاذ می کند، که اغلب با نام ادمین فایروال شناخته می شود، این جمله را به یک سری عبارت تکنیکال که به آن ruleset گویند، ترجمه کرده و آن را به سخت افزار یا نرم فزار انتقال می دهد.

فایروال ها یک تنظیمات پیش فرض دارند، که معمولاً تمامی ترافیک ها را رد خواهد کرد. در واقع فایروال ویندوز اینگونه عمل می کند. به صورتی که کاربرانی که فایروال ویندوز را فعال می کنند، با پیغامی مواجه خواهند شد که از آنها اجازه دسترسی یک اپلیکیشن به اتصالات شبکه ای را جویا می شود. اگر به آن اجازه داده شود، نرم افزار فایروال ویندوز، به ruleset یک قانون اضافه کرده که اجازه ورود ترافیک از سمت آن اپلیکیشن را صادر می کند.

در تمامی پلتفرم های فایروال، از جمله کنترل پنل فایروال ویندوز، شما می توانید قوانین را اضافه یا حذف کنید.

سیاست پیش فرض

معمولاً زنجیره ای از قوانین فایروال ملزم به پوشش دادن هرگونه شرط ممکن نیستند؛ به همین دلیل، زنجیره فایروال باید یک سیاست پیش فرض مشخص داشته باشد، که تنها شامل یکی از اقدامات reject, accept, drop باشد.

فرض کنید که سیاست پیش فرض در مثال زنجیره فایروال بالا، فقط Drop کردن بود. در این حالت اگر هر کامپیوتری خارج از اداره شما سعی در برقراری ارتباط SSH با سرور شما می داشت، ترافیک drop می شد، چراکه با هیچ یک از قوانین تعریف شده تطابق نداشت.

اگر سیاست پیش فرض accept می بود، هر شخصی، بجز کارمندان غیر فنی اداره خودتان، قادر بود تا با هر سرویس بازی روی سرور شما ارتباط برقرار کند؛ این یک مثال از یک فایروال بسیار ضعیف ( از لحاظ پیکربندی ) است چراکه تنها یک سری از کارمندان خودتان را غیرمجاز می داند.

ترافیک ورودی و خروجی

از آنجا که از نگاه یک سرور، ترافیک شبکه می تواند ورودی یا خروجی باشد، یک فایروال یک سری قوانین مجزایی برای هر دو حالت در خود نگه می دارد؛ ترافیکی که از منبعی دیگری نشأت گرفته (ترافیک ورودی)، نسبت به ترافیک خروجی که از سمت سرور ارسال می شود، با برخورد متفاوتی رو به رو می شود.

طبیعتاً سرور به اکثر ترافیک خروجی اجازه عبور و مرور می دهد چراکه مسلماً به خودش اعتماد دارد؛ ولی با این حال، یک سری قانون خروجی می تواند از ارتباطات ناخواسته جلوگیری به عمل آورد؛ در شرایطی که سرور تحت حمله یک هکر یا مجری مخرب قرار گرفته باشد.

به منظور کسب بهترین نتیجه امنیتی از یک فایروال، باید مشخص کنید که می خواهید سیستم های دیگر به چه روشی با سرور شما در تعامل باشند، بنابراین باید قوانینی تعریف کنید که به طور خاص آنها را مجاز یا غیر مجاز بحساب آورد.

البته برای تنظیم قوانین خروجی دقت کنید که به سرور اجازه ارسال پاسخ های تاییده را داده باشید، تا بتواند با اتصالات ورودی سالم به درستی ارتباط برقرار کند.

بعلاوه یک سرور باید بتواند ترافیک خروچی اولیه خود را پیش برد تا بتواند آپدیت های جدید را دانلود کرده، یا با دیتابیس ارتباط گیرد؛ پس باید قوانین را طوری تعریف کنید که این گونه شرایط را شامل شود.

نوشتن قوانین خروجی

فرض کنید که فایروال مثال ما به صورت پیش فرض روی drop کردن ترافیک خروجی تنظیم شده باشد؛ این یعنی قوانین accept ورودی ما بدون قوانین خروجی مکمل عملاً بی فایده خواهند بود.

برای تکمیل قوانین فایروال ورودی مان در مثال بخش بالا ( 1 و 3 )، و مجاز دانستن ارتباطات سالم روی آن آدرس ها و پورت ها، می توانیم از این قوانین فایروال خروجی کمک بگیریم:

  1. ترافیک خروجی ایجاد شده به سمت شبکه عمومی روی پورت 80 و 443 ( ترافیک وب http و https ) را accept کن.
  2. ترافیک خروجی ایجاد شده به سمت شبکه خصوصی روی پورت 22 ( SSH ) را accept کن.

دقت کنید که نیازی به نوشتن قانون برای ترافیک ورودی ای که drop می شود (مثلا قانون شماره 2) نیست چراکه سرور نیازی به تایید یا ایجاد ارتباط ندارد.

راهکار میزبان کلود

در صورتی که قصد راه اندازی فایروال برای سرور یا وب اپلیکیشن خود را دارید، می توانید به سادگی از سیستم امنیت ابری میزبان کلود استفاده کرده و از طریق پنل کاربری، تنظیمات فایروال را مطابق با سیاست های خود ایجاد کنید و یا هر گونه قوانین ورودی یا خروجی خاصی را اضافه و یا حذف کنید.

در صورت داشتن هر گونه سوال در خصوص قابلیت های فایروال میزبان کلود می توانید با کارشناسان ما تماس گرفته و یا به صفحه سرویس امنیت ابری میزبان کلود مراجعه کنید.

جمع بندی

حال که می دانید فایروال ها چطور عمل می کنند، لازم است که برای برقراری امنیت بیشتر سایت و سرور خود از آنها استفاده کنید.




پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
برچسب ها :
نویسنده مطلب شاهین نوعی

Hi everyone, my name is Shahin Noei; I'm so glad to be sharing with you my latest knowledge of IT infrastructure and I warmly invite you to ask any of your questions in my linkedin page. I've been working in digital marketing field for the last 5 years and I've been in touch with some IT businesses long enough to get the most out of the newest technologies in this modern era.

فایروال چیست و چطور کار می کند؟ 0 دیدگاه

مطالب را قبل از دیگران مطالعه کنید

دریافت جدیدترین مطالب در ایمیل شما

ایمیل شما به صورت کاملا محرمانه نزد ما محفوظ است
ما برای شما هرزنامه ارسال نمی کنیم