نمودار بستن پورت DNS میکروتیک به روی اینترنت در حالی که کاربران شبکهٔ داخلی همچنان از DNS روتر استفاده می‌کنند
سرفصل: میکروتیک

یکی از رایج‌ترین مشکل‌هایی که در روترهای میکروتیک می‌بینم این است: کاربرها می‌گویند اینترنت کند است، CPU روتر بالای ۸۰ درصد است و ترافیک خروجی بی‌دلیل زیاد شده. علت در خیلی از موارد یک تیک ساده است: Allow Remote Requests در تنظیمات DNS روشن است و پورت ۵۳ به روی اینترنت باز مانده.

چرا DNS باز میکروتیک خطرناک است؟

وقتی Allow Remote Requests روشن باشد، میکروتیک به هر کسی که از او سؤال DNS بپرسد جواب می‌دهد؛ اگر فایروال جلوی WAN را نگرفته باشد، یعنی به کل اینترنت. چنین روتری را Open Resolver می‌گویند و چند خطر دارد:

  • حملهٔ DNS Amplification: مهاجم با آدرس جعلی قربانی، سؤال‌های کوچک به روتر شما می‌فرستد و روتر جواب‌های چند ده برابر بزرگ‌تر را به قربانی می‌فرستد. روتر شما بخشی از یک حملهٔ DDoS می‌شود، پهنای باندتان مصرف می‌شود و ممکن است ISP آدرستان را مسدود کند.
  • بالا رفتن CPU و کندی شبکه: هزاران درخواست در ثانیه، روتر را برای کاربران خودتان کند می‌کند.
  • DNS Cache Poisoning: جواب‌های جعلی ممکن است در حافظهٔ DNS روتر بنشیند و کاربرها را به سایت تقلبی بفرستد.
  • DNS Hijacking: اگر روتر هک شود، مهاجم سرور DNS یا رکوردهای Static را عوض می‌کند تا کاربرها بی‌خبر به سایت‌های جعلی یا تبلیغاتی بروند.

گام ۱: وضعیت DNS روتر را ببینید

/ip dns print
/ip firewall filter print where chain=input

اگر allow-remote-requests: yes است و در زنجیرهٔ input قانونی نیست که اتصال‌های جدید از WAN را ببندد، DNS شما باز است. برای آزمون از بیرون، از یک اینترنت دیگر (مثلاً موبایل) این را بزنید؛ باید Timeout بگیرید، نه جواب:

nslookup example.com YOUR-PUBLIC-IP

گام ۲: پورت ۵۳ را از سمت اینترنت ببندید

اول مطمئن شوید پورت‌های اینترنت در لیست WAN هستند:

/interface list member print

بعد دو قانون بگذارید که درخواست DNS از WAN را رد کند. place-before=0 آن‌ها را بالای همهٔ قوانین می‌گذارد تا یک قانون Accept قبلی بی‌اثرشان نکند:

/ip firewall filter
add chain=input in-interface-list=WAN protocol=udp dst-port=53 action=drop comment="Block DNS from WAN" place-before=0
add chain=input in-interface-list=WAN protocol=tcp dst-port=53 action=drop comment="Block DNS from WAN" place-before=0

اگر لینک اینترنتتان PPPoE یا L2TP است، اینترفیس همان اتصال را عضو لیست WAN کنید، نه پورت فیزیکی را.

راه‌حل اصولی‌تر: سیاست پیش‌فرض Drop

بستن تک‌تک پورت‌ها کافی نیست. زنجیرهٔ input باید فقط چیزهایی را که لازم است قبول کند و بقیه را رد کند:

/ip firewall filter
add chain=input connection-state=established,related,untracked action=accept
add chain=input connection-state=invalid action=drop
add chain=input protocol=icmp action=accept
add chain=input in-interface-list=LAN action=accept
add chain=input action=drop comment="Drop everything else"

قبل از اعمال آخرین قانون مطمئن شوید از سمت LAN وصل هستید، یا از Safe Mode وینباکس استفاده کنید تا اگر دسترسی قطع شد، تغییرات خودکار برگردد.

گام ۳: کاربرها را مجبور کنید از DNS روتر استفاده کنند

بدافزارها و بعضی کاربرها DNS را دستی روی سرورهای دیگر می‌گذارند تا فیلترها و پایش شما را دور بزنند. با یک قانون NAT، هر درخواست DNS داخلی را به خود روتر برگردانید:

/ip firewall nat
add chain=dstnat in-interface-list=LAN protocol=udp dst-port=53 action=redirect to-ports=53
add chain=dstnat in-interface-list=LAN protocol=tcp dst-port=53 action=redirect to-ports=53

گام ۴: جلوی DNS Hijacking را بگیرید

مهاجمی که به روتر دسترسی پیدا کند، اول سراغ DNS می‌رود. این‌ها را مرتب بررسی کنید:

/ip dns print
/ip dns static print
/system scheduler print
/system script print
/user print
  • سرورهای DNS و رکوردهای Static باید همان‌هایی باشند که خودتان گذاشته‌اید.
  • Scheduler یا Script ناشناس، نشانهٔ نفوذ است.
  • RouterOS را به‌روز نگه دارید؛ نفوذهای گستردهٔ سال‌های گذشته به میکروتیک، بیشتر از نسخه‌های قدیمی بود.
  • سرویس‌های بی‌استفاده را خاموش کنید و دسترسی وینباکس و SSH را به آدرس‌های داخلی محدود کنید:
/ip service disable telnet,ftp,www,api,api-ssl
/ip service set winbox address=192.168.88.0/24
/ip service set ssh address=192.168.88.0/24

گام ۵: DNS over HTTPS برای جلوگیری از شنود و دست‌کاری

در RouterOS 7 می‌توانید سؤال‌های DNS روتر را رمزنگاری‌شده و از طریق DoH بفرستید تا در مسیر شنود یا دست‌کاری نشوند:

/ip dns set servers=1.1.1.1 use-doh-server=https://cloudflare-dns.com/dns-query verify-doh-cert=yes

برای verify-doh-cert=yes گواهی ریشهٔ سرور DoH باید روی روتر معتبر باشد. اگر نیست، اول گواهی ریشه را import کنید. آدرس servers هم برای پیدا کردن خود سرور DoH لازم است.

گام ۶: پایش کنید

بعد از اعمال قوانین، شمارنده‌ها را ببینید. اگر قانون Drop پورت ۵۳ تند بالا می‌رود، روترتان هدف بوده و حالا جلویش گرفته شده است:

/ip firewall filter print stats where comment="Block DNS from WAN"
/system resource print
/tool torch interface=ether1 port=53

چک‌لیست خلاصه

  1. پورت ۵۳ UDP و TCP از سمت WAN بسته باشد.
  2. زنجیرهٔ input سیاست پیش‌فرض Drop داشته باشد.
  3. DNS کاربرها با NAT به روتر برگردانده شود.
  4. رکوردهای Static، Scheduler و کاربرهای روتر هر چند وقت یک بار بررسی شود.
  5. RouterOS به‌روز و سرویس‌های اضافه خاموش باشد.
  6. در صورت امکان، DoH فعال شود.

برای بقیهٔ تنظیمات امنیتی روتر، مقالهٔ امنیت شبکه در میکروتیک و برای دسترسی امن از راه دور، دسترسی از راه دور به تجهیزات میکروتیک را ببینید.

  • میکروتیک
  • امنیت میکروتیک
  • حمله DNS
  • DNS Amplification
  • Open Resolver
  • فایروال میکروتیک
  • DNS over HTTPS
  • RouterOS