تنظیمات Firewall در میکروتیک (قسمت دوم)
مقدمه :
در جلسه ی گذشته با ماهیت Firewall در میکروتیک آشنا شدیم. همچنین به پنجره ی تنظیمات آن در میکروتیک وارد شدیم و انواع گزینه های مربوط به آن را مشاهده نمودیم.
در این جلسه قصد داریم با چند مثال ساده با چگونگی کارکرد Firewall در میکروتیک آشنا شویم.
مثال ۱ : فرض کنید که یک شبکه ی LAN به پورت شماره ی ۱ روتری متصل است. بر روی پورت شماره ۱ روتر نیز آدرس IP : 192.168.100.1/24 تنظیم شده است. همچنین روتر از طریق DHCP Server ای که بر روی پورت شماره ۱ ایجاد شده است، به همه ی Client ها در شبکه ی LAN ، IP ای از رِنج ۱۹۲٫۱۶۸٫۱۰۰٫۰/۲۴ اختصاص میدهد. بدین ترتیب Client ها به راحتی میتوانند با استفاده از ابزاری مانند Ping ، Telnet ، Winbox و … با روتر ارتباط برقرار کنند. در چنین شرایطی مدیر شبکه ممکن است به هر دلیلی تصمیم بگیرد که هیچ کدام از Client ها نتوانند به سمت روتر Ping ارسال کنند. برای پیاده سازی چنین سیاست گذاری هایی در شبکه لازم است که از Firewall ها استفاده کنیم.
راه حل :
از طریق نرم افزار Winbox وارد محیط میکروتیک شده و گزینه ی Firewall را از منوی IP انتخاب میکنیم.
برای ایجاد یک قانون جدید بر روی علامت + کلیک میکنیم.
در قسمت Chain نوع قانون خود را مشخص میکنیم. با توجه به اینکه آدرس مقصد بسته ها به سمت روتر است پس این قانون از نوع Input میباشد ( هنگامی که Client ها به سمت روتر Ping ارسال میکنند در واقع بسته هایی را به سمت روتر ارسال میکنند).
در قسمت Src.Address آدرس مبدا بسته ها را مشخص میکنیم. این بسته ها از سمت شبکه ی LAN به سمت روتر ارسال میشوند پس آدرس مبدا آن ها را ۱۹۲٫۱۶۸٫۱۰۰٫۰/۲۴ در نظر میگیریم.
در قسمت Dst.Address آدرس مقصد بسته ها را مشخص میکنیم.
نکته!!! هر IP که بر روی هر کدام از پورت های روتر تنظیم شده باشد ،آدرس روتر محسوب میگردد. بنابراین اگر روتر مقصد دارای چندین پورت باشد که بر روی همه ی آن ها IP قرار گرفته باشد، لازم است که همه ی آن ها را به عنوان Dst.Address در نظر بگیریم که در این صورت میبایست به ازای هر آدرس IP یک قانون جدید در Firewall ایجاد کنیم.
نکته!!! اگر در هر یک از قسمت های Src.Address و Dst.Address هیچ آدرسی را وارد نکنیم به این معنی است که تمام آدرس های مربوط به هر کدام از آن ها پشتیبانی میشوند. برای مثال اگر Dst.Address را خالی بگذاریم به این معنی است که آدرس مبدا بسته ها در این قانون از هیچ اهمیتی برخوردار نیست و بسته ها میتوانند هر آدرس مبداءای را شامل شوند.
با توجه به دو نکته ی بالا در این مثال میتوانیم هیچ آدرس مقصدی را در قسمت Dst.Address وارد ننمایم تا بدین ترتیب همه ی آدرس های مقصد را شامل شود.
با توجه به اینکه ما قصد داریم از ارسال Ping به سمت روتر خودداری کنیم بنابراین از قسمت Protocol گزینه ی icmp را انتخاب میکنیم ( Ping از پروتکل icmp استفاده میکند ).
اگر یک بار دیگر همه ی این شرط ها را با خود مرور کنید متوجه خواهید شد که شرایط این قانون بدین صورت است “اگر بسته ای از جنس پروتکل icmp با آدرس مبداء ۱۹۲٫۱۶۸٫۱۰۰٫۰/۲۴ به سمت هر مقصدی وارد روتر شد؛ آنگاه … ” .
در قسمت Action قانون نهایی که قرار است توسط Firewall اعمال گردد را مشخص میکنیم. از آنجا که ما قصد داریم جلوی ارسال بسته هایی که از پروتکل icmp استفاده میکنند ( بسته های Ping ) را بگیریم میبایست از قسمت Action گزینه ی drop را برگزینیم. این نوع اقدام به این معنی است که بسته هایی که از پروتکل icmp استفاده میکنند و از سمت شبکه ی ۱۹۲٫۱۶۸٫۱۰۰٫۰/۲۴ به روتر وارد میشوند ، اجازه ی ورود نداشته باشند و دور انداخته شوند.
این قانون را Apply و OK میکنیم.
حال اگر هر کدام از کامپیوتر ها در شبکه ی ۱۹۲٫۱۶۸٫۱۰۰٫۰/۲۴ با استفاده از محیط cmd به سمت روتر Ping ارسال کند با پیغام زیر روبه رو خواهد شد.
مثال ۲ : در مثال ۱ اگر هر کدام از کاربران در شبکه ی LAN اقدام به ارسال Ping به سمت روتر کنند با پیغام Request time out مواجه خواهند شد. اما اگر این کاربران از مقداری دانش شبکه برخوردار باشند متوجه خواهند شد که مدیر شبکه این تصمیم را اتخاذ نموده و محدودیت هایی را بر روی شبکه اعمال کرده است. اما Firewall میکروتیک از Action های متعدد و متنوعی برخوردار است که به وسیله ی آن ها میتوانیم امنیت و کنترل بیشتری را بر روی شبکه ایجاد کنیم. برای مثال میتوان Action را به گونه ای انتخاب کرد که کاربر هنگام Ping کردن روتر با پیغام دیگری روبه رو شود.
راه حل :
وارد تب Action شده و گزینه ی reject را انتخاب میکنیم.
از قسمت Reject With نیز میتوان پیغام های مختلفی را انتخاب نمود تا به کاربر نمایش داده شود ( برای مثال icmp host unreachable ).
حال اگر یکی از کاربران از طریق محیط cmd به سمت روتر Ping ارسال کند، با پیغام زیر رو به رو خواهد شد.
نکته!!! سایر گزینه ها و شرایط مانند مثال قبل است.
مثال ۳ : فرض کنید مدیر شبکه تصمیم داشته باشد که فقط به یکی از کامپیوتر های درون شبکه اجازه ی ارسال Ping به سمت روتر را بدهد. اولین راه حلی که ممکن است به ذهن برسد این است که مدیر شبکه برای تمام کامپیوتر هایی که مجاز به ارسال Ping نیستند قانونی را لحاظ کند و Ping آن ها را drop کنند. در این صورت مدیر شبکه مجبور به نوشتن تعداد زیادی قانون در Firewall میگردد ( مدیر شبکه باید برای تمام کامپیوتر ها به جز همان کامپیوتری که مد نظر خودش است قانون بنویسد ).
اما این مسئله به طور خیلی ساده تری نیز قابل حل میباشد.
راه حل :
وارد تب General شده و در قسمت Src.Address ، آدرس IP مربوط به همان کامپیوتر خاص را وارد میکنیم.
یک مربع کوچک در کنار Src.Address قرار گرفته است. این مربع را علامت میزنیم.
علامت “!” که با زدن کلیک بر روی مربع ایجاد میشود به معنی Not است. به طور کلی وقتی آن آدرس IP مشخص را در Src.Address وارد میکنیم و علامت ! را در کنار آن قرار میدهیم به این معنی است که همه ی آدرس های مبدا به جز این آدرس مبدا مشخص ، مشمول این قانون میگردند.
مابقی تنظیمات نیز به شیوه ی قبل انجام میگیرد. حال اگر یک بار دیگر این قانون را بخوانیم به این صورت است که ” هرکدام از کامپیوتر های شبکه به جز کامپیوتر با آدرس IP مشخص شده اگر بسته هایی از جنس پروتکل icmp را به سمت روتر ارسال کردند؛ آنگاه آن بسته ها توسط روتر drop گردد.
با ایجاد این قانون توسط Firewall ، تنها همان کامپیوترِ مشخص مجاز به ارسال Ping به سمت روتر میگردد.