میکروتیک چیست؟

میکروتیک چیست؟

حدود ۱۲ دقیقه مطالعه

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

میکروتیک چه شرکتی است؟

MikroTik شرکتی مستقر در ریگا، پایتخت لتونی است که در سال ۱۹۹۶ کار خود را با تمرکز بر تجهیزات و نرم‌افزارهای مسیریابی و شبکه‌های بی‌سیم آغاز کرد. خروجی اصلی این شرکت دو چیز است: سیستم‌عامل RouterOS و خط تولید سخت‌افزاری RouterBOARD که همان سیستم‌عامل روی آن از پیش نصب شده است. مستندات رسمی و راهنماهای پیکربندی نیز در پایگاه دانش رسمی میکروتیک در دسترس است.

RouterOS؛ قلب ماجرا

RouterOS یک سیستم‌عامل مبتنی بر لینوکس است که می‌تواند روی سه بستر اجرا شود: سخت‌افزارهای خود میکروتیک (RouterBOARD)، سیستم‌های معمولی x86، و به شکل ماشین مجازی با نسخه‌ای به نام CHR یا Cloud Hosted Router. روی سخت‌افزار میکروتیک، لایسنس از پیش روی دستگاه قرار دارد؛ اما برای نصب روی x86 یا اجرای CHR باید لایسنس جداگانه تهیه کنید. سطوح مختلف لایسنس از نظر امکانات و سقف نرخ عبور ترافیک با هم فرق دارند و پیش از خرید باید سطح متناسب با کاربری خود را بررسی کنید.

نسخه‌های نسل هفتم RouterOS نسبت به نسل ششم تغییرات قابل‌توجهی داشته‌اند؛ از جمله موتور مسیریابی بازنویسی‌شده و پشتیبانی از WireGuard. بنابراین هنگام مطالعه آموزش‌ها حتماً به نسخه‌ای که آموزش برای آن نوشته شده دقت کنید، چون مسیر منوها، نام برخی بخش‌ها و حتی نام بعضی پارامترهای فایروال تغییر کرده است.

راه‌های مدیریت و اتصال

شناخته‌شده‌ترین ابزار مدیریت، نرم‌افزار Winbox است؛ یک رابط گرافیکی که می‌تواند علاوه بر آدرس IP، از طریق آدرس MAC هم به دستگاه وصل شود. همین ویژگی باعث می‌شود اگر تنظیمات IP را اشتباه وارد کردید، همچنان دسترسی داشته باشید. در کنار آن این گزینه‌ها وجود دارد:

  • WebFig: رابط تحت وب که بدون نصب نرم‌افزار در مرورگر باز می‌شود.
  • خط فرمان: از طریق SSH، Telnet یا پورت سریال دستگاه.
  • API: برای اتوماسیون و اتصال به سامانه‌های صورتحساب و مانیتورینگ.
  • Netinstall: ابزار نصب مجدد سیستم‌عامل وقتی دستگاه بالا نمی‌آید یا رمز آن را فراموش کرده‌اید.

یک نکته کاربردی: پیش از اعمال تغییرات حساس روی فایروال یا آدرس‌دهی، حالت Safe Mode را فعال کنید تا اگر ارتباط شما قطع شد، تنظیمات به وضعیت قبل از فعال شدن Safe Mode برگردد. در Winbox دکمه Safe Mode بالا سمت چپ پنجره است و در ترمینال با کلید ترکیبی Ctrl+X فعال و غیرفعال می‌شود. فقط توجه کنید Safe Mode تنها وقتی تغییرات را برمی‌گرداند که ارتباط شما ناخواسته قطع شود؛ اگر خودتان Safe Mode را غیرفعال کنید یا جلسه را عادی ببندید، تغییرات باقی می‌مانند.

مهم‌ترین قابلیت‌ها در عمل

  • مسیریابی: مسیرهای ایستا، مسیریابی مبتنی بر سیاست (Policy Routing) و پروتکل‌هایی مانند OSPF، BGP و RIP، به همراه MPLS و VPLS.
  • فایروال و NAT: زنجیره‌های filter، nat و mangle به همراه connection tracking و address list برای نوشتن قواعد خوانا و قابل نگهداری.
  • مدیریت پهنای باند: Simple Queue برای سناریوهای ساده و Queue Tree به همراه مکانیزم‌هایی مثل PCQ برای تقسیم عادلانه پهنای باند بین کاربران.
  • VPN و تونل: IPsec، L2TP، SSTP، OpenVPN و WireGuard در نسخه‌های جدید، در کنار تونل‌های EoIP و GRE برای اتصال شعب.
  • سرویس‌های شبکه: سرور DHCP، سرور PPPoE، Hotspot برای احراز هویت کاربران مهمان، کش DNS و احراز هویت متمرکز با RADIUS. در ایران رایج‌ترین سرور RADIUS که کنار میکروتیک استفاده می‌شود IBSng است؛ آموزش نصب IBSng مراحل راه‌اندازی آن را دارد.
  • شبکه بی‌سیم: مدیریت متمرکز اکسس‌پوینت‌ها با CAPsMAN در محیط‌هایی که چند نقطه دسترسی دارند.

توجه کنید کش DNS میکروتیک برای پاسخ‌گویی به کلاینت‌های داخلی طراحی شده و جایگزین یک سرویس DNS معتبر و توزیع‌شده برای دامنه شما نیست؛ برای میزبانی رکوردهای دامنه همچنان به یک سرویس DNS اختصاصی نیاز دارید.

فایروال در عمل: بستن پورت‌ها و محدود کردن ترافیک کاربران

عملی‌ترین کاری که بیشتر مدیران شبکه از روز اول با میکروتیک انجام می‌دهند، محدود کردن ترافیک خروجی کاربران است؛ مخصوصاً وقتی دیتاسنتر بابت تورنت یا ارسال اسپم از سمت شبکه شما گزارش abuse می‌فرستد. منطق کار ساده است: قواعد هر زنجیره از بالا به پایین بررسی می‌شوند و اولین قاعده‌ای که با بسته مطابقت کند اجرا می‌شود. پس اگر می‌خواهید فقط چند پورت مشخص باز بماند، اول آن پورت‌ها را accept کنید و در آخر یک قاعده drop برای بقیه ترافیک بگذارید. جای این قواعد هم زنجیره forward است، چون ترافیکی که از داخل شبکه به اینترنت می‌رود از روتر عبور می‌کند و مقصدش خود روتر نیست.

پیش از هر چیز یک هشدار: این یک سیاست whitelist است و هر چیزی که در فهرست مجاز نباشد قطع می‌شود. اگر پشت همین روتر سرور، دوربین، دستگاه کارت‌خوان، کلاینت VPN یا سرویسی روی پورت غیراستاندارد دارید، با فعال شدن قاعده drop از کار می‌افتند. پس ابتدا فهرست سرویس‌های واقعی شبکه‌تان را در بیاورید، تغییرات را در ساعت کم‌ترافیک اعمال کنید و حتماً یک نسخه پشتیبان تازه (بخش پشتیبان‌گیری همین مقاله) داشته باشید.

اول اینترفیس درست را پیدا کنید

در آموزش‌های قدیمی معمولاً نوشته می‌شود که به‌جای نام LAN همان ether1 را بگذارید. این توصیه در بیشتر موارد اشتباه است: در پیکربندی پیش‌فرض اغلب RouterBOARDها، ether1 پورت WAN و سمت اینترنت است و اینترفیس کاربران معمولاً ether2 به بعد یا یک bridge است. اگر قاعده drop را روی اینترفیس WAN بگذارید، عملاً هیچ‌کدام از ترافیک کاربران فیلتر نمی‌شود. پس اول وضعیت را ببینید:

/interface print
/ip address print

اگر چند اینترفیس سمت کاربران دارید، به‌جای تکرار قواعد برای هرکدام، آن‌ها را در یک Interface List بگذارید و در قواعد از in-interface-list استفاده کنید. و پیش از زدن اولین قاعده، Safe Mode را روشن کنید؛ اگر ترتیب قواعد را اشتباه بچینید و ارتباط خودتان قطع شود، دستگاه تنظیمات را برمی‌گرداند.

مجموعه قواعد: فقط پورت‌های مجاز باز باشد

در مثال زیر فرض شده اینترفیس کاربران ether2 است؛ این نام را با نام واقعی اینترفیس شبکه خودتان جایگزین کنید. دستورات را به همین ترتیب وارد کنید، چون ترتیب ورود همان ترتیب اجرا است:

/ip firewall filter
add chain=forward action=accept connection-state=established,related,untracked comment="allow established"
add chain=forward action=drop connection-state=invalid comment="drop invalid"
add chain=forward action=accept in-interface=ether2 protocol=icmp
add chain=forward action=accept in-interface=ether2 protocol=udp dst-port=53,123
add chain=forward action=accept in-interface=ether2 protocol=tcp dst-port=53
add chain=forward action=accept in-interface=ether2 protocol=tcp dst-port=80,443
add chain=forward action=accept in-interface=ether2 protocol=tcp dst-port=21,110,143,993,995,8080
add chain=forward action=drop in-interface=ether2 comment="drop everything else from users"

چند نکته درباره همین چند خط:

  • پارامتر disabled=no که در نمونه‌های قدیمی تکرار می‌شود مقدار پیش‌فرض است و نوشتنش لازم نیست.
  • دو قاعده اول (established/related و invalid) در فهرست‌های قدیمی وجود ندارند اما مهم‌اند؛ قاعده related است که ارتباط داده FTP را باز نگه می‌دارد، به شرطی که helper مربوطه در /ip firewall service-port print فعال باشد.
  • پورت 53 روی UDP و TCP و همچنین ICMP در فهرست‌های قدیمی جا افتاده بود. نتیجه‌اش این است که به محض فعال شدن قاعده drop، کلاینت‌هایی که DNS خارجی دارند اصلاً نمی‌توانند نامی را resolve کنند و شبکه از دید کاربر «قطع» می‌شود. بستن کامل ICMP هم Path MTU Discovery را خراب می‌کند و باعث می‌شود بعضی سایت‌ها نیمه‌باز بمانند.
  • 110 و 143 پورت‌های رمزنگاری‌نشده POP3 و IMAP هستند؛ اگر کاربران شما به سرویس ایمیل امروزی وصل می‌شوند، 995 و 993 کافی است و می‌توانید آن دو را از فهرست حذف کنید. همین‌طور 21 (FTP) را فقط در صورتی باز بگذارید که واقعاً استفاده می‌شود.

اگر قاعده‌ای را در جای اشتباه اضافه کردید، لازم نیست همه را پاک کنید؛ اول شماره‌ها را ببینید و بعد قاعده را جابه‌جا کنید. شماره‌ها ثابت نیستند و بعد از هر جابه‌جایی دوباره چیده می‌شوند، پس هر بار قبل از move یک بار print بگیرید:

/ip firewall filter print
/ip firewall filter move numbers=6 destination=3

مراقب باشید قاعده drop انتهایی را به بالای فهرست منتقل نکنید؛ همین یک اشتباه کل ترافیک کاربران را قطع می‌کند. اگر مطمئن نیستید، به‌جای move قاعده را با /ip firewall filter disable غیرفعال کنید و دوباره در جای درست اضافه کنید.

یادتان باشد این قواعد فقط ترافیک عبوری را کنترل می‌کنند. دسترسی به خودِ روتر (Winbox، SSH، WebFig) در زنجیره input و در بخش /ip service (همان IP > Services در Winbox) کنترل می‌شود و باید جداگانه محدود شود.

تورنت و اسپم؛ چه چیزی واقعاً جواب می‌دهد

در نوشته‌های قدیمی برای جلوگیری از تورنت این دستور توصیه می‌شد:

/ip firewall filter add chain=forward p2p=bit-torrent action=drop

این روش امروز کار نمی‌کند. متچر p2p یادگار RouterOS نسل ۶ است و در نسل ۷ دیگر در دسترس نیست؛ روی یک دستگاه v7 این دستور پذیرفته نمی‌شود و با خطا رد می‌شود. حتی روی نسخه‌های قدیمی‌تری که هنوز این متچر را دارند هم عملاً بی‌فایده است، چون کلاینت‌های تورنت سال‌هاست ترافیک خود را رمزنگاری می‌کنند و روی پورت‌های تصادفی کار می‌کنند. در عمل هیچ تشخیص مبتنی بر امضای پروتکل — از جمله قواعد layer7-protocol که بار سنگینی هم روی CPU می‌گذارند — راه‌حل قابل‌اتکایی نیست. چیزی که واقعاً جواب می‌دهد همان سیاست whitelist بالاست: هرچه در فهرست مجاز نیست drop می‌شود، و تورنت هم دقیقاً در همان «هرچه» قرار می‌گیرد.

برای اسپم هم منطق همین است: پورت 25 را اصلاً در فهرست مجاز نیاورید. اگر در فهرست قدیمی خود خطی برای پورت ۲۵ دارید، همان را حذف کنید. کاربری که واقعاً باید ایمیل بفرستد از پورت‌های submission یعنی 587 یا 465 به سرور ایمیل مشخص خودش وصل می‌شود؛ می‌توانید فقط همان را و آن هم محدود به dst-address سرور ایمیل باز کنید. این کار جلوی سناریوی رایج abuse را می‌گیرد که در آن یک سرور یا کلاینت آلوده مستقیم روی پورت ۲۵ به دنیا اسپم می‌فرستد.

RouterBOARD و اجرای مجازی

RouterBOARD نام خانواده سخت‌افزارهای میکروتیک است که RouterOS روی آن‌ها اجرا می‌شود. اگر ترجیح می‌دهید تجهیزات شبکه خودتان را در مرکز داده نگه دارید، معمولاً از کولوکیشن استفاده می‌شود تا سخت‌افزار در محیط استاندارد با برق و شبکه پایدار قرار بگیرد. در مقابل، نسخه CHR اجازه می‌دهد RouterOS را به‌صورت یک ماشین مجازی بالا بیاورید؛ همین باعث شده اجرای آن روی یک سرور مجازی ابری برای کاربردهایی مثل ترمینیت کردن تونل‌ها، تست سناریوهای مسیریابی یا ساخت آزمایشگاه شبکه رایج باشد.

چه کسانی از میکروتیک استفاده می‌کنند؟

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

نکات امنیتی که نباید نادیده بگیرید

  • RouterOS را به‌روز نگه دارید؛ در گذشته آسیب‌پذیری‌هایی برای این سیستم‌عامل منتشر شده و نسخه‌های قدیمی هدف اسکن‌های خودکار هستند.
  • کاربر پیش‌فرض admin را غیرفعال یا تغییر نام دهید و رمز قوی بگذارید. پیش از غیرفعال کردن admin حتماً یک کاربر جدید با گروه full بسازید و ورود با آن را تست کنید، وگرنه راهی برای ورود باقی نمی‌ماند.
  • در بخش IP > Services سرویس‌های بلااستفاده مثل Telnet و FTP را ببندید و دسترسی سرویس‌های مدیریتی را به رنج IP مشخص محدود کنید. این محدودسازی مکمل قواعد زنجیره forward است که بالاتر نوشتیم و جای آن‌ها را نمی‌گیرد. هنگام تعیین رنج مجاز، آدرسی را وارد کنید که خودتان همین حالا از آن متصل هستید؛ در غیر این صورت بلافاصله بیرون می‌مانید.
  • پورت مدیریتی Winbox را مستقیم روی اینترنت باز نگذارید؛ در صورت نیاز از VPN برای دسترسی از راه دور استفاده کنید.
  • به‌طور منظم از تنظیمات backup و export بگیرید و نسخه متنی خروجی export را جایی خارج از خود دستگاه نگه دارید.

پشتیبان‌گیری و بازگردانی تنظیمات

میکروتیک دو نوع خروجی متفاوت دارد و بهتر است هر دو را داشته باشید. فایل backup یک نسخه دودویی از کل پیکربندی است که همه چیز از جمله رمزها را در خود دارد و برای برگرداندن سریع همان دستگاه مناسب است. خروجی export یک فایل متنی .rsc است که می‌توانید آن را بخوانید، در گیت نگه دارید و بخش‌هایی از آن را روی دستگاه دیگری اجرا کنید.

/system backup save name=router-backup
/export file=router-config

در نسخه‌های جدید RouterOS، مقادیر حساس مثل رمزها به‌صورت پیش‌فرض در خروجی export نمایش داده نمی‌شوند و برای گنجاندن آن‌ها باید show-sensitive را اضافه کنید؛ اگر این کار را کردید، فایل خروجی را مثل یک فایل رمز نگه دارید.

برای بازگردانی، ابتدا فایل پشتیبان را با درگ کردن به بخش Files در Winbox منتقل کنید (یا با FTP/SFTP آپلود کنید) و سپس بسته به نوع فایل یکی از این دو دستور را با نام همان فایل اجرا کنید:

/system backup load name=router-backup
/import file-name=router-config.rsc

دقت کنید /system backup load کل پیکربندی فعلی را با نسخه پشتیبان جایگزین می‌کند و دستگاه را ریستارت می‌کند؛ اگر آدرس‌دهی نسخه پشتیبان با شبکه فعلی فرق داشته باشد، بعد از بالا آمدن با IP قبلی به دستگاه نمی‌رسید و باید از Winbox روی MAC یا از پورت کنسول وارد شوید. در مقابل، /import خطوط فایل را روی پیکربندی موجود اجرا می‌کند و ممکن است قواعد تکراری بسازد.

برای بازگردانی روی یک دستگاه پاک، معمولاً اول تنظیمات را خالی می‌کنند و بعد فایل .rsc را import می‌کنند. دستور زیر را فقط روی دستگاهی بزنید که فیزیکی یا از طریق Winbox روی MAC به آن دسترسی دارید، چون کل پیکربندی از جمله آدرس‌های IP و کاربران را پاک می‌کند، دستگاه را ریستارت می‌کند و با no-defaults=yes حتی پیکربندی پیش‌فرض کارخانه هم ساخته نمی‌شود؛ یعنی روی یک دستگاه راه دور عملاً دسترسی خود را از دست می‌دهید:

/system reset-configuration no-defaults=yes skip-backup=no

جمع‌بندی

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

آموزش‌های مرتبط