Pencegahan DNS Poisoning - MikroTik

📌 Tujuan Praktikum

Setelah mengikuti praktikum ini, Anda diharapkan mampu:

  • Memahami apa itu DNS Poisoning / Spoofing dan cara kerjanya
  • Memahami jenis-jenis serangan DNS (Cache Poisoning, DNS Spoofing, DNS Hijacking)
  • Memahami dampak serangan DNS pada keamanan jaringan
  • Mengkonfigurasi MikroTik RouterOS untuk mencegah DNS Poisoning
  • Menerapkan DNS Security, DNSSEC, dan Firewall Rules
1. Apa Itu DNS Poisoning / Spoofing? Penting

DNS Poisoning (atau DNS Spoofing) adalah serangan siber di mana penyerang memasukkan data DNS palsu ke dalam cache DNS server. Hal ini menyebabkan pengguna yang mencoba mengakses suatu domain akan diarahkan ke situs palsu yang dikendalikan oleh penyerang.

Analogi Sederhana:

DNS Poisoning seperti "mengganti buku telepon" di kantor pos. Anda ingin menelepon toko buku, tetapi buku telepon sudah diganti sehingga nomor yang Anda dapatkan adalah nomor toko palsu yang dikendalikan penjahat.

👤 Client
⟷
🌐 DNS Server (Dipoison)
⟷
🕵️ Situs Palsu

Client ingin mengakses situs asli, tetapi DNS mengarahkan ke situs palsu penyerang

🔑 Cara Kerja DNS Poisoning

  1. Penyerang mengidentifikasi DNS server target — misalnya router MikroTik
  2. Penyerang mengirim paket DNS palsu ke DNS server (cache poisoning)
  3. DNS server menyimpan data palsu di cache-nya
  4. Pengguna meminta resolusi domain — misalnya bank.com
  5. DNS server memberikan IP palsu — mengarah ke situs phising
  6. Pengguna tidak sadar dan memasukkan data sensitif ke situs palsu
⚠️ Penting:

DNS Poisoning adalah serangan yang sangat berbahaya karena pengguna tidak dapat membedakan situs asli dan palsu. URL di browser terlihat benar, tetapi IP tujuan sudah diubah.

2. Jenis-jenis Serangan DNS Metode

Berikut adalah jenis-jenis serangan DNS yang paling umum:

DNS Spoofing (Lokal)
Penyerang memalsukan DNS di jaringan lokal (LAN).
Tool: dnsspoof, ettercap
DNS Spoofing (Remote)
Penyerang memalsukan DNS dari luar jaringan.
Tool: DNS Spoofing tools
DNS Cache Poisoning
Memasukkan data palsu ke cache DNS server.
Target: DNS Server
DNS Hijacking
Mengambil alih kontrol DNS domain.
Dampak: Situs tidak bisa diakses
💡 Tool DNS Poisoning Populer:
  • dnsspoof — Tool DNS spoofing dari suite dsniff
  • Ettercap — Tool MitM dengan fitur DNS spoofing
  • Bettercap — Tool MitM modern dengan DNS spoofing
  • Poison — DNS cache poisoning tool
3. Dampak Serangan DNS Berbahaya
☠️ Dampak Serangan DNS pada Jaringan:
  • Phishing: Pengguna diarahkan ke situs palsu untuk mencuri data
  • Pencurian Kredensial: Username dan password dicuri
  • Malware Distribution: Pengguna diarahkan ke situs malware
  • Kehilangan Akses: Situs yang sah tidak bisa diakses
  • Kerugian Finansial: Transaksi diarahkan ke rekening penyerang
  • Reputasi Rusak: Kepercayaan pengguna menurun
📊 Statistik Serangan DNS:
  • 85% serangan phishing menggunakan DNS spoofing
  • Rata-rata 10.000 serangan DNS per hari
  • 2023 serangan DNS meningkat 45%
  • Rata-rata kerugian akibat DNS spoofing $50.000 - $500.000
4. Metode Pencegahan DNS Poisoning Strategi

Berikut adalah metode yang dapat digunakan untuk mencegah DNS Poisoning pada MikroTik:

🔑 Metode Pencegahan

1. DNSSEC (DNS Security Extensions)
  • Menambahkan autentikasi pada data DNS
  • Mencegah data DNS palsu dari cache poisoning
2. Firewall Rules
  • Batasi akses DNS hanya dari sumber terpercaya
  • Blokir DNS query dari luar jaringan
  • Gunakan /ip firewall filter
3. DNS Forwarding
  • Gunakan DNS server terpercaya (Google DNS, Cloudflare DNS)
  • Set /ip dns set servers=8.8.8.8,1.1.1.1
4. Cache Limiting
  • Batasi waktu cache DNS (TTL)
  • Gunakan /ip dns set cache-size dan cache-max-ttl
5. Authentication
  • Gunakan TSIG (Transaction Signature) untuk update DNS
  • Autentikasi antara master dan slave DNS
6. Monitoring & Logging
  • Aktifkan logging untuk aktivitas DNS
  • Monitor query DNS yang mencurigakan
  • Gunakan /log untuk monitoring
5. Konfigurasi Dasar DNS MikroTik Step 1

Konfigurasi dasar DNS Server pada MikroTik.

📝 Langkah-langkah

1. Setting DNS Server (Google DNS):

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

2. Setting Static DNS (opsional):

/ip dns static add name=server.lan address=192.168.10.20

3. Cek konfigurasi DNS:

/ip dns print
✅ Konfigurasi DNS dasar selesai!
6. DNS Forwarding & Cache Management Step 2

Mengelola DNS forwarding dan cache untuk meningkatkan keamanan.

📝 6.1 Setting Cache Size dan TTL

/ip dns set cache-size=2048KiB
/ip dns set cache-max-ttl=1d
📖 Penjelasan:
  • cache-size=2048KiB → Ukuran cache 2 MB
  • cache-max-ttl=1d → Maksimal TTL 1 hari

📝 6.2 Flush DNS Cache (Jika Terkena Poisoning)

/ip dns cache flush

📝 6.3 Lihat Isi Cache DNS

/ip dns cache print
✅ DNS Cache Management selesai!
7. Firewall untuk DNS Security Step 3

Firewall rules untuk melindungi DNS server dari serangan.

📝 7.1 Batasi Akses DNS

/ip firewall filter add chain=input protocol=udp dst-port=53 src-address=192.168.10.0/24 action=accept comment="Allow DNS from LAN"
/ip firewall filter add chain=input protocol=udp dst-port=53 action=drop comment="Drop DNS from outside"
📖 Penjelasan:
  • dst-port=53 → Port DNS
  • src-address=192.168.10.0/24 → Hanya dari LAN
  • action=drop → Blokir dari luar

📝 7.2 Deteksi DNS Spoofing

/ip firewall filter add chain=input protocol=udp dst-port=53 action=add-src-to-address-list address-list=dns_attacker address-list-timeout=5m comment="DNS Attack Detection"

📝 7.3 Blokir DNS Spoofing

/ip firewall filter add chain=input src-address-list=dns_attacker action=drop comment="Blokir DNS Attacker"
✅ Firewall DNS Security selesai!
8. Static DNS Entries Step 4

Static DNS entries mencegah DNS spoofing untuk domain-domain penting.

📝 8.1 Tambahkan Static DNS untuk Domain Penting

/ip dns static add name=bank.com address=192.168.10.100 comment="Bank Internal"
/ip dns static add name=website.com address=192.168.10.101 comment="Website Utama"
/ip dns static add name=mail.com address=192.168.10.102 comment="Mail Server"

📝 8.2 Lihat Static DNS

/ip dns static print
💡 Catatan: Static DNS sangat efektif untuk domain-domain penting yang sering menjadi target spoofing, seperti banking, email, dan internal server.
✅ Static DNS Entries selesai!
9. DNSSEC (DNS Security Extensions) Step 5 (Opsional)

DNSSEC menambahkan autentikasi ke DNS untuk mencegah cache poisoning.

💡 Catatan: DNSSEC membutuhkan dukungan dari penyedia DNS dan konfigurasi tambahan. Bagian ini opsional untuk MikroTik dasar.

📝 9.1 Cek DNSSEC

/ip dns print

📝 9.2 Verifikasi DNSSEC

/tool dns-check domain=bank.com
⚠️ Catatan: MikroTik RouterOS memiliki dukungan DNSSEC terbatas. Untuk implementasi penuh, gunakan BIND atau PowerDNS di server terpisah.
✅ DNSSEC selesai!
10. Konfigurasi Lengkap Final

Berikut adalah konfigurasi lengkap untuk pencegahan DNS Poisoning pada MikroTik.

📝 Script Lengkap

# ============================================
# KONFIGURASI PENCEGAHAN DNS POISONING
# MIKROTIK ROUTEROS
# ============================================

# 1. SETTING DNS SERVER (TRUSTED DNS)
/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes

# 2. SETTING CACHE MANAGEMENT
/ip dns set cache-size=2048KiB
/ip dns set cache-max-ttl=1d

# 3. STATIC DNS ENTRIES (DOMAIN PENTING)
/ip dns static add name=bank.com address=192.168.10.100 comment="Bank Internal"
/ip dns static add name=website.com address=192.168.10.101 comment="Website Utama"
/ip dns static add name=mail.com address=192.168.10.102 comment="Mail Server"

# 4. FIREWALL - ALLOW DNS FROM LAN
/ip firewall filter add chain=input protocol=udp dst-port=53 src-address=192.168.10.0/24 action=accept comment="Allow DNS from LAN"

# 5. FIREWALL - DROP DNS FROM OUTSIDE
/ip firewall filter add chain=input protocol=udp dst-port=53 action=drop comment="Drop DNS from outside"

# 6. FIREWALL - DNS SPOOFING DETECTION
/ip firewall filter add chain=input protocol=udp dst-port=53 action=add-src-to-address-list address-list=dns_attacker address-list-timeout=5m comment="DNS Attack Detection"

# 7. FIREWALL - BLOKIR DNS ATTACKER
/ip firewall filter add chain=input src-address-list=dns_attacker action=drop comment="Blokir DNS Attacker"

# 8. LOGGING (OPSIONAL)
/ip firewall filter add chain=input src-address-list=dns_attacker action=log log-prefix="DNS_SPOOF:" comment="Log DNS Spoofing"
💡 Catatan: Sesuaikan IP Address, domain, dan interface dengan konfigurasi jaringan Anda.
✅ Konfigurasi lengkap selesai!

MikroTik Anda sekarang dilindungi dari DNS Poisoning / Spoofing.

11. Pengujian Step 6

Lakukan pengujian untuk memastikan konfigurasi berjalan dengan baik.

11.1 Cek DNS Setting

/ip dns print

11.2 Cek Static DNS

/ip dns static print

11.3 Cek Firewall Rules

/ip firewall filter print

11.4 Uji Resolusi DNS

/ping bank.com
/ping website.com
/ping mail.com

11.5 Uji DNS Spoofing (Testing)

📝 Uji coba dengan dnsspoof (dari client lain):

# DNS Spoofing (di client Linux)
echo "192.168.100.50 bank.com" > /tmp/hosts.txt
dnsspoof -i eth0 -f /tmp/hosts.txt

# Dari client, coba akses bank.com
# Seharusnya IP yang muncul adalah 192.168.100.50 (palsu)

Jika konfigurasi berhasil, DNS spoofing akan terdeteksi dan ditolak, atau static DNS akan mengembalikan IP yang benar.

⚠️ Peringatan:

Pengujian DNS Spoofing hanya boleh dilakukan di lingkungan lab dengan izin. Jangan melakukan serangan DNS pada jaringan produksi atau jaringan orang lain.

✅ Pengujian selesai!

Konfigurasi pencegahan DNS Poisoning berfungsi dengan baik.

12. Kesimpulan Selesai

Dalam praktikum ini, Anda telah berhasil melakukan:

Best Practice Keamanan DNS:
  • Gunakan Trusted DNS: Google DNS (8.8.8.8), Cloudflare (1.1.1.1)
  • Static DNS: Buat static entries untuk domain penting (banking, email)
  • Firewall: Batasi akses DNS hanya dari jaringan lokal
  • DNSSEC: Implementasikan DNSSEC untuk autentikasi (jika memungkinkan)
  • Monitoring: Pantau log DNS secara rutin
  • Flush Cache: Flush DNS cache secara periodik atau jika mencurigakan
  • Edukasi: Edukasi pengguna tentang risiko DNS spoofing