Pencegahan ICMP Flood - MikroTik

📌 Tujuan Praktikum

Setelah mengikuti praktikum ini, Anda diharapkan mampu:

  • Memahami apa itu ICMP Flood dan Ping of Death serta cara kerjanya
  • Memahami jenis-jenis serangan ICMP (Flood, Fragmentation, Smurf, Redirect)
  • Memahami dampak serangan ICMP pada keamanan jaringan
  • Mengkonfigurasi MikroTik RouterOS untuk mencegah ICMP Flood
  • Menerapkan firewall rules, ICMP rate limiting, dan stealth mode
1. Apa Itu ICMP Flood / Ping of Death? Penting

ICMP Flood adalah serangan DoS yang mengirimkan paket ICMP (ping) dalam jumlah besar ke target, menyebabkan bandwidth habis dan CPU server terbebani.

Ping of Death adalah serangan yang mengirimkan paket ICMP yang terlalu besar (melebihi 65535 bytes) yang menyebabkan sistem crash atau reboot.

Analogi Sederhana:

ICMP Flood seperti "ribuan orang memencet bel pintu Anda secara bersamaan". Anda tidak bisa mendengar apa pun, dan tidak bisa melakukan aktivitas lain karena harus terus merespons bel. Ping of Death seperti "satu orang yang memukul pintu dengan sangat keras hingga pintu rusak".

🔑 Cara Kerja ICMP Flood

  1. Penyerang mengidentifikasi target — IP server atau router
  2. Penyerang mengirim banyak paket ICMP — menggunakan tool seperti hping3, ping flood
  3. Target menerima terlalu banyak paket — bandwidth dan CPU habis
  4. Layanan menjadi tidak responsif — server tidak bisa melayani request lain
  5. Serangan Ping of Death — paket ICMP berukuran besar menyebabkan crash
⚠️ Penting:

ICMP Flood adalah salah satu serangan DoS tertua namun masih efektif. Banyak server masih rentan terhadap serangan ini jika tidak dilindungi dengan baik.

2. Jenis-jenis Serangan ICMP Metode

Berikut adalah jenis-jenis serangan ICMP yang paling umum:

ICMP Flood
Mengirim ping dalam jumlah besar secara terus-menerus.
Tool: ping flood, hping3
ICMP Fragmentation
Mengirim paket ICMP terfragmentasi yang tidak bisa dirakit.
Tool: fragrouter, hping3
Smurf Attack
Menggunakan IP broadcast dengan spoofing untuk amplifikasi.
Tool: smurf attack tools
ICMP Redirect
Memanipulasi tabel routing dengan ICMP redirect palsu.
Tool: ICMP redirect tools
💡 Tool ICMP Attack Populer:
  • hping3 — Custom packet generator untuk ICMP flood
  • ping flood — Ping -f untuk flood
  • fragrouter — Fragmentasi paket
  • Scapy — Python library untuk manipulasi ICMP
3. Dampak Serangan ICMP Berbahaya
☠️ Dampak Serangan ICMP pada Jaringan:
  • Bandwidth Habis: Jaringan dipenuhi oleh paket ICMP sampah
  • CPU Overload: CPU server sibuk memproses paket ICMP
  • Layanan Down: Server tidak bisa melayani request legitimate
  • System Crash: Ping of Death dapat membuat sistem reboot
  • Routing Manipulation: ICMP redirect dapat mengubah rute jaringan
  • Downtime: Server tidak dapat diakses oleh pengguna
📊 Statistik Serangan ICMP:
  • 30% serangan DoS menggunakan ICMP flood
  • Rata-rata 1.000.000 paket ICMP per detik pada serangan besar
  • Ping of Death pertama kali muncul pada tahun 1996
  • 2023 serangan ICMP terbesar mencapai 1.5 Tbps
4. Metode Pencegahan ICMP Flood Strategi

Berikut adalah metode yang dapat digunakan untuk mencegah ICMP Flood pada MikroTik:

🔑 Metode Pencegahan

1. Firewall Rules (ICMP Rate Limiting)
  • Batasi jumlah paket ICMP per detik dari satu IP
  • Gunakan connection-limit dan connection-rate
2. Stealth Mode (Nonaktifkan Ping)
  • Nonaktifkan respons ICMP echo-request
  • Gunakan /ip firewall filter untuk drop ICMP
3. ICMP Fragment Blocking
  • Blokir paket ICMP yang terfragmentasi
  • Gunakan tcp-flags atau ipv4-options
4. IP Blacklisting
  • Blokir IP yang melakukan flood
  • Gunakan /ip firewall address-list
5. Monitoring & Logging
  • Aktifkan logging untuk aktivitas ICMP mencurigakan
  • Monitor traffic ICMP secara rutin
5. Konfigurasi Dasar MikroTik Step 1

Sebelum menerapkan pencegahan ICMP Flood, 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. Limit ICMP Packet Step 2

Batasi jumlah paket ICMP yang dapat diterima dari satu IP per detik.

📝 6.1 ICMP Connection Limit

/ip firewall filter add chain=input protocol=icmp connection-limit=5,32 action=drop comment="ICMP Flood Limit"
📖 Penjelasan:
  • protocol=icmp → Hanya paket ICMP
  • connection-limit=5,32 → Maksimal 5 koneksi per IP (32 bit)
  • action=drop → Blokir jika melebihi batas

📝 6.2 ICMP Rate 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"
💡 Catatan: 100K = 100 kilobit per detik. Sesuaikan dengan kebutuhan jaringan Anda.

📝 6.3 Blokir ICMP Flood

/ip firewall filter add chain=input src-address-list=icmp_flood action=drop comment="Blokir ICMP Flood"
✅ ICMP Limit selesai!
7. Stealth Mode (Nonaktifkan Ping) Step 3

Menonaktifkan respons ICMP echo-request membuat perangkat tidak terlihat oleh scanner.

📝 7.1 Nonaktifkan ICMP Echo-Request

/ip firewall filter add chain=input protocol=icmp icmp-options=8:0 action=drop comment="Stealth: Drop Ping"
📖 Penjelasan:
  • icmp-options=8:0 → ICMP echo-request (ping)
  • action=drop → Tidak merespons ping

📝 7.2 Nonaktifkan Semua ICMP

/ip firewall filter add chain=input protocol=icmp action=drop comment="Stealth: Drop All ICMP"
⚠️ Peringatan: Menonaktifkan semua ICMP akan menghilangkan kemampuan troubleshooting (ping, traceroute). Gunakan dengan hati-hati.
✅ Stealth Mode selesai!
8. Blokir ICMP Fragmentation Step 4

Blokir paket ICMP yang terfragmentasi untuk mencegah Ping of Death.

📝 8.1 Blokir ICMP Fragmen

/ip firewall filter add chain=input protocol=icmp frag=yes action=drop comment="Block ICMP Fragments"
📖 Penjelasan:
  • frag=yes → Paket yang terfragmentasi
  • action=drop → Blokir paket fragmentasi

📝 8.2 Blokir ICMP Fragment dengan Sumber

/ip firewall filter add chain=input protocol=icmp frag=yes action=add-src-to-address-list address-list=icmp_frag address-list-timeout=10m comment="ICMP Fragment Detection"
/ip firewall filter add chain=input src-address-list=icmp_frag action=drop comment="Blokir ICMP Fragment"
✅ ICMP Fragmentation Block selesai!
9. Blokir ICMP Redirect Step 5

Blokir ICMP Redirect untuk mencegah manipulasi routing.

📝 9.1 Blokir ICMP Redirect

/ip firewall filter add chain=input protocol=icmp icmp-options=5:0 action=drop comment="Block ICMP Redirect"
📖 Penjelasan:
  • icmp-options=5:0 → ICMP redirect
  • action=drop → Blokir redirect
✅ ICMP Redirect Block selesai!
10. Konfigurasi Lengkap Final

Berikut adalah konfigurasi lengkap untuk pencegahan ICMP Flood pada MikroTik.

📝 Script Lengkap

# ============================================
# KONFIGURASI PENCEGAHAN ICMP FLOOD
# MIKROTIK ROUTEROS
# ============================================

# 1. BUAT ADDRESS LIST
/ip firewall address-list add list=icmp_flood
/ip firewall address-list add list=icmp_frag

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

# 3. ICMP FLOOD DETECTION
/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"

# 4. BLOKIR ICMP FLOOD
/ip firewall filter add chain=input src-address-list=icmp_flood action=drop comment="Blokir ICMP Flood"

# 5. STEALTH MODE - DROP PING
/ip firewall filter add chain=input protocol=icmp icmp-options=8:0 action=drop comment="Stealth: Drop Ping"

# 6. STEALTH MODE - DROP ALL ICMP (OPSIONAL)
/ip firewall filter add chain=input protocol=icmp action=drop comment="Stealth: Drop All ICMP"

# 7. BLOKIR ICMP FRAGMENT
/ip firewall filter add chain=input protocol=icmp frag=yes action=drop comment="Block ICMP Fragments"

# 8. BLOKIR ICMP REDIRECT
/ip firewall filter add chain=input protocol=icmp icmp-options=5:0 action=drop comment="Block ICMP Redirect"

# 9. LOGGING (OPSIONAL)
/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=icmp_frag action=log log-prefix="ICMP_FRAG:" comment="Log ICMP Fragment"
💡 Catatan: Sesuaikan nilai connection-limit, connection-rate, dan timeout dengan kebutuhan jaringan Anda.
✅ Konfigurasi lengkap selesai!

MikroTik Anda sekarang dilindungi dari ICMP Flood, Ping of Death, dan ICMP Fragmentasi.

11. Pengujian Step 6

Lakukan pengujian untuk memastikan konfigurasi berjalan dengan baik.

11.1 Cek Firewall Rules

/ip firewall filter print

11.2 Cek Address List

/ip firewall address-list print

11.3 Uji Ping dari Client

📝 Dari client, lakukan ping ke router:

ping 192.168.10.1
ping -c 10 192.168.10.1

Jika Stealth Mode aktif, ping akan timeout (tidak ada respons).

11.4 Simulasi ICMP Flood (Testing)

📝 Uji coba dengan hping3 (dari client Linux):

# ICMP Flood test
hping3 -1 --flood 192.168.10.1

# ICMP dengan fragmentasi
hping3 -1 --flood --frag 192.168.10.1

# ICMP dengan ukuran besar (Ping of Death)
hping3 -1 -d 65535 192.168.10.1

Jika konfigurasi berhasil, flood akan terdeteksi dan IP client masuk daftar blacklist.

⚠️ Peringatan:

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

✅ Pengujian selesai!

Konfigurasi pencegahan ICMP Flood berfungsi dengan baik.

12. Kesimpulan Selesai

Dalam praktikum ini, Anda telah berhasil melakukan:

Best Practice Keamanan ICMP:
  • Stealth Mode: Nonaktifkan ping untuk menyembunyikan perangkat
  • Rate Limiting: Batasi jumlah paket ICMP per detik
  • Fragment Blocking: Blokir paket ICMP yang terfragmentasi
  • Redirect Blocking: Blokir ICMP redirect
  • Monitoring: Pantau traffic ICMP secara rutin
  • Kombinasikan: Gunakan bersama dengan perlindungan DoS lainnya