1. Home
  2. Docs
  3. MikroTik
  4. Firewall
  5. Cara Redirect DNS ke MikroTik: Paksa User Menggunakan DNS Internal

Cara Redirect DNS ke MikroTik: Paksa User Menggunakan DNS Internal

Untuk memaksa user menggunakan DNS Internal MikroTik dan memblokir koneksi atau akses ke upstream DNS public (UDP/TCP 53, DoH, dan DoT), kita bisa gunakan tehnik/metode DNS NAT Redirect dan Firewall Filter/Raw.

Banyak klien sekarang “pinter” dengan mengganti DNS ke 8.8.8.8, 1.1.1.1, atau memakai DNS over HTTPS (DoH) dan DNS over TLS (DoT), sehingga policy jaringan, filtering berbasis dns, dan logging melalui DNS internal router jadi tidak efektif. Di MikroTik, kita bisa memaksa semua user menggunakan DNS internal router dengan teknik intercept/redirect port 53 serta memblokir trafik request DNS (UDP/TCP 53) eksternal, DoH atau DoT melalui firewall filter/raw.

Prasyarat dan Konsep Dasar

  • Router MikroTik telah menggunakan RouterOS versi 7.x.
  • MikroTik sebagai DNS Server Internal, MikroTik memiliki fitur yang dapat berfungsi sebagai DNS server, termasuk menambahkan record statis dan regex untuk fake/override/redirect DNS.
  • Ketika user mencoba mengubah DNS manual ke 8.8.8.8 di laptop mereka, router secara otomatis mengalihkan (redirect) ke server DNS Internal Mikrotik.
  • Ketika aplikasi atau perangkat mencoba menggunakan DoT (Port 853), router akan menolak (reject) request tersebut.
  • Ketika browser (seperti Chrome/Firefox) mencoba mengaktifkan fitur Secure DNS / DoH, request ke server DoH akan didrop, memaksa browser kembali menggunakan DNS bawaan OS (yang sudah dialihkan ke MikroTik).

Konfigurasi DNS Server Internal MikroTik

Aktifkan DNS Server dan jadikan router sebagai server DNS internal utama untuk user:

  • Menggunakan Winbox -> Buka menu IP > DNS
    • Servers: 1.1.1.1 atau 8.8.8.8 (Masukkan DNS upstream favorit Anda)
    • Allow Remote Requests: centang
    • Klik Apply lalu OK.
  • Catatan penting:

Perintah CLI (Terminal)

/ip dns set servers=1.1.1.1,8.8.8.8 allow-remote-requests=yes

Redirect DNS Standard (Port 53 UDP & TCP)

Untuk mengalihkan (intercept) semua request DNS standar dari user yang mencoba memakai server DNS eksternal, kita bisa menggunakan rule DST-NAT Redirect.

  1. Menggunakan Winbox -> Buka menu IP > Firewall > tab NAT > Klik + (Add)
    • Tab General:
      • Chain: dstnat
      • In. Interface List: LAN (sesuaikan interface LAN Anda)
      • Protocol: udp
      • Dst. Port: 53
    • Tab Action:
      • Action: redirect
      • To Ports: 53
    • Klik Apply dan OK, beri komentar: Intercept DNS UDP.
  2. Ulangi langkah di atas untuk protokol tcp (Port 53).

Perintah CLI (Terminal)

/ip firewall nat
add chain=dstnat action=redirect to-ports=53 protocol=udp dst-port=53 in-interface-list=LAN comment="Intercept DNS UDP"
add chain=dstnat action=redirect to-ports=53 protocol=tcp dst-port=53 in-interface-list=LAN comment="Intercept DNS TCP"

Opsional – Drop akses langsung ke Upstream Public DNS

Kalau ingin lebih ketat, bisa menambahkan rule forward untuk drop paket DNS yang keluar ke WAN. Konfigurasi ini bisa menjadi lapisan tambahan.

/ip firewall filter
add chain=forward out-interface-list=WAN protocol=udp dst-port=53 \
    action=drop comment="Drop Koneksi DNS UDP langsung ke internet"

add chain=forward out-interface-list=WAN protocol=tcp dst-port=53 \
    action=drop comment="Drop Koneksi DNS TCP langsung ke internet"

Blokir Akses DoT (DNS over TLS – Port 853)

Fitur DoT menggunakan port 853 (TCP/UDP) untuk mengenkripsi query DNS. Karena tidak bisa dibaca begitu saja oleh NAT biasa, trafik koneksi ini harus diblokir total agar perangkat klien fallback ke DNS standar (port 53) yang sudah kita redirect.

Disarankan memakai firewall raw dengan dst-port=853 untuk memblokir DoT, karena lapisan ini bekerja sebelum connection tracking dan dapat mengurangi beban CPU.

  1. Menggunakan Winbox ->Buka IP -> Firewall -> tab Raw -> Klik +(Add).
    • Tab General:
      • Chain: prerouting
      • In. Interface List: LAN
      • Protocol: tcp
      • Dst. Port: 853
    • Tab Action: drop.
    • Klik Apply,
  2. Ulangi buat rule serupa untuk protokol udp port 853.

Perintah CLI (Terminal)

/ip firewall raw
add chain=prerouting in-interface-list=LAN protocol=tcp dst-port=853 action=drop comment="Blokir DoT (DNS over TLS)"

Blokir Akses DoH (DNS over HTTPS – Port 443)

DoH sangat sulit diblokir karena menggunakan port TCP 443 (sama dengan lalu lintas HTTPS web biasa). Di RouterOS v7, cara paling efektif adalah memblokir nama domain penyedia DoH populer menggunakan Dynamic Address-List, rewrite/override dns menggunakan DNS Statis.

Metode 1: Memblokir DoH via address-list Server DoH

Kita bisa menambahkan domain DoH publik ke dalam address-list agar IP-nya otomatis ter-resolve oleh RouterOS, lalu diblokir melalui Firewall Filter. Anda bisa lihat dokumentasi saya sebelumnya untuk Menambahkan Address List Berdasarkan Nama Domain.

Buat Address List Domain DoH (Referensi daftar domain/ip DoH bisa lihat di AdGuard DNS Providers) :

/ip firewall address-list
add address=cloudflare-dns.com list=ips_public_dns
add address=dns.google list=ips_public_dns
add address=dns.quad9.net list=ips_public_dns
add address=doh.dns.apple.com list=ips_public_dns
add address=doh.cleanbrowsing.org list=ips_public_dns

Catatan: karena banyak layanan (Google, Cloudflare) menggunakan IP dan CDN yang sama untuk Web dan DoH, Anda mungkin akan sekaligus memblokir akses ke sebagian situs ketika memblokir IP DoH tertentu.

Opsional: Atau Anda bisa menggunakan daftar list IP DoH/DoT dari sumber ekternal (Github) yang tinggal pakai, Anda bisa lihat dokumentasi Cara Import Daftar IP dari URL ke Address-List untuk menggunakan metode ini.

Blokir Akses ke IP Server DoH:

Selanjutnya kita drop koneksi user yang menuju IP-IP DoH dalam address-list ips_public_dns:

/ip firewall raw
add action=drop chain=prerouting comment="Block Known DoH Servers TCP" dst-address-list=ips_public_dns dst-port=443 in-interface-list=LAN protocol=tcp
add action=drop chain=prerouting comment="Block Known DoH Servers UDP" dst-address-list=ips_public_dns dst-port=443 in-interface-list=LAN protocol=udp

Metode 2: Memblokir DoH via TLS-Host

Metode ini mencegat handshake SSL/TLS menggunakan pencocokan string regex/TLS saat browser mencoba menghubungi endpoint DoH:

/ip firewall raw
add action=drop chain=prerouting comment="Block Cloudflare DoH" dst-port=443 protocol=tcp tls-host="*cloudflare-dns.com"
add action=drop chain=prerouting comment="Block Google DoH" dst-port=443 protocol=tcp tls-host="*dns.google*"
add action=drop chain=prerouting comment="Block AdGuard DoH" dst-port=443 protocol=tcp tls-host="*dns.adguard*"

Fitur tls-host pada Firewall Raw mengandalkan SNI (Server Name Indication) pada handshake TLS pertama. Jika paket tersebut terfragmentasi atau klien menggunakan teknologi ECH (Encrypted Client Hello), MikroTik tidak bisa membaca domainnya.

Metode 3: Memblokir DoH via DNS Sinkhole/Spoofing

ini adalah salah satu teknik filtering yang paling efisien karena sangat ringan dan hampir tidak membebani CPU router jika dibandingkan dengan Firewall Filter atau Layer 7 Inspection.

Menggunakan NXDOMAIN (Disarankan)

Browser akan langsung menerima pesan bahwa domain tidak ada, sehingga proses dihentikan lebih cepat tanpa timeout yang panjang.

/ip dns static
add name="dns.google" type=NXDOMAIN comment="Block Google DoH"
add name="cloudflare-dns.com" type=NXDOMAIN comment="Block Cloudflare DoH"

Menggunakan Regex (DoH yang Pakai Banyak Subdomain)

Jika server DoH menggunakan banyak subdomain (misal: doh1.dns.com, doh2.dns.com), Regex sangat ampuh.

/ip dns static
add regexp=".*\\.cleanbrowsing\\.org" type=NXDOMAIN comment="Block all CleanBrowsing DoH"
add regexp=".*\\.cloudflare-dns\\.com" type=NXDOMAIN comment="Block all Cloudflare DoH"
add regexp=".*\\.adguard\\.com" type=NXDOMAIN comment="Block all Adguard DoH"

Browser modern seperti Google Chrome dan Mozilla Firefox cukup agresif. Kadang-kadang, mereka tidak melakukan query nama domain seperti dns.google ke DNS internal.. Mereka sudah memiliki hardcoded IP (seperti 8.8.8.8 atau 1.1.1.1) di dalam source codenya dan akan langsung membuka koneksi HTTPS (Port 443) ke IP tersebut untuk memulai sesi DoH. Jika hal ini terjadi, DNS Sinkhole akan dilewati begitu saja karena tidak ada proses query nama domain.

Frequently Asked Questions (FAQ)

Apakah cara ini akan bikin lambat koneksi internet user?

Tidak. Justru dengan mengaktifkan DNS Cache di MikroTik, respon nama domain yang sering diakses akan terasa lebih cepat karena router menyimpan query (caching) di router.

Apakah intercept DNS ini 100% memaksa semua klien?

Untuk trafik DNS “klasik” (UDP/TCP port 53), ya, selama semua user berada di interface yang termasuk in-interface-list=LAN, rule dst-nat redirect akan mengarahkan semua query ke router.

Perlu pakai Layer7 atau tls-host untuk identifikasi Domain DoH/DoT?

Karena beberapa layanan modern menggunakan enkripsi TLS1.3 SNI metode ini tidak selalu efektif. Lebih disarankan adalah address-list IP DoH dan kontrol port 853 untuk DoT.

Apakah trik Intercept ini bisa dibobol oleh user yang menggunakan VPN?

Ya, bisa. Jika klien mengaktifkan VPN (seperti OpenVPN, WireGuard, Warp atau NordVPN), semua lalu lintas internet termasuk DNS akan dibungkus di dalam pipa terenkripsi (port VPN). MikroTik tidak bisa melihat atau membelokkan DNS tersebut kecuali Anda memblokir protokol VPN itu sendiri di firewall.

Kesimpulan

Dengan menggunakan metode DNS Intercept/Redirect dan memblokir port DoT/DoH di MikroTik RouterOS v7, kita dapat memaksa seluruh user untuk menggunakan server DNS Internal. Cara ini efektif untuk mengoptimalkan penggunaan bandwidth, mempercepat proses resolving domain melalui cache, serta memastikan semua klien mengikuti aturan blokir situs yang diterapkan di router (web filtering berbasis DNS).

Tags ,
guest

0 Comments
Oldest
Newest Most Voted