مرکز فروش و آموزش سرورهای ویپ، تجهیزات شبکه و سانترال پاناسونیک

آموزش ساخت Address Lists با استفاده از رول های فایروال (جلسه ۳۳)

ساخت Address Lists با استفاده از رول های فایروال 
ویدئوی آموزشیدوره روترهای میکروتیک (جلسه 33)
نویسنده مقاله : تیم تولید محتوا تاریخ انتشار : ۲۸ اسفند ۱۴۰۲ تعداد دفعات نمایش : 658 شناسه مقاله : 51670 تعداد دیدگاه : بدون نظر آخرین آپدیت مقاله :
۲۶ فروردین ۱۴۰۳
برچسب

ساخت Address Lists با استفاده از رول های فایروال   

ما در این قسمت در ادامه ی جلسه ی قبل که به صورت دستی لیستی از آی پی ها را ساختیم، می خواهیم در رابطه با Address List ها صحبت کنیم. می خواهیم در این بخش، لیستی از آی پی ها را بسازیم؛ اما نه به صورت دستی؛ بلکه با استفاده از رول هایی که در فایروال ایجاد می کنیم. حال چه کاربردی دارد؟ ما در مورد این موضوع در بخش های بعدی این مقاله، صحبت خواهیم کرد.

توضیحات اولیه

ابتدا به سراغ روترمان برویم. ما در  بخش Firewall قسمت Filter Rules در جلسه ی قبل، یک Address List ساختیم و تعدادی IP داخل آن قرار دادیم و بعد گفتیم که می توانیم در فیلتر رول ها، این لیست ها را در سربرگ Advanced یا سربرگ General استفاده کنیم.

شما می توانید Address List را با استفاده از رول نیز بسازید. ابتدا ما کاربرد این موضوع را به شما بگوییم؛ شاید این گونه برایتان راحت تر باشد. کاربرد آن در مواقعی است که برای مثال، ما می خواهیم سورس ربات ها یا کسانی که در حال Attack زدن به ما هستند را بگیریم و آن ها را برای مدت زمان خاصی، بلاک کنیم؛ یعنی باید لیستی را از کسانی که در حال Attack زدن به ما هستند، بسازیم.

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

ساخت Address List با رول های فایروال

دقت کنید که ما دیگر با Address List هایی که قبلاً ساخته بودیم، کاری نداریم. هدف ما در این سناریو چیست؟ ما می خواهیم یک سناریوی خیلی ساده را به شما بگوییم. می خواهیم IP کسانی که در حال گرفتن پینگ میکروتیک هستند را داشته باشیم و ببینیم چه کسانی در حال گرفتن پینگ روتر ما هستند. حال این سناریو، ساده است. ما این مثال را در فایروال پیاده سازی نمی کنیم؛ چون به دردمان نمی خورد؛ اما در بحث NAT از همین سناریو استفاده می کنیم.

کسانی که قرار است پورت اسکن بزنند و پورت هایی که NAT شده اند را پیدا کنند، ما آی پی آن ها را گرفته و بلاکشان می کنیم. این کاری است که قرار است ما بعداً انجام دهیم و فعلاً در این قسمت با icmp برایتان اجرا می کنیم. ما رول قبلی را غیر فعال کرده و از نو می نویسیم. نحوه ی نوشتن آن به این شکل است:

می گوییم اگر input بود، src.Address ما هر چه که بود و اگر پروتکل ما icmp و اگر اینترفیسمان از LAN بود، ما می خواهیم شامل کلاینت خودمان بشود. ابتدا به سراغ وان نوت می رویم. کلاینتمان را مشاهده میکنیم. ما در حال پینگ کردن روترمان از طریق درگاه bridge هستیم که اسم آن LAN بوده و Master می باشد و ما نمی توانیم Slave های آن را انتخاب کنیم(در جلسه ی قبل در مورد این موضوع صحبت کردیم). ما اینترفیس LAN را انتخاب کردیم، پروتکل icmp است و Chain نیز در حالت input می باشد؛ یعنی در حال وارد شدن به میکروتیک است.

ساخت Address List با رول های فایروال

Acion آن را drop نمی کنیم؛ نمی خواهیم الان drop شود. ما می خواهیم سورس آن را بگیریم و ببینیم که چه کسی در حال گرفتن پینگ میکروتیک است. اولین هدف ما، این مورد است. مشاهده می کنید که امکان ساخت دو لیست وجود دارد: add dst to address list و add src to address list و شما می توانید از هر دو طبق نیازی که دارید، استفاده کنید.

آموزش ساخت Address List

ما الان می خواهیم سورس(src) را بگیریم؛ چون دستینیشن(dst) آن را می دانیم که ۱۰.۱ است؛ چرا؟ چون قبلاً به شما گفتیم که کلاینت سمت چپ(در تصویر زیر) با سورس ۸۰ در حال زدن icmp یا پینگ گرفتن از دستینیشن LAN ما که ۱۰.۱ است، می باشد؛ بنابراین دستینیشن آن مشخص و سورس آن نامشخص است و ما می خواهیم سورس آن را نگه داریم.

ساخت Address List با رول های فایروال

پس add src to address list را در قسمت Action وارد می کنیم. موضوعی به نام Log در این قسمت وجود دارد که می توانیم Log آن را فعال کنیم و یک prefix نیز برای آن بگذاریم که زمان پیدا کردن، راحت تر باشد. همچنین در قسمت Address List، نام آن را انتخاب می کنیم که در چه لیستی قرار دهد.

برای مثال نام آن را می گذاریم: src-list-ping. این سورس ها در حال گرفتن پینگ از میکروتیک هستند. Timeout را نیز می توانیم مشخص کنید که این سورس ها تا چه مدتی در لیست ما بمانند. کاربرد این مورد را در انتهای مطالب به شما می گوییم و فعلأ روی همان none dynamic می گذاریم که به صورت همیشگی باقی بماند و در آخر Ok را می زنیم.

ساخت Address List

الان ما چه کاری انجام دادیم؟ ما الان یک input با پروتکل icmp و اینترفیس LAN ساختیم و به این ترتیب همان طور که در تصویر زیر می بینید، پینگمان را پی در پی می گیرد.

ساخت Address List با رول های فایروال

ابتدا کانتر آن را صفر می کنیم و دوباره پینگ می گیریم. آن را drop نکردیم و فقط سورس آن را در یک لیست قرار دادیم. مطابق تصویر زیر، مشاهده می کنید که در حال مچ شدن با این رول(رول آبی در تصویر زیر) است. نوع آن چیست؟ add src to address list است.

ساخت Address List با رول های فایروال

حال به سربرگ Address lists می رویم. مشاهده می کنیم که یک لیست، اضافه شده است؛ یعنی همان src-list-ping. این در واقعی نامی بود که ما انتخاب کردیم و اگر اکنون آن را انتخاب کنیم، نشان می دهد که در لیستمان، یک Address list به نام ۱۹.۱۶۸.۱۰.۸۰  قرار گرفته است.

ساخت Address List با رول های فایروال

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

ساخت ادرس لیست با رول های فایروال

حال ما برای مثال، آی پی سیستممان را به ۱۹۲.۱۶۸.۱۰.۵۰ تغییر می دهیم. فعلاً گتوی و DNS نمی خواهیم؛ چون می خواهیم در شبکه ی LAN کار کنیم.

ساخت Address List با رول های فایروال

مشاهده می کنیم که ۱۰.۵۰ مجدداً ظاهر می شود؛ یعنی هر کسی که پینگ ما را بگیرد، لیستش در این قسمت نمایش داده خواهد شد.

ساخت Address List با رول های فایروال

حال ما این لیست را ساختیم. اکنون چگونه می توانیم آن را drop کنیم؟ الان متوجه شدیم که چه کسانی در حال پینگ گرفتن در لیستمان هستند. حال می خواهیم این موارد را drop کنیم. Drop کردن در یک رول دیگر انجام می شود. بهترین کار این است که رول قبلی را باز کنیم و از آن Copy بگیریم و در نهایت، اکشنی که زدیم و گفتیم که به add src to address list برو را با drop جایگزین کنیم.

فقط موضوعی وجود دارد. بهتر است که به سربرگ Advanced برویم و لیستمان را روی حالت src-list-ping قرار دهیم که اگر این موارد بودند، آن ها را drop کن.

مطابق تصویر زیر، مشاهده می کنید که در رول اولی ما Address List را ساختیم و نام خاصی برای آن انتخاب کردیم و سورس را در آن قرار دادیم و در رول بعدی، ما در حال drop کردن کسانی هستیم که در لیست src address list باشند. مشاهده می کنید که ما در قسمت src.address list، src-list-ping را قرار دادیم و گفتیم که حالا هر کسی که در این لیست بود، drop شود.

ما Reset all را می زنیم تا همه صفر شوند. ملاحظه می کنیم که هم اولی برایمان پکت می اندازد و هم دومی؛ یعنی با اولی مچ است و سورس آن را گرفته و به لیست منتقل می کند و در مرحله ی بعدی چک می کند که اگر input و icmp بود و در حال وارد شدن از LAN بود و اگر در لیست پینگمان بود، drop شود.

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

می گوییم اگر کسی خواست روی پورتی که ما قرار دادیم NAT کند و اگر IP آن برای مثال خارج از ایران بود، IP و سورس آن را بگیر و آن را به یک لیست انتقال بده و در رول بعدی، می گوییم که هر چه که در این لیست بود را drop کن و برای مثال به مدت ۲۴ ساعت در این لیست بماند.

این همان کاربرد Timeout است که گفتیم که می توانیم زمان را در آن مشخص کنیم که این سورس آی پی در لیستمان بماند. اگر بگذارید که همیشه بماند، لیست خیلی بزرگی خواهید داشت؛ مخصوصاً زمانی که بخواهید عملیات خیلی روتینی را روی آن انجام دهید؛ برای مثال اگر بخواهید پینگ بگیرید یا icmp را ببندید.

ساخت Address List

 اگر بخواهید icmp را ببندید، نباید IP هر کسی که در حال icmp زدن به شما است را به صورت همیشگی نگه دارید؛ چون به لیست خیلی بزرگی تبدیل می شود و گزینه ی خوبی نیست. ممکن است در دراز مدت، باعث اختلال در عملکرد منابع میکروتیکتان بشود.

برای همین، ما زمانی را برای آن انتخاب می کنیم؛ چون می خواهیم جلوی Attack را بگیریم. اگر کسی در حال Attack زدن به ما است، می خواهیم برای مثال به مدت دو ساعت، جلوی Attack او را بگیریم. بعد از دو ساعت اگر دوباره Try کرد، مجددأ IP آن را گرفته و به لیست انتقال دهد.

پس بهتر است که ما از Timeout در این قسمت، استفاده کنیم تا لیستی که در حال ساخت آن هستیم، یک لیست Dynamic باشد و همیشه به آن اضافه نشود. اگر مدام به آن append و اضافه شده و لیست بزرگ شود، باعث می شود که لیست خیلی بزرگی را داشته باشیم و ممکن است CPU و رم میکروتیک را درگیر کند. ما به همین خاطر پیشنهاد می کنیم که از Timeout استفاده کنید. برای مثال، روی ۲ ساعت قرار دهید. این هم کاربرد Timeout که ما در مثال عملی، این مورد را کاملاً برایتان پیاده سازی خواهیم کرد.

ما فقط خواستیم که در این بخش از آموزش به شما بگوییم که ما می توانیم برای مثال یک لیستی از سورس ها را بسازیم و IP کسانی که در حال Attack زدن هستند را بگیریم و در لیست قرار دهیم و در رول بعدی، اکشنی که مد نظرمان است را روی آن ها پیاده سازی یا اجرا کنیم. این کار مهمی است که ما می توانیم انجام دهیم. الان اگر ما به Address Lists برویم، می توانیم ببینیم که چه آی پی هایی از چه کشورهایی در حال Attack زدن به ما هستند.

 برای مثال متوجه می شویم که فلان کشور در حال گشتن به دنبال پورت اسکن بوده و در حال اسکن کردن پورت های ما بوده است و یا دنبال IP Static ما بوده و در حال پینگ گرفتن بوده است و یا هر کار دیگری مثل: استفاده کردن از NAT، زدن ssh و…. می توانیم انواع لیست ها را بسازیم و کسانی که در حال Attack زدن هستند را پیدا کرده و سورس آن ها را در لیستمان قرار دهیم و آن ها را بلاک یا drop کنیم. این کاربرد بسیار مهم Address List است.

درباره تیم تولید محتوا

تیم تولید محتوا و سئو پی بی ایکس شاپ. در تلاشیم تا بهترین محتوای آموزشی را تولید کنیم، همراه ما باشید

دیدگاه شما درباره این مقاله چیست ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پشتیبانی آنلاین واتساپ

منتظر پیام شما عزیزان هستیم