اولویت بندی فیلتر رول ها در فایروال میکروتیک
دوستان ما قصد داریم در این بخش در رابطه با اولویت بندی فیلتر رول ها در فایروال میکروتیک صحبت کنیم.
آنچه در این مقاله می خوانید:
توضیحات اولیه
این بخش در ادامه ی بخش قبلی است. ما در بخش قبل در رابطه با موضوع بسیار مهمی صحبت کردیم و گفتیم که دراپ کردن یک سری پکت ها به دو شکل کلی انجام می شود: نوع اول این بود که اگر می توانیم پکت های نامطلوبمان را select کنیم و بعد آن ها را دراپ کنیم؛ یعنی با یک رول بنویسیم.
روش دوم این بود که گفتیم که می توان با دو رول نوشت؛ این که در رول اول پکت های مطلوب یا پکت هایی که مد نظرمان است و Attack نیستند را Accept کرده و در رول بعدی، همه ی پکت های مربوط به آن موضوع را دراپ کنیم. این کاری بود که ما در بخش قبلی انجام دادیم.
اولویت بندی در فیلتر رول ها
حال اگر دقت کنید، مشاهده می کنید که به ترتیب رول ها را از ۰ تا ۶ مشخص کرده است. رول هایی که قرار است بنویسیم و از لحاظ امنیت پیاده سازی شوند در رول نویسی در تمام روترها یا بهتر است بگوییم در تمام فایروال ها، همگی اولویت دارند.
مثلاً در NAT، ما همچین چیزی را نداریم؛ اما در فیلتر رول ها در NAT تفاوتی ندارند؛ ممکن است در کار یک دیگر اختلال ایجاد کنند؛ اما در فیلتر رول ها ترتیب و اولویت وجود دارد؛ یعنی شما باید اولویت و priority هر یک از رول هایی که می نویسید را در نظر بگیرید.
مثالی برایتان می زنیم. برای مثال ما در رول بالایی یعنی در بالاترین سطح که سطح ۰ است، یک پکتی که نامطلوب است و ممکن است Attack باشد را Accept کردیم و بعد آن را در رول های پایینی، drop کردیم.
این در واقع اشتباهی است که ما در رول نویسی انجام می دهیم و هنگامی که پکت نامطلوب یا Attack وارد روتر شود، Accept می شود و دیگر عملاً به drop نمی رسد و شما رول ها را در فیلتر رول به شکلی بنویسید که در رول های سطح بالاتر، اختلالی در عملکرد رول های سطح پایین تر ایجاد نشود؛ یا بالعکس.
این مثال خیلی ساده ای است که ما در بخش قبلی زدیم. گفتیم که یک سری درخواست هایی را از IPهایی که ۱۰.۸۰ و ۱۰.۸۱ هستند، داریم؛ روی Address List ای که Limited-Lan-Clients است.
گفتیم که اگر این دو IP (10.80 و ۱۰.۸۱) بودند، آن ها را Accept کن و در غیر این صورت اگر با رول ۵ سازگار نشود، روی رول بعدی (رول ۶) می افتد؛ اگر هم با رول ۵ سازگار یا مچ شود از همین فیلتر رول عبور می کند و به مرحله ی بعدی می رود و دیگر به رول بعدی نمی رود؛ اما اگر مچ نشود به رول بعدی می رود. رول بعدی چه می شود؟ drop می شود.
هر چه که icmp باشد و در حال وارد شدن از LAN باشد، drop می شود و دیگر در آن قسمت با IP آن کاری نداریم. ما بدین شکل نوشتیم.
دقت کنید که الان ما با سیستم خودمان، پینگ ۱۰.۱ را داریم؛ چرا؟ چون IP سیستم ما در این لیست قرار داشته و در حال Accept شدن است. اگر در لیست نباشد در رول ۵ تطبیق پیدا نمی کند و مچ نمی شود و به رول ۶ افتاده و drop می شود.
حال اگر ما این دو را برعکس بنویسیم؛ یعنی ۶ را به بالای ۵ انتقال دهیم، یعنی اول drop و بعد Accept کن. اگر دقت کنید، مشاهده می کنید که ما در حال مچ شدن با رول بالایی هستیم؛ چرا؟ چون ما در drop، این گونه نوشتیم که همه را drop کن و در رول پایینی نوشتیم که همه را Accept کن. همین جا است که اولویت بندی یا priorityای که بین رول ها وجود دارد، معنا پیدا می کند.
ما ابتدا drop و بعد Accept کردیم در نتیجه به هدفمان نمی رسیم و مشاهده می کنیم که برعکس عمل می کند یا هر پکتی که باشد را کلاً drop می کند.
ما می خواهیم این گونه بگوییم که اگر این لیست ها بودند Accept شده و اگر نبودند، drop شوند؛ بنابراین Accept باید بالای drop قرار بگیرد؛ یعنی شما باید قوانینی که می خواهید بنویسید یا رول هایی که می خواهید ایجاد کنید را ابتدا روی کاغذ بنویسید که دقیقاً می خواهید که چه اتفاقی بیفتد.
حداقل برای شروع کار، این کار را انجام دهید که ترتیب آن ها را به شکل دقیقی پیاده سازی کنید و اختلالی بین اولویت ها ایجاد نشود.
این موضوع بسیار مهمی است که باید لحاظ کنید و به همین خاطر در ابتدای این مینی دوره، ما در مورد این موضوع صحبت کردیم و گفتیم که حتماً بعد از این که این رول ها را پیاده سازی کردید، باید آن ها را با ابزارهایی که در اختیارتان قرار دارند، تست کنید و ببینید که آیا این رول هایی که نوشتید درست عمل می کنند یا خیر؛ چون نوشتنشان اصلاً مهم نیست و درست عمل کردنشان است که مهم است.
این که ما بنویسیم اما جا به جا بنویسیم و همه را drop یا همه را Accept کنیم، فایده ای ندارد. باید چیزی که مد نظرمان است، پیاده سازی شود.
پس حتماً بعد از نوشتن رول ها، باید آن ها را تست کنید و ببینید که آیا به درستی کار می کنند یا خیر؛ مثلاً با همین مثال ساده ای که ما زدیم. الان اگر ما دو رول ۵ و ۶ را جا به جا کنیم، دیگر به هدفی که داریم نمی رسیم و چیز دیگری انجام می شود و کلاً همه را drop می کند.
کلام آخر
بحث اولویت بندی را نیز می خواستیم در قسمت جداگانه ای برایتان شرح دهیم و چون موضوع مهمی است، می خواستیم که در قسمتی مجزا بیان کنیم.
دوستان به آخر بخش یا پیش نیازها رسیدیم و از این جا به بعد، دیگر می خواهیم به سراغ پیاده سازی مثال هایی که به امنیت مرتبط هستند، برویم؛ یعنی اولین کاری که می کنیم، این است که جلوی پورت اسکن را می گیریم و در قسمت بعدی، می خواهیم در رابطه با پورت اسکن صحبت کنیم که هکرها و ربات ها از چه طریقی پورت هایی که ما باز گذاشتیم و دستینیشن نت را روی آن ها پیاده سازی کردیم را پیدا می کنند.
ما قصد داریم که جلوی این کار را بگیریم. توصیه می کنیم در قسمت بعدی آموزش نیز، همراه ما باشید.
دیدگاه شما درباره این مقاله چیست ؟