MikroTik، به عنوان یکی از محبوبترین سیستمعاملهای روتر و تجهیزات شبکه، به دلیل سادگی، انعطافپذیری و هزینه پایین، در شبکههای کوچک تا متوسط به طور گستردهای استفاده میشود. با این حال، این محبوبیت آن را به هدفی جذاب برای هکرها تبدیل کرده است. یکی از رایجترین حملات علیه دستگاههای MikroTik، حملات
Brute Force است. این حملات شامل تلاشهای مکرر برای حدس زدن رمز عبور یا نام کاربری از طریق سرویسهایی مانند SSH، Telnet، Winbox یا FTP میشود. طبق گزارشهای مختلف، بیش از ۹۰٪ حملات به روترهای MikroTik از نوع Brute Force هستند و میتوانند منجر به دسترسی غیرمجاز، سرقت اطلاعات یا حتی استفاده از دستگاه به عنوان باتنت شوند.
در این مقاله جامع، به بررسی امنیت MikroTik در برابر حملات Brute Force میپردازیم. این روشها بر اساس مستندات رسمی MikroTik، تجربیات کاربران در فرومها و ارائههای تخصصی تدوین شدهاند. هدف، ایجاد یک لایه دفاعی چندگانه است که نه تنها حملات را بلاک کند، بلکه دسترسی مشروع را نیز حفظ نماید. توجه کنید که هیچ روشی ۱۰۰٪ ایمن نیست، اما ترکیب این تکنیکها ریسک را به حداقل میرساند.
اصول کلی امنیت MikroTik در برابر حملات Brute Force
قبل از ورود به جزئیات، بیایید اصول پایهای امنیت را مرور کنیم. این اصول، پایهای برای دفاع در برابر Brute Force هستند:
- بهروزرسانی منظم RouterOS: همیشه آخرین نسخه پایدار (Stable) را نصب کنید. نسخههای قدیمی مانند ۶.۴۹.۸ یا پایینتر، آسیبپذیریهای شناختهشدهای دارند. از Winbox یا CLI برای چک کردن بهروزرسانیها استفاده کنید: /system package update check-for-updates
- تغییر رمز عبور پیشفرض: رمز پیشفرض “admin” بدون پسورد، درب عقبی هکرهاست. از رمزهای قوی (حداقل ۱۲ کاراکتر، ترکیبی از حروف، اعداد و نمادها) استفاده کنید و کاربران اضافی را حذف نمایید: /user remove admin (پس از ایجاد کاربر جدید).
- غیرفعال کردن سرویسهای غیرضروری: سرویسهایی مانند Telnet (که رمز عبور را به صورت plain-text ارسال میکند) را خاموش کنید: /ip service disable telnet,ftp,www,api,api-ssl
- محدود کردن دسترسی بر اساس IP: فقط از IPهای معتبر اجازه دسترسی دهید. مثلاً برای Winbox: /ip service set winbox address=192.168.1.0/24
این اصول، سطح حمله را کاهش میدهند و حملات Brute Force را دشوارتر میکنند.
روشهای خاص دفاع در برابر Brute Force
۱. تغییر پورتهای پیشفرض سرویسها
هکرها اغلب پورتهای استاندارد مانند ۲۲ (SSH) یا ۸۲۹۱ (Winbox) را اسکن میکنند. تغییر پورت، ترافیک Brute Force را به طور قابل توجهی کاهش میدهد.
- تغییر پورت SSH: /ip service set ssh port=2200 (پس از تست، Telnet را خاموش کنید).
- تغییر پورت Winbox: /ip service set winbox port=8292.
- نکته: برای اتصال به Winbox پس از تغییر، از فرمت IP:port استفاده کنید.
این روش ساده است و بلافاصله مؤثر، اما به تنهایی کافی نیست.
۲. استفاده از احراز هویت مبتنی بر کلید SSH (Key-Based Authentication)
به جای رمز عبور، از کلیدهای عمومی/خصوصی استفاده کنید. این روش Brute Force را عملا غیرممکن میکند، زیرا حدس کلید ۲۰۴۸ بیتی زمانبر است.
مراحل پیکربندی (از ماشین محلی):
- تولید کلید: ssh-keygen -t rsa -b 2048 (فایلهای id_rsa و id_rsa.pub تولید میشود).
- آپلود کلید عمومی به روتر: scp ~/.ssh/id_rsa.pub admin@<IP-روتر>:/key.pub
- وارد کردن کلید در MikroTik: /user ssh-keys import public-key-file=key.pub user=admin
- حذف فایل: /file remove key.pub
- غیرفعال کردن رمز عبور: /ip ssh set allow-none-crypto=no always-allow-password-login=no
- کلید خصوصی را امن نگه دارید و پشتیبان بگیرید.
- کاربران جداگانه با مجوزهای محدود ایجاد کنید.
۳. قوانین فایروال برای بلاک خودکار (Firewall Rules with Address Lists)
MikroTik از
Address Lists با timeout برای ردیابی و بلاک IPهای مشکوک استفاده میکند. این روش، تلاشهای مکرر را شمارش کرده و پس از حد آستانه، IP را بلاک میکند.
مثال قوانین برای SSH (پورت ۲۲) (از مستندات رسمی):
| ترتیب |
قانون CLI |
توضیح |
| ۱ |
/ip firewall filter add chain=input action=add-src-to-address-list address-list=connection1 address-list-timeout=5m connection-state=new dst-port=22 protocol=tcp comment=”First attempt” |
تلاش اول: IP را به لیست connection1 برای ۵ دقیقه اضافه میکند. |
| ۲ |
/ip firewall filter add chain=input action=add-src-to-address-list address-list=connection2 address-list-timeout=15m connection-state=new dst-port=22 protocol=tcp src-address-list=connection1 comment=”Second attempt” |
تلاش دوم: به connection2 برای ۱۵ دقیقه. |
| ۳ |
/ip firewall filter add chain=input action=add-src-to-address-list address-list=connection3 address-list-timeout=1h connection-state=new dst-port=22 protocol=tcp src-address-list=connection2 comment=”Third attempt” |
تلاش سوم: به connection3 برای ۱ ساعت. |
| ۴ |
/ip firewall filter add chain=input action=add-src-to-address-list address-list=bruteforce_blacklist address-list-timeout=1d connection-state=new dst-port=22 protocol=tcp src-address-list=connection3 comment=”Blacklist” |
بلاک: به bruteforce_blacklist برای ۱ روز. |
| ۵ |
/ip firewall filter add chain=input action=drop src-address-list=bruteforce_blacklist dst-port=22 protocol=tcp comment=”Drop blacklisted” |
بلاک ترافیک از لیست سیاه. |
| ۶ |
/ip firewall filter add chain=input action=accept dst-port=22 protocol=tcp src-address-list=!bruteforce_blacklist comment=”Allow legit” |
اجازه دسترسی مشروع. |
نکته: قوانین را در ابتدای زنجیره INPUT قرار دهید. برای Winbox (پورت ۸۲۹۱) یا FTP (۲۱)، dst-port را تغییر دهید.
نسخه پیشرفته برای چندین سرویس (از ارائه MUM):
لیستهای مرحلهای:bruteforce_stage1 (۱ دقیقه)، stage2 (۱ دقیقه)، stage3 (۱ دقیقه)، blacklist (۱۰ روز).
قانون پایه:
/ip firewall filter add chain=input protocol=tcp dst-port=21,22,23,8291,8728 connection-state=new action=add-src-to-address-list address-list=bruteforce_stage1 address-list-timeout=1m
برای FTP خاص، خروجی لاگ “530 Login incorrect” را نظارت کنید و پس از ۹ تلاش در دقیقه، بلاک کنید (۳ ساعت timeout).
مثال قوانین جایگزین برای SSH (از تجربیات کاربران):
| ترتیب |
قانون CLI |
توضیح |
| ۱ |
/ip firewall filter add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop |
بلاک لیست سیاه. |
| ۲ |
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_attempt_3 action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=2w |
بلاک پس از ۴ تلاش. |
| ۳ |
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_attempt_2 action=add-src-to-address-list address-list=ssh_attempt_3 address-list-timeout=1m |
ردیابی تلاش سوم. |
| ۴ |
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_attempt_1 action=add-src-to-address-list address-list=ssh_attempt_2 address-list-timeout=1m |
ردیابی دوم. |
| ۵ |
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_attempt_1 address-list-timeout=1m |
ردیابی اول. |
۴. اسکریپتهای خودکار و نظارت
اسکریپت حفاظت Brute Force:
از اسکریپتهای فروم MikroTik استفاده کنید که لاگها را اسکن کرده و IPها را بلاک میکنند. مثلاً:
/system script add name=brute-protect source={:log error print where topics~”login”; …}
نظارت لاگ: لاگهای failed login را فعال کنید:
/system logging add topics=account action=memory
از ابزارهایی مانند The Dude یا اسکریپتهای خارجی برای هشدار استفاده کنید.
Fail2Ban مانند: MikroTik بومی Fail2Ban ندارد، اما قوانین فایروال فوق مشابه آن عمل میکنند. برای پیشرفتهتر، از اسکریپتهای سفارشی استفاده کنید.
۵. دفاع لایهای پیشرفته
- Port Knocking: پورتها را پنهان کنید و فقط پس از توالی knocks خاص باز کنید. مثال: قوانین فایروال برای نظارت پورتهای ۷۰۰۰-۷۰۰۳.
- VPN برای دسترسی: به جای دسترسی مستقیم، از VPN (WireGuard یا IPsec) استفاده کنید تا Brute Force را به تونل محدود کنید.
- محدودیت نرخ (Rate Limiting): در قوانین فایروال، از connection-limit استفاده کنید: connection-limit=3,32 (حداکثر ۳ اتصال همزمان).
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.