Parsi Coders
Firewall In Mikrotik - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Network & Internet section (http://parsicoders.com/forumdisplay.php?fid=138)
+--- انجمن: Mikrotik (http://parsicoders.com/forumdisplay.php?fid=91)
+--- موضوع: Firewall In Mikrotik (/showthread.php?tid=144)



Firewall In Mikrotik - Reza Moghadam - 05-02-2011

سلام خدمت دوستان عزیزم ...

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

در میکروتیک چندین Chain وجود دارد .

Input
بسته هایی که به آدرس خود میکروتیک وارد میشوند ...

Forward
بسته هایی که از خود میکروتیک عبور میکنند ...

Outpout
بسته هایی که از میکروتیک تولید میشوند و خارج میشوند ...

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

این شرط ها در رول ها همان فیلد هایی میباشند که ما در یک رول داریم مثل :

Src-Address
آدرس مبدا بسته ( آدرس فرستنده بسته )

Dst-Address
آدرس مقصد بسته ( آدرس گیرنده بسته )

Protocol
پروتکل مورد نظر ( TCP , UDP , GRE , ...

Src-Port
پورت مبدا

Dst-Port
پورت مقصد

Any-Port
هر پورتی ( رنج پورت های مورد نظر )

In. Interface
اینترفیسی که بسته ها از آنها وارد میکروتیک میشود

Out. Interface
اینترفیسی که بسته ها از میکروتیک خارج میشود

Packet Mark
بسته هایی با مارک مورد نظر

Connection Mark
بسته هایی با مارک کانکشن های مورد نظر

Routing Mark
بسته هایی با مارک روتینگ مورد نظر

Connection Type
نوع های کانکشن مورد نظر ( شامل برخی پروتکل ها که با NAT شدن مشکل دارند )

Connection State
بسته ایی با وضعیت کاکشن مورد نظر

ما چندین Connection State متفاوت داریم که شامل :
New
کانکشن های جدید در حال اجرا شدن

Invalid
کانکشن های غیر معتبر و باطل شده

Related
زیر کانکشن ها ، مثلا برای اجرای یک وب پیج یک کامکشن زده میشود و بعد از آن یک کانکشن جدید شکل گرفته میشود تا معبر باشد ( به کانکشم های دیگر نیاز دارد ) مثل پروتکل FTP که از پورت 20 و 21 استفاده میکند ...

Established
کانکشن هایی که در حال جاضر اجرا میباشند .

نکته : از Connection State ها برای بهینه کردن فایروالینگ استفاده میکنیم .
این مورد را با مثال میگویم :
فرض کنید شما یک رول مینویسید که تمامی بسته های TCP 80 را مارک کند تا صفحات وب را مچ کند ، در این زمان ما بسته های وب را با کانکشن استیت های مختلف داریم مثل New , Established , Related , Invalid و همه این ها وقتی توسط فایروال بخواهند مچ شوند باز زیادی را برای میکروتیک و CPU متحمل میشود .
به همین خاطر اگر به عمق قضیه نگاه کنید ، ما فقط قصد داریم بسته های وب را که میخواهند جدیدا شکل بگیرند را مچ کنیم به همین خاطر رول خودمان را بهینه میکنیم ، به این شکل که فایروال فقط بسته های وبی را که در حال شکل گیری هستند ( New State ) را چک کند .


در نهایت بعد از مچ شدن یک یا چند شرط مورد نظر ، دارای Action های متفاوت میباشم که آنها هم یک عملی را انحام میدهند و شامل :

Accept
بسته ها قبول شوند

Add Dst To Address List
آدرس مقصد بسته را در یک لیست آدرس ذخیره کند

Add Src To Address List
آدرس مبدا بسته را در لیست آدرس ذخیره کند

Drop
بسته ها را حذف کند .

Jump
به یک Chain دیگر منتقل شود

Log
در صورت مچ شدهن بسته ، یک لوگ ثبت شود ، ( اگر این رول در ابتدا لیست باشد و بسته ایی مچ شود ، به رول دیگر نمیرود )

Passtrouth
همانند Log میباشد با این تفاوت که در صورتی که لوگ را ثبت میکند ، به رول های دیگر هم برای مچ کردن میرود

Reject
علنی بسته رو از بین میبره :دی

Return
به Chain اصلی بر میگردد

Tarpit
برو بچه های دیتا تو بعضی روز های خواص ، اینترنت را توی این حالت قرار میدهند تا ما یکمی حال کنیم ! :دی
باعص میشود بسته های به مقصد نرسد و در اصل آنقدر سرعت را پایین می آورد که کانکشن به گونه ایی Hold میشود .
مثلا اگه برای بستهای وب این اکشن را انتخاب کنیم ، در باز کردن پیچ مشکل پیدا خواهیم کرد و با پیفام Connection Reset مواجه میشودیم و 10000 سال پیج باز نمیشه ! :دی

نکته :
به جز 3 Chain اصلی که از قبل تعریف شده میباشند ، میتوانیم Chain های جدید را خودمان طراحی کنیم .
در صورتی که Chain جدید طراحی کردیم ، برای ارسال بسته ای به آن ، از 2 اکشن Jump و Return استفاده میکنیم .

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

در صورتی که سوالی رد این زمینه داشتید طرح کنید تا پاسخ دهم ...

با آرزوی موفقیت
رضا مقدم