ابتدا باید بگم که توی این ارسال قصد آموزش کار با فایروال و رول های مختلف میکروتیک رو نداریم بلکه به بررسی یک روش کوچیک برای شناسایی اسکنر ها و در نهایت محدود کردنشون می پردازیم، در واقع از یک ترفند کوچیک برای این منظور استفاده می کنیم.
سازمانی رو فرض کنید که گروهی از کارمندان برای انجام کار های خود فقط احتیاج به استفاده و دسترسی به پورت 80 روتر رو دارند (مثلا روی این پورت روتر یک DST nat رخ می دهد و متصل میشوند به یک سرور داخلی) یعنی عملا هیچ دلیل و توجیهی برای متصل شدن کارمندان به روتر روی دیگر پورت ها وجود ندارد !
به عنوان مثال دلیلی برای متصل شدن یک کارمند روی پورت 22 و یا 23 به روتر وجود ندارد. مسئله این جاست که اگر یکی از کارمندان اقدام به متصل شدن روی یکی از پورت ها کرد و یا حتی پورت اسکنی بر روی روتر انجام داد، چه طور با در بسته مواجه شود و علاوه بر این که نتایجی اشتباه را رصد کند، آی پی سیستم آن کارمند در روتر log شود و دسترسی او بلافاصله قطع شود.
پس یعنی می خواهیم:
الف) اگه کارمندی پورت 22 رو اسکن کرد (و یا هر پورت دیگری به جز 80) با بسته بودن پورت مواجه بشه
ب) همچنین بعد از اسکن بلافصله دسترسیش کامل قطع بشه و آی پی آن هم در روتر log بشه
برای این کار از یک ترفند کوچیک در قسمت فایروال استفاده می کنیم.
ابتدا سناریو زیر رو با هم فرض می کنیم:
روتر: میکروتیک با آدرس آی پی 10.10.10.1
کلاینت: ویندوز XP با آدرس آی پی 10.10.10.5
همان طور که در بالا گفته شد، شبکه ی ما طوری طراحی شده است که دلیلی برای متصل شدن به دیگر پورت های روتر مثل 22 و یا 23 از طرف یکی از کلاینت های نتورک 10.10.10.0/24 وجود ندارد. همچنین گفتیم علاوه بر این که می خواهیم پورت ها برای این کلاینت ها بسته باشد، دسترسی افراد خاطی رو قطع کنیم و آی پی آن ها رو log کنیم.
برای این منظور:
یا کرد زیر را در ترمینال وارد کنید.
ip firewall filter add chain=input dst-address=10.10.10.1 src-address=10.10.10.0/24 protocol=tcp dst-port=!80 action=add-src-to-address-list address-list=Scan
و یا مثل تصاویر زیر انجام دهید.
با استفاده از رولی که بالا گفتیم:
اولا) تمامی درخواست های input
دوما) روی آدرس آی پی روتر یعنی 10.10.10.1
سوما) که روی پورت 80 نیستند را بررسی کن
چهارما) و آدرس آی پی مبدا کسی که این درخواست ها را فرستاده است را داخل List Address ای با نام Scan بریز
حالا یک رول دیگر باید اضافه کنیم و بگیم دسترسی آی پی هایی که داخل List Address ما (با نام Scan) قرار دارد را کاملا قطع کن.
برای این منظور:
ip firewall filter add chain=input src-address-list=Scan action=drop
توجه: ما در رول اول پروتکل رو tcp انتخاب کردیم، می تونید udp رو هم اضافه کنید تا کسی از این طریق هم نتونه پورت اسکن رو انجام بده و یا می تونید icmp رو هم اضافه کنید و … که همه ی این موارد بستگی به پالیسی های تعیین شده از طرف شما دارد.
توجه: در رول شماره ی دو chain را بر روی input گذاشتیم و گفتیم که تمامی ترافیک ورودی به روتر Drop شود. با استفاده از این رول فرد خاطی فقط دسترسی خود را به روتر از دست می دهد و اگر میکروتیک ما حکم یک مسیر یاب را هم بازی کند (که قطعا همین طور هم هست) فرد خاطی همچنان می تواند به دیگر نتورک ها دسترسی داشته باشد. پس می توان برای محدودیت بیش تر برای فرد خاطی، forward chain را هم براش ببندیم. برای این منظور کافیست رول بالا را با forward وارد روتر کنیم. یعنی:
ip firewall filter add chain=forward src-address-list=Scan action=drop
حالا کافیه یکی از کلاینت ها سعی کنه روی یکی از پورت ها به روتر متصل بشه. علاوه بر این که نمی تونه نتایج اسکن رو مشاهده کنه، پورت 80 که تا قبل از این بهش دسترسی داشته هم براش بسته میشه و آی پی آدرسش هم داخل روتر در قسمت List Address ثبت می شود! به عنوان مثال:
همان طور که مشاهده می کنید تا قبل از تلنت کردن به روتر، سیستم می توانست روتر را پینگ کند و یا روی پورت 80 به روتر متصل شود. اما بعد از تلنت تمامی دسترسی هایش قطع شده و حتی پینگ هم نمی تواند بگیرد.
برای مشاهده ی آی پی هایی که در داخل List Address ما اضافه شده اند، یعنی برای مشاهده ی کارمندان خاطی به شکل زیر عمل می کنیم:
ip firewall address-list print
نکته: بهتر به این نکته هم توجه داشته باشید که ممکن است خود سیستم کاربر (مانند ویندوز ده) هم برای موارد گوناگون (مانند بروزرسانی و غیر) اقدام به دسترسی به اینترنت بر روی پورت های غیرمجاز مشخص شده کند، پس بهتر است کمی بر روی رول های نوشته شده دقت کرده و متناسب با شبکه خود این تنظیمات را تغییر دهید و یا از Drop شدن جلوگیری کرده و فقط از طریق لاگ های برداشته شده، شبکه خود را مدیریت کنید.
منبع: oslearn