Pencegahan DoS/DDoS - MikroTik

📌 Tujuan Praktikum

Setelah mengikuti praktikum ini, Anda diharapkan mampu:

  • Memahami apa itu DoS dan DDoS serta perbedaannya
  • Memahami jenis-jenis serangan DoS/DDoS (SYN Flood, UDP Flood, HTTP Flood, ICMP Flood, Amplification, Slowloris)
  • Memahami dampak serangan DoS/DDoS pada jaringan
  • Mengkonfigurasi MikroTik RouterOS untuk mencegah DoS/DDoS
  • Menerapkan firewall rules dan connection tracking untuk mitigasi
1. Apa Itu DoS dan DDoS? Penting

DoS (Denial of Service) adalah serangan yang bertujuan membuat layanan menjadi tidak tersedia bagi pengguna yang sah dengan cara membanjiri server atau jaringan dengan lalu lintas yang berlebihan.

DDoS (Distributed Denial of Service) adalah versi lebih besar dari DoS yang menggunakan banyak perangkat (botnet) secara bersamaan untuk menyerang satu target, sehingga lebih sulit dihentikan.

Analogi Sederhana:

DoS seperti "satu orang yang terus menelepon restoran" sehingga pelanggan lain tidak bisa memesan. DDoS seperti "ribuan orang secara bersamaan menelepon restoran" sehingga restoran tidak bisa melayani siapa pun karena telepon terus berdering.

🔑 Perbedaan DoS dan DDoS

AspekDoSDDoS
Sumber SeranganSatu perangkat/sumberBanyak perangkat (botnet)
SkalaKecilBesar (massal)
DeteksiMudah (satu IP)Sulit (banyak IP berbeda)
MitigasiBlokir satu IPButuh perlindungan berlapis
DampakLokalGlobal (skala besar)
2. Jenis-jenis Serangan DoS/DDoS Metode

Berikut adalah jenis-jenis serangan DoS/DDoS yang paling umum:

SYN Flood
Mengirim SYN terus menerus tanpa menyelesaikan handshake.
Port: 22, 80, 443, dll
Target: Server/Service
UDP Flood
Mengirim paket UDP ke port acak secara massal.
Port: 53, 69, 161, dll
Target: Bandwidth/CPU
HTTP Flood
Request HTTP/HTTPS berulang ke web server.
Port: 80, 443
Target: Web Server
ICMP Flood (Ping of Death)
Mengirim ping (ICMP) dalam jumlah besar.
Port: N/A (ICMP)
Target: Bandwidth/CPU
Amplification Attack
Memanfaatkan server untuk memperbesar serangan (DNS, NTP, Memcached).
Port: 53, 123, 11211
Target: Bandwidth
Slowloris (Slow Attack)
Mengirim request lambat untuk menguras koneksi server.
Port: 80, 443
Target: Web Server
💡 Tool DDoS Populer:
  • LOIC (Low Orbit Ion Cannon) — Tool DDoS sederhana
  • HOIC (High Orbit Ion Cannon) — Versi lebih kuat dari LOIC
  • Slowloris — Slow attack pada web server
  • Hping3 — Custom packet generator
3. Dampak Serangan DoS/DDoS Berbahaya
☠️ Dampak Serangan DoS/DDoS pada Jaringan:
  • Layanan Terganggu: Website, email, VPN, dan layanan lain tidak bisa diakses
  • Kerugian Finansial: Downtime menyebabkan kehilangan pendapatan
  • Reputasi Rusak: Kepercayaan pelanggan menurun
  • Beban Hardware: CPU dan memory server meningkat drastis
  • Bandwidth Habis: Jaringan penuh dengan traffic sampah
  • Serangan Tambahan: Sering digunakan sebagai pengalihan untuk serangan lain
📊 Statistik DoS/DDoS:
  • Rata-rata serangan DDoS mencapai 10-100 Gbps
  • Biaya downtime rata-rata $10.000 - $50.000 per jam
  • 70% serangan DDoS menargetkan port 80 dan 443 (web server)
  • 2023 serangan DDoS terbesar mencapai 3.47 Tbps
4. Metode Pencegahan DoS/DDoS Strategi

Berikut adalah metode yang dapat digunakan untuk mencegah atau memitigasi serangan DoS/DDoS:

🔑 Metode Pencegahan

1. Firewall Rules
  • Batasi jumlah koneksi per IP
  • Blokir paket dengan pola mencurigakan
  • Gunakan connection-limit dan connection-rate
2. SYN Cookies / SYN Proxy
  • Mencegah SYN Flood dengan tidak menyimpan state connection
  • Gunakan fitur tcp-syncookies di MikroTik
3. Rate Limiting
  • Batasi traffic per IP atau per port
  • Gunakan queue tree dan simple queue
4. Geo-IP Blocking
  • Blokir IP dari negara-negara dengan traffic mencurigakan
  • Batasi akses hanya dari wilayah tertentu
5. Cloudflare / CDN
  • Gunakan layanan proxy seperti Cloudflare
  • CDN menyaring traffic sebelum mencapai server
6. Monitoring & Alerting
  • Aktifkan logging untuk traffic mencurigakan
  • Buat alert untuk lonjakan traffic
  • Gunakan /log dan /tool graphing
5. Konfigurasi Dasar MikroTik Step 1

Sebelum menerapkan pencegahan DoS/DDoS, pastikan konfigurasi dasar MikroTik sudah benar.

📝 Langkah-langkah

1. Setting IP Address:

/ip address add address=192.168.10.1/24 interface=ether1

2. Setting Gateway:

/ip route add gateway=192.168.1.1

3. Setting DNS:

/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes
✅ Konfigurasi dasar selesai!
6. Pencegahan SYN Flood Step 2

SYN Flood adalah serangan yang mengirim SYN packet tanpa menyelesaikan handshake, menguras resource server.

📝 6.1 Aktifkan SYN Cookies

/ip settings set tcp-syncookies=yes
📖 Penjelasan:
  • tcp-syncookies=yes → Mengaktifkan SYN Cookies
  • Mencegah server menyimpan state connection untuk SYN yang belum diverifikasi

📝 6.2 Limit SYN Packet

/ip firewall filter add chain=input protocol=tcp tcp-flags=syn connection-limit=10,32 action=drop comment="SYN Flood Limit"

📝 6.3 Limit SYN per IP

/ip firewall filter add chain=input protocol=tcp tcp-flags=syn src-address-list=!allow_syn action=add-src-to-address-list address-list=syn_flood address-list-timeout=5m comment="SYN Flood Detection"
✅ SYN Flood Prevention berhasil dikonfigurasi!
7. Pencegahan UDP Flood Step 3

UDP Flood mengirim paket UDP ke port acak untuk membanjiri bandwidth dan CPU.

📝 7.1 Limit UDP Connection

/ip firewall filter add chain=input protocol=udp connection-limit=10,32 action=drop comment="UDP Flood Limit"

📝 7.2 Deteksi UDP Flood

/ip firewall filter add chain=input protocol=udp connection-rate=500K action=add-src-to-address-list address-list=udp_flood address-list-timeout=5m comment="UDP Flood Detection"

📝 7.3 Blokir UDP Flood

/ip firewall filter add chain=input src-address-list=udp_flood action=drop comment="Blokir UDP Flood"
✅ UDP Flood Prevention berhasil dikonfigurasi!
8. Pencegahan ICMP Flood Step 4

ICMP Flood (Ping of Death) mengirim paket ICMP dalam jumlah besar untuk membanjiri jaringan.

📝 8.1 Limit ICMP

/ip firewall filter add chain=input protocol=icmp connection-limit=5,32 action=drop comment="ICMP Flood Limit"

📝 8.2 Deteksi ICMP Flood

/ip firewall filter add chain=input protocol=icmp connection-rate=100K action=add-src-to-address-list address-list=icmp_flood address-list-timeout=5m comment="ICMP Flood Detection"

📝 8.3 Blokir ICMP Flood

/ip firewall filter add chain=input src-address-list=icmp_flood action=drop comment="Blokir ICMP Flood"
✅ ICMP Flood Prevention berhasil dikonfigurasi!
9. Pencegahan HTTP Flood Step 5

HTTP Flood mengirim request HTTP/HTTPS berulang ke web server untuk menguras resource.

📝 9.1 Limit HTTP Connection

/ip firewall filter add chain=input protocol=tcp dst-port=80,443 connection-limit=10,32 action=drop comment="HTTP Flood Limit"

📝 9.2 Deteksi HTTP Flood

/ip firewall filter add chain=input protocol=tcp dst-port=80,443 connection-rate=1M action=add-src-to-address-list address-list=http_flood address-list-timeout=10m comment="HTTP Flood Detection"

📝 9.3 Blokir HTTP Flood

/ip firewall filter add chain=input src-address-list=http_flood action=drop comment="Blokir HTTP Flood"
✅ HTTP Flood Prevention berhasil dikonfigurasi!
10. Konfigurasi Lengkap Final

Berikut adalah konfigurasi lengkap untuk pencegahan DoS/DDoS pada MikroTik.

📝 Script Lengkap

# ============================================
# KONFIGURASI PENCEGAHAN DOS/DDOS
# MIKROTIK ROUTEROS
# ============================================

# 1. AKTIFKAN SYN COOKIES
/ip settings set tcp-syncookies=yes

# 2. BUAT ADDRESS LIST UNTUK FLOOD
/ip firewall address-list add list=syn_flood
/ip firewall address-list add list=udp_flood
/ip firewall address-list add list=icmp_flood
/ip firewall address-list add list=http_flood

# 3. SYN FLOOD PREVENTION
/ip firewall filter add chain=input protocol=tcp tcp-flags=syn connection-limit=10,32 action=drop comment="SYN Flood Limit"
/ip firewall filter add chain=input protocol=tcp tcp-flags=syn action=add-src-to-address-list address-list=syn_flood address-list-timeout=5m comment="SYN Flood Detection"
/ip firewall filter add chain=input src-address-list=syn_flood action=drop comment="Blokir SYN Flood"

# 4. UDP FLOOD PREVENTION
/ip firewall filter add chain=input protocol=udp connection-limit=10,32 action=drop comment="UDP Flood Limit"
/ip firewall filter add chain=input protocol=udp connection-rate=500K action=add-src-to-address-list address-list=udp_flood address-list-timeout=5m comment="UDP Flood Detection"
/ip firewall filter add chain=input src-address-list=udp_flood action=drop comment="Blokir UDP Flood"

# 5. ICMP FLOOD PREVENTION
/ip firewall filter add chain=input protocol=icmp connection-limit=5,32 action=drop comment="ICMP Flood Limit"
/ip firewall filter add chain=input protocol=icmp connection-rate=100K action=add-src-to-address-list address-list=icmp_flood address-list-timeout=5m comment="ICMP Flood Detection"
/ip firewall filter add chain=input src-address-list=icmp_flood action=drop comment="Blokir ICMP Flood"

# 6. HTTP FLOOD PREVENTION
/ip firewall filter add chain=input protocol=tcp dst-port=80,443 connection-limit=10,32 action=drop comment="HTTP Flood Limit"
/ip firewall filter add chain=input protocol=tcp dst-port=80,443 connection-rate=1M action=add-src-to-address-list address-list=http_flood address-list-timeout=10m comment="HTTP Flood Detection"
/ip firewall filter add chain=input src-address-list=http_flood action=drop comment="Blokir HTTP Flood"

# 7. STEALTH MODE (OPSIONAL)
/ip firewall filter add chain=input protocol=icmp action=drop comment="Stealth: Drop Ping"

# 8. LOGGING (OPSIONAL)
/ip firewall filter add chain=input src-address-list=syn_flood action=log log-prefix="SYN_FLOOD:" comment="Log SYN Flood"
/ip firewall filter add chain=input src-address-list=udp_flood action=log log-prefix="UDP_FLOOD:" comment="Log UDP Flood"
/ip firewall filter add chain=input src-address-list=icmp_flood action=log log-prefix="ICMP_FLOOD:" comment="Log ICMP Flood"
/ip firewall filter add chain=input src-address-list=http_flood action=log log-prefix="HTTP_FLOOD:" comment="Log HTTP Flood"
💡 Catatan: Sesuaikan nilai connection-limit dan connection-rate dengan kebutuhan jaringan Anda.
✅ Konfigurasi lengkap selesai!

MikroTik Anda sekarang dilindungi dari serangan DoS/DDoS (SYN Flood, UDP Flood, ICMP Flood, HTTP Flood).

11. Pengujian Step 6

Lakukan pengujian untuk memastikan konfigurasi berjalan dengan baik.

11.1 Cek Log

/log print where topics~"SYN_FLOOD|UDP_FLOOD|ICMP_FLOOD|HTTP_FLOOD"

11.2 Cek Address List

/ip firewall address-list print

11.3 Cek Setting SYN Cookies

/ip settings print
⚠️ Peringatan:

Untuk pengujian DoS/DDoS, gunakan tool seperti hping3 atau LOIC dengan izin dan pengawasan. Jangan melakukan pengujian pada jaringan produksi tanpa persetujuan.

✅ Pengujian selesai!

Konfigurasi pencegahan DoS/DDoS berfungsi dengan baik.

12. Kesimpulan Selesai

Dalam praktikum ini, Anda telah berhasil melakukan:

Best Practice Keamanan:
  • Layered Defense: Kombinasikan firewall, rate limiting, dan monitoring
  • Cloudflare / CDN: Gunakan layanan proxy untuk menyaring traffic
  • Load Balancer: Distribusikan traffic ke beberapa server
  • Monitoring: Pantau traffic secara rutin
  • Update RouterOS: Selalu gunakan versi terbaru
  • Incident Response: Siapkan prosedur penanganan serangan