پیکربندی فایروال در میکروتیک: آموزش گام‌به‌گام ایمن‌سازی شبکه با‌ فایروال میکروتیک!

پیکربندی فایروال در میکروتیک

آنچه در مقاله می‌خوانید

یادگیری نحوه پیکربندی فایروال در میکروتیک برای افرادی که به‌دنبال ایمن‌سازی شبکه خود هستند، ضروری است. شبکه‌ها از اتصالات مختلفی تشکیل می‌شوند. این اتصالات برای تبادل اطلاعات برقرار می‌شوند و در‌صورتی که هیچ سیستم امنیتی‌ای بر روی ارتباطات نظارت نداشته باشد، احتمال نفوذ و سوء‌استفاده از این اطلاعات وجود دارد.

MikroTik RouterOS که یک سیستم‌عامل مبتنی بر لینوکس است، دارای یک سیستم Firewall بسیار ایمن و قدرتمند است که با پیکربندی صحیح، قابلیت مدیریت و حفاظت همه‌جانبه از شبکه‌ها را دارد. در این آموزش، می‌خواهیم درباره نحوه پیکربندی فایروال در میکروتیک و موارد پیرامون آن صحبت کنیم.

پیکربندی فایروال در میکروتیک به چه دلیل انجام می‌شود؟

پیکربندی فایروال در میکروتیک به چه دلیل انجام می‌شود؟

سیستم فایروال یا همان دیواره آتش، یک فیلترینگ بسته حالت‌دار (stateful – با کمک ردیابی اتصال) و بدون حالت (stateless) را اجرا می‌کند و یک سری توابع امنیتی را ارائه می‌دهد که از این توابع برای مدیریت جریانی که به روتر وارد می‌شود، جریانی که از روتر خارج می‌شود و همچنین جریانی که از طریق روتر منتقل می‌شود، استفاده می‌شود.

Firewall‌های شبکه، برای دور نگه داشتن تهدیدات خارجی از داده‌های حساسی که در داخل شبکه هستند، مورد‌استفاده قرار می‌گیرند. زمانی که شبکه‌های مختلف به یکدیگر متصل می‌شوند، احتمال اینکه فردی در خارج از شبکه شما به شبکه LAN نفوذ کرده و دست به اقداماتی نظیر دزدی و توزیع داده‌های خصوصی، تغییر یا نابودی داده‌ها و یا پاک کردن کل هارد دیسک بزند، وجود دارد.

بهترین راهکار برای دور ماندن از چنین خطراتی در زمان استفاده از سرور مجازی، پیکربندی صحیح Firewall است. زمانی که Firewall را به‌درستی پیکربندی کنید، می‌توانید یک زیرساخت شبکه قدرتمند و کارآمد داشته باشید.

MikroTik RouterOS امکان پیاده‌سازی یک Firewall بسیار قدرتمند و ایمن را می‌دهد. برخی از مهم‌ترین ویژگی‌های این Firewall عبارتند‌از:

  • بازرسی بسته حالت‌دار؛
  • شناسایی پروتکل لایه ۷؛
  • فیلتر کردن پروتکل‌های همتا‌به‌همتا (peer-to-peer)؛
  • طبقه‌بندی ترافیک بر‌اساس:
    • آدرس مک منبع؛
    • آدرس‌های IP (شبکه یا لیست) و انواع آدرس (broadcast، local، multicast، unicast)؛
    • پورت یا محدوده پورت؛
    • پروتکل‌های IP؛
    • گزینه‌های پروتکل (فیلدهای نوع و کد ICMP، فلگ‌های TCP، گزینه‌های IP و MSS)؛
    • واسط بسته ارسالی یا خروجی؛
    • جریان داخلی و مارک‌های اتصال؛
    • بایت DSCP؛
    • محتوای بسته؛
    • سرعت رسیدن بسته‌ها و ترتیب اعداد؛
    • اندازه بسته؛
    • زمان رسیدن بسته.

متخصصان شبکه و افرادی که با پیکربندی‌های مربوط به شبکه سر‌و‌کار دارند، می‌توانند با خریداری سرور مجازی میکروتیک، از مزایای بی‌شمار این سرور ایمن، پر‌سرعت و مقیاس‌پذیر استفاده کنند.

فایروال میکروتیک چطور کار می‌کند؟

پیکربندی فایروال در میکروتیک چگونه انجام می‌شود؟

Firewall با تنظیم قوانین کار می‌کند. هر قانون در Firewall از ۲‌ بخش تشکیل شده‌است:

  • تطبیق‌دهنده (matcher) که جریان را با شرایط داده‌شده مطابقت می‌دهد.
  • عملی (action) که مشخص می‌کند که با بسته منطبق چه کاری باید انجام داد.

روتر میکروتیک از ۴ امکانات فرعی Firewall استفاده می‌کند:

1.  ردیابی اتصال (Connection Tracking)

ردیابی اتصال اجازه ردیابی اتصالات یا جلسات منطقی شبکه را به هسته می‌دهد و در‌نتیجه، ارتباط بین تمام بسته‌های موجود را ممکن می‌کند. با‌استفاده از این اطلاعات، NAT می‌تواند بسته‌های مرتبط را با یک روش یکسان ترجمه کند. با‌استفاده از قابلیت ردیابی اتصال، می‌توان از Firewall حالت‌دار حتی با پروتکل‌های بدون حالتی مانند UDP استفاده کرد.

همچنین، می‌توانید با‌استفاده از دستور /ip firewall connection لیستی از اطلاعات ردیابی‌شده را در اتصال Firewall IP و با‌استفاده از دستور /ipv6 firewall connection برای IPv6 مشاهده کنید. نمونه این دستورات به‌صورت زیر است.

برای نمایش اتصالات IP:

[admin@MirkoTik] /ip firewall connection> print
    Flags: S - seen-reply, A - assured
    #    PR.. SRC-ADDRESS           DST-ADDRESS           TCP-STATE   TIMEOUT
    0    udp  10.5.8.176: 5678       255.255.255.255: 5678              0s
    1    udp  10.5.101.3: 646        224.0.0.2: 646                     5s
    2    ospf 10.5.101.161          224.0.0.5                         9m58s
    3    udp  10.5.8.140: 5678       255.255.255.255: 5678              8s
    4 SA tcp  10.5.101.147: 48984    10.5.101.1: 8291       established 4m59s

برای نمایش اطلاعات IPv6:

[admin@MirkoTik] /ipv6 firewall connection> print    Flags: S - seen reply, A - assured    #    PRO.. SRC-ADDRESS                 DST-ADDRESS                 TCP-STATE    0    udp   fe80:: d6ca: 6dff: fe77: 3698   ff02:: 1    1    udp   fe80:: d6ca: 6dff: fe98: 7c28   ff02:: 1    2    ospf  fe80:: d6ca: 6dff: fe73: 9822   ff02:: 5

 

بر‌اساس ورودی جدول اتصالات، هر بسته‌ای که وارد می‌شود، می‌تواند یکی از حالت‌های اتصال زیر را داشته باشد:

  • جدید (new)؛
  • نامعتبر (invalid)؛
  • ایجاد‌شده (established)؛
  • مرتبط (related)؛
  • پیگیری‌نشده (untracked).

در ۲ صورت، یک بسته در حالت new قرار می‌گیرد: حالت اول در‌صورتی است که اتصالات بدون حالت (مانند UDP) است و هیچ ورودی اتصالی در جدول اتصالات دیده نمی‌شود. مورد دوم، پروتکل حالت‌دار (TCP) است که در آن، همیشه این بسته TCP با پرچم SYN است که اتصال را شروع می‌کند.

زمانی که هیچ بسته جدیدی وجود نداشته باشد، یکی از حالات established یا related اختصاص داده می‌شود. اگر به هیچ اتصالی تعلق نداشته باشد، حالت invalid را می‌گیرد. بسته‌ای با حالت established، متعلق به یک اتصال موجود از جدول ردیابی اتصال است. حالت related برای زمانی است که بسته متعلق به اتصالی مربوط یکی از اتصال موجود (به‌عنوان مثال بسته خطاهای ICMP یا بسته‌های اتصال داده FTP) است.

حالت اتصال notrack یکی از حالات اتصال خاص است که از قوانین Firewall RAW استفاده می‌کند تا اتصال را از جدول ردیابی اتصال حذف کند. این قانون، می‌تواند تمام ترافیک ارسال‌شده از موتور ردیابی اتصال که سرعت پردازش بسته را از طریق دستگاه انجام می‌دهد را دور بزند.

تمام بسته‌های دیگر، به‌صورت invalid در‌نظر گرفته شده و در اکثر موارد، باید حذف شوند.

بر‌اساس اطلاعاتی که از دستور ردیابی اتصال دریافت می‌کنیم، می‌توانید مجموعه‌ای از قوانین فیلتر را برای فیلتر‌گذاری بر روی بسته‌ها و کاهش بار CPU تنظیم کنیم.

/ip firewall filter
add chain=input connection-state=invalid action=drop comment="Drop Invalid connections"
add chain=input connection-state=established,related,untracked action=accept comment="Allow Established/Related/Untracked connections

این قوانین نباید در مسیریاب‌هایی که دارای مسیریابی نامتقارن هستند اعمال شوند؛ زیرا بسته‌های مسیریابی نامتقارن ممکن است invalid در‌نظر گرفته شده و حذف شوند.

2.  فیلتر‌ها (Filters)

از فیلتر‌های Firewall برای اجازه دادن یا مسدود کردن بسته‌های خاصی که به شبکه محلی شما ارسال می‌شوند، استفاده می‌شود. این بسته‌ها می‌توانند به روتر شما وارد شده و یا از آن خارج شوند.

به‌طور کلی، ۲ روش برای تنظیم فیلتر وجود دارد:

  • فقط به یک ترافیک خاص اجازه انجام کار دهید و بقیه ترافیک را دور بیاندازید.
  • فقط ترافیک مخرب را حذف کنید و بقیه ترافیک را مجاز اعلام کنید.

هر دو روش، مزایا و معایب خاص خودشان را دارند. برای مثال، روش اول از‌نظر امنیتی بهتر از روش دوم است، اما زمانی که باید ترافیک یک سرویس جدید پذیرفته شود، به مدیریت ورودی نیاز است. با این استراتژی، کنترل ترافیک راحت‌تر شده و احتمال پیکربندی نادرست سرویس و نفوذ به آن کمتر می‌شود.

زمانی که می‌خواهید شبکه کلاینت را ایمن کنید، پذیرش تمام خدمات مورد‌نیاز کاربران کمی دشوار و گیج‌کننده است. در‌نتیجه، باید Firewall را در تنظیمات پیشرفته به‌صورت دقیق برنامه‌ریزی کنید.

در این قسمت، به بررسی تنظیمات اولیه پیکربندی فایروال در میکروتیک برای محافظت از روتر می‌پردازیم. دیواره آتش RouterOS به‌طور پیشفرض تمام تنظیمات را پذیرد و برای حذف همه‌چیز در انتهای قوانین، باید قانون فیلتر را اضافه کنیم. با‌استفاده از کد زیر، می‌توانید فقط icmp، ssh و winbox را مجاز کرده و سایر موارد را دور بیاندازید:

/ip firewall filter
add chain=input connection-state=invalid action=drop comment="Drop Invalid connections"
add chain=input connection-state=established,related,untracked action=accept comment="Allow Established/Related/Untracked connections"
add chain=input protocol=icmp action=accept comment="Allow ICMP"
add chain=input protocol=tcp ports=8291,22 action=accept comment="Allow Winbox and SSH" 
add chain=input action=drop comment="Drop everything else"

دیواره آتش RouterOS اجازه فیلتر کردن بسته‌ها قبل از ردیابی اتصال را می‌دهد و می‌توان فقط ترافیک خاصی را به ردیابی اتصال ارسال کرد. با انجام این کار، می‌توانیم بار روی CPU را به‌طرز قابل‌توجهی کمتر کرده و حملات DOS/DDoS را کاهش دهیم. پیکربندی قوانین این‌چنینی در جدول فیلترینگ RAW انجام می‌شود.

3.  NAT

ترجمه آدرس شبکه که با نام اختصاری NAT شناخته می‌شود، یک استاندارد اینترنتی است که به هاست‌ها در شبک‌های محلی اجازه استفاده کردن از یک مجموعه آدرس IP برای ارتباطات داخلی و مجموعه دیگری از آدرس‌های IP برای ارتباطات خارجی را می‌دهد. به یک شبکه محلی که از NAT استفاده می‌کند، شبکه natted گفته می‌شود. برای اینکه NAT عملکرد خود را داشته باشد، باید یک دروازه NAT در هر شبکه natted وجود داشته باشد. دروازه NAT که همان روتر NAT است، کار بازنویسی آدرس IP در مسیر حرکت بسته از LAN و به LAN را انجام می‌دهد.

توجه داشته باشید که NAT فقط با اولین بسته اتصال مطابقت دارد و ردیابی اتصال، این عمل را به‌خاطر می‌آورد و روی تمام بسته‌های دیگر متعلق به همان اتصال، ردیابی را انجام می‌دهد. زمانی که قوانین NAT عوض شوند، جدول ردیابی اتصال باید پاک شود. اگر جدول پاک نشود، تا زمانی که ورود اتصال منقضی نشود، ممکن است قوانین NAT به‌درستی عمل نکنند.

انواع NAT:

  • source NAT یا srcnat: این نوع NAT (NAT منبع) بر روی بسته‌هایی انجام می‌شود که از یک شبکه natted منشا می‌گیرند. روتر NAT، آدرس منبع خصوصی یک بسته IP در حال حرکت را از طریق روتر با یک آدرس IP عمومی جدید جایگزین می‌کند. برای بسته‌های پاسخ که در جهت دیگر حرکت می‌کنند، یک عملیات معکوس اعمال می‌شود.
  • destination NAT یا dstnat: این نوع NAT (NAT مقصد) روی بسته‌هایی انجام می‌شود که برای شبکه natted هستند و اکثرا برای این مورد‌استفاده قرار می‌گیرد تا هاست‌ها در یک شبکه خصوصی از طریق اینترنت قابل‌دسترسی باشند. یک روتر NAT که ترجمه آدرس شبکه مقصد را انجام می‌دهد، آدرس IP مقصد یک بسته IP را در حین حرکت از طریق روتر به سمت یک شبکه خصوصی جایگزین می‌کند.

تنظیمات Source NAT

قوانین مختلفی برای Source NAT وجود دارد. به‌عنوان مثال، کد زیر برای پنهان کردن شبکه‌های محلی در پشت یک IP عمومی مورد‌استفاده قرار می‌گیرد:

/ip firewall nat add chain=srcnat action=src-nat to-address=1.1.1.1 out-interface=Public

در کد بالا از زنجیره srcnat استفاده کردیم، زیرا می‌خواهیم اطلاعات شبکه منبع را دستکاری کنیم. ما interface را Public گذاشتیم و action را بر روی src-nat گذاشتیم تا مطمئن شویم که بسته‌هایی که یک رابط خاص را ترک می‌کنند، اصلاح شوند.

تنظیمات Masquerade

/ip firewall nat add chain=srcnat action=masquerade out-interface=Public

عملکرد masquerade در NAT نوعی srcnat منحصر به فرد است که برای تغییر تصادفی IP استفاده می‌شود. به‌عنوان مثال، زمانی که IP عمومی پویا است، IP اختصاص داده‌شده به سرور DHCP یا تونل PPPoE پس از قطع اتصال، IP متفاوتی دریافت می‌کند.

هر‌بار پس از قطع‌شدن رابط یا تغییر IP، روتر تمام ورودی‌های ردیابی اتصال که به رابط مربوط هستند را پاک کرده و زمان بازیابی سیستم پس از تغییر IP عمومی بهبود می‌یابد. زمانی که پس از قطع‌شدن لینک اصلی، اتصال از طریق لینک‌های مختلف مسیریابی می‌شود، مشکلاتی در لینک‌های ناپایدار بوجود می‌آید. در چنین مواقعی، ممکن است موارد زیر رخ دهند:

  • تمام ورودی‌های ردیابی اتصال مربوطه در قطع اتصال پاک می‌شوند.
  • بسته بعدی از اتصالات پاکسازی‌شده به‌عنوان حالت new وارد Firewall می‌شود و در‌صورتی که رابط اصلی برنگشته باشد، این بسته از طریق مسیر جایگزین به بیرون هدایت می‌شود. در این سناریو، اتصال masqueraded ایجاد می‌شود.
  • لینک اولیه برمی گردد و مسیریابی از طریق لینک اصلی بازیابی می‌شود. در این سناریو، بسته‌هایی که به اتصالات موجود تعلق دارند، بدون اینکه مخفی شوند، از طریق رابط اصلی ارسال می‌شوند و IP‌های محلی به یک شبکه عمومی وارد می‌شوند.

برای حل این مشکل، می‌توان مسیر blackhole را به‌عنوان جایگزین مسیری که ممکن است در‌صورت قطع‌شدن شبکه ناپدید شود، در‌نظر گرفت. در‌صورتی که srcnat به‌جای masquerade استفاده شود، ورودی‌های ردیابی اتصال باقی مانده و اتصالات پس از از‌بین‌رفتن لینک، دوباره از سر گرفته می‌شوند.

هاست‌های پشت روتری که دارای NAT هستند، اتصال انتها‌به‌انتهای (end-to-end) واقعی ندارند. در‌نتیجه، سرویس‌هایی که نیاز به شروع اتصال TCP از خارج از شبکه خصوصی یا پروتکل‌های بدون حالت مانند UDP دارند، مختل می‌شوند. همچنین، برخی از پروتکل‌ها مانند پروتکل AH از مجموعه IPsec ذاتا با NAT سازگاری ندارند.

برای حل چنین مشکلاتی، می‌توان از NAT Helper تعبیه‌شده در RouterOS برای فعال‌سازی پیمایش NAT برای پروتکل‌های مختلف، استفاده کرد.

تنظیمات Destination NAT

با‌استفاده از کد زیر، می‌توانیم آدرس مقصد را تغییر داده یا نگاشت پورت را انجام دهیم:

/ip firewall nat add chain=dstnatdst-port=1234action=dst-natprotocol=tcpto-address=192.168.88.2to-port=12340

با اجرای کد بالا، زمانی که یک اتصال ورودی، پورت TCP 1234 را درخواست می‌کند، از عملکرد dst-nat استفاده کرده و آن را به آدرس محلی 192.168.88.2 و پورت 12340 هدایت می‌کند. در‌صورتی که مقدار پارامتر to-port را مشخص نکنید، پورت مقصد در داخل بسته تغییری نمی‌کند.

4.  Mangle

قابلیت Mangle نوعی نشانگر است که بسته‌هایی که قرار است در آینده پردازش شوند را علامت‌گذاری می‌کند. به‌عنوان مثال، در درختان صف، NAT‌ها یا مسیریابی از Mangle‌ها برای شناسایی یک بسته بر‌اساس علامت‌اش و سپس انتخاب پردازش مناسب، استفاده می‌شود. نشانگر‌های Mangle فقط در روتر وجود دارند و در سراسر شبکه منتقل نمی‌شوند.

همچنین، از Mangle‌ها برای اصلاح برخی از فیلد‌ها در هدر IP مانند فیلد‌های TOS (DSCP) و TTL استفاده می‌شود.

تغییر MSS

لینک‌های VPN به دلیل سربار کپسوله کردن، دارای اندازه بسته کوچکتری هستند. یک بسته بزرگ با MSS که فراتر از MSS با لینک VPN است، باید قبل از ارسال تکه‌تکه شود. در‌صورتی که بسته دارای پرچم Don’t Fragment باشد، نمی‌توان آن را تکه‌تکه کرد و در‌نتیجه، باید دور انداخته شود. در لینک‌هایی که PMTUD شکسته شده‌است، مشکلات متعددی نظیر اختلال در انتقال داده FTP و HTTP و خدمات ایمیل دیده می‌شود.

در‌صورتی که لینک با PMTUD شکسته وجود داشته باشد، می‌توان با کمتر کردن MSS بسته‌هایی که از طریق لینک VPN می‌آیند، مشکل را حل کرد. قطعه کد زیر، مقدار MSS را از طریق mangle کاهش می‌دهد:

/ip firewall mangle  add out-interface=pppoe-out protocol=tcp tcp-flags=syn action=change-mss new-mss=1300 chain=forward tcp-mss=1301-65535

لیست آدرس

با‌استفاده از لیست آدرس‌های Firewall، می‌توانید یک لیست از آدرس‌های IP را تحت یک نام مشترک گروه‌بندی کرده و برای تطبیق بسته‌ها با فیلتر Firewall، NAT‌ و Mangle استفاده کنید. همچنین، می‌توانید رکورد‌های لیست آدرس را به‌صورت پویا از طریق action=add-src-to-address-list یا action=add-dst-to-address-list که در امکانات NAT، Mangle و Filter هستند، بروزرسانی کنید.

قوانین Firewall با عملکرد add-src-to-address-list یا add-dst-to-address-list در حالت passthrough کار می‌کند. این به این معنی است که بسته‌های مطابقت داده‌شده، به قوانین Firewall بعدی منتقل می‌شوند.

قطعه کد زیر، لیست آدرس‌های پویا را ایجاد می‌کند:

[admin@MirkoTik] > ip firewall address-list add address=www.mikrotik.com list=MikroTik
[admin@MirkoTik] > ip firewall address-list print
Flags: X - disabled, D - dynamic 
# LIST     ADDRESS          CREATION-TIME    TIMEOUT 
0 MikroTik www.mikrotik.com oct/09/2019      14: 53: 14
1 D ;;;    www.mikrotik.com
MikroTik   159.148.147.196  oct/09/2019      14: 53: 14

سخن پایانی

امنیت یکی از مهم‌ترین و ضروری‌ترین مواردی است که هر شبکه باید داشته باشد. زمانی که شبکه‌های مختلف LAN به یکدیگر متصل می‌شوند، احتمال اینکه فردی از خارج از شبکه سعی کند که به آن نفوذ کرده و خرابکاری کند، وجود دارد.

بهترین راهکار در چنین مواقعی، استفاده از Firewall شبکه است. MikroTik RouterOS با ارائه یک Firewall قدرتمند و ایمن، به شما کمک می‌کند تا اتصالات شبکه خود را در برابر تهدیدات خارجی ایمن کنید.

در این مقاله، به‌طور مفصل درباره پیکربندی فایروال در میکروتیک صحبت کردیم و به بررسی برخی از مهم‌ترین دستورات برای ایمن‌سازی هر چه بیشتر شبکه پرداختیم. امیدواریم با مطالعه این مقاله، به‌خوبی با پیکربندی Firewall شبکه در میکروتیک آشنا شده‌باشید.

منبع

5/5 - (1 امتیاز)
دیدن نظرات
small

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

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

17 + بیست =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
نصب SQLite
آموزش Ubuntu

نصب SQLite؛ آموزش نصب SQLite در لینوکس اوبونتو!

اگر به دنبال راهی رایگان و بهینه برای مدیریت پایگاه‌های داده خود هستید، نصب SQLite یکی از بهترین گزینه‌های پیش روی شماست. دیتابیس چیست؟ پایگاه

نصب کوبرنتیز روی گوگل کلود
آموزش برنامه نویسی

نصب کوبرنتیز روی گوگل کلود؛ آموزش راه‌اندازی کوبرنتیز در Google Cloud Platform!

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

خدمات مبین هاست