Daftar Isi
1. Pengenalan Serangan DoS (Denial of Service)
Serangan Denial of Service (DoS) merupakan salah satu jenis serangan siber yang bertujuan untuk membuat sebuah website, jaringan, atau layanan online menjadi tidak dapat diakses dengan cara membanjiri sumber dayanya dengan trafik yang berlebihan.
Karakteristik Serangan DoS:
- Tujuan Utama: Mengganggu fungsi normal dari target dengan membebani sumber dayanya
- Pelaku: Dapat dilakukan oleh satu penyerang atau kelompok penyerang
- Dampak: Sistem menjadi crash atau tidak dapat diakses oleh pengguna yang sah
- Metode: Membanjiri target dengan volume permintaan yang sangat besar
Cara Kerja Serangan DoS
Serangan DoS bekerja dengan cara membanjiri target dengan volume permintaan yang sangat besar, sehingga secara efektif membebani sumber daya sistem dan menyebabkannya crash atau menjadi tidak dapat diakses. Penyerang dapat melakukan serangan menggunakan satu perangkat atau beberapa perangkat sekaligus.
Yang membuat serangan ini berbahaya adalah trafik dapat dihasilkan dari berbagai sumber, sehingga sangat sulit bagi target untuk mempertahankan diri. Ketika serangan datang dari banyak perangkat sekaligus, ini disebut sebagai serangan DDoS (Distributed Denial of Service).
2. Apa Itu ICMP Flood Attack (Ping Flood)?
ICMP Flood Attack, yang juga dikenal sebagai Ping Flood, adalah jenis serangan denial-of-service di mana penyerang mencoba untuk membanjiri perangkat target dengan paket ICMP echo-request (ping), menyebabkan target menjadi tidak dapat diakses oleh trafik normal.
Definisi ICMP (Internet Control Message Protocol)
ICMP adalah protokol jaringan yang digunakan oleh perangkat jaringan untuk mengirim pesan error dan informasi operasional. Perintah "ping" menggunakan protokol ICMP untuk menguji konektivitas jaringan.
Mekanisme Serangan ICMP Flood
- Pengiriman Paket Massal: Penyerang mengirimkan paket ICMP echo-request dalam jumlah sangat besar ke target
- Konsumsi Bandwidth: Paket-paket ini mengkonsumsi bandwidth jaringan target
- Overload Sistem: Server target kewalahan memproses dan merespon semua permintaan
- Layanan Terganggu: Pengguna yang sah tidak dapat mengakses layanan karena sumber daya habis
Ketika trafik serangan berasal dari beberapa perangkat sekaligus, serangan ini menjadi DDoS (Distributed Denial-of-Service attack). DDoS jauh lebih berbahaya karena lebih sulit untuk diblokir dan dampaknya lebih besar.
3. Memahami Smurf Attack
Smurf Attack adalah jenis serangan DDoS yang memanfaatkan alamat broadcast Internet Protocol (IP) untuk menyebarkan sejumlah besar permintaan ke alamat IP target dari berbagai sumber.
Cara Kerja Smurf Attack
Penyerang mengirimkan sejumlah besar paket ICMP echo request (ping) ke alamat broadcast dari sebuah jaringan, dengan membuat paket tersebut seolah-olah berasal dari alamat IP target (IP spoofing).
Tahapan Smurf Attack:
- IP Spoofing: Penyerang memalsukan alamat IP-nya menjadi alamat IP korban
- Broadcast ke Jaringan: Mengirim paket ICMP ke alamat broadcast jaringan
- Amplifikasi: Semua perangkat di jaringan tersebut menerima permintaan broadcast
- Serangan Kolektif: Semua perangkat merespon langsung ke alamat IP korban
- Overload: Korban dibanjiri dengan respon dari banyak perangkat sekaligus
Konsep Broadcasting dalam Jaringan
Broadcasting adalah proses transmisi data melalui jaringan ke semua perangkat sekaligus. Biasanya, alamat broadcast selalu merupakan alamat terakhir dalam subnet jaringan.
Smurf attack sangat berbahaya karena memanfaatkan efek amplifikasi. Satu paket yang dikirim penyerang dapat menghasilkan ratusan atau ribuan paket balasan yang menghantam korban, tergantung jumlah perangkat dalam jaringan broadcast.
4. Pengenalan Iptables
Iptables adalah tool yang digunakan untuk mengatur, memelihara, dan memeriksa tabel aturan packet filter IP di sistem operasi Linux. Iptables merupakan firewall bawaan Linux yang sangat powerful dan fleksibel.
Konsep Dasar Iptables
Semua paket yang diperiksa oleh iptables melewati serangkaian tabel bawaan (queues) untuk diproses. Setiap tabel ini didedikasikan untuk jenis aktivitas paket tertentu dan dikontrol oleh chain transformasi/filtering paket yang terkait.
Tabel dan Chain dalam Iptables
Filter Table (Tabel Penyaringan)
Tabel filter memiliki tiga chain bawaan untuk menempatkan aturan kebijakan firewall:
| Chain | Fungsi |
|---|---|
| FORWARD | Menyaring paket yang ditujukan ke server yang dilindungi oleh firewall, atau paket yang ditujukan ke server yang dapat diakses melalui NIC lain di firewall |
| INPUT | Menyaring paket yang ditujukan untuk firewall itu sendiri |
| OUTPUT | Menyaring paket yang berasal dari firewall |
Target Iptables yang Umum Digunakan
| Target | Deskripsi | Opsi Umum |
|---|---|---|
| ACCEPT |
• Iptables menghentikan pemrosesan lebih lanjut • Paket diserahkan ke aplikasi akhir atau sistem operasi untuk diproses |
N/A |
| DROP |
• Iptables menghentikan pemrosesan lebih lanjut • Paket diblokir |
N/A |
| LOG |
• Informasi paket dikirim ke syslog daemon untuk logging • Iptables melanjutkan pemrosesan dengan aturan berikutnya • Tidak bisa log dan drop secara bersamaan |
--log-prefix "string" (Menambahkan prefix pada log message) |
Perintah Dasar Iptables
| Perintah | Fungsi |
|---|---|
-A --append |
Menambahkan aturan ke chain (di akhir) |
-D --delete |
Menghapus aturan tertentu dari chain |
-F --flush |
Menghapus semua aturan |
-I --insert |
Menambahkan aturan ke chain pada posisi tertentu |
-L --list |
Menampilkan daftar aturan |
Switch dan Opsi Iptables
| Switch | Deskripsi |
|---|---|
-t <table> |
Jika tidak menentukan tabel, maka tabel filter diasumsikan. Tabel yang tersedia: filter, nat, mangle |
-j <target> |
Melompat ke target chain tertentu ketika paket cocok dengan aturan saat ini |
-A |
Menambahkan aturan ke akhir chain |
-F |
Flush - Menghapus semua aturan dalam tabel yang dipilih |
-p <protocol-type> |
Mencocokkan protokol. Tipe termasuk: icmp, tcp, udp, dan all |
-s <ip-address> |
Mencocokkan alamat IP sumber |
-d <ip-address> |
Mencocokkan alamat IP tujuan |
-i <interface-name> |
Mencocokkan interface "input" tempat paket masuk |
-o <interface-name> |
Mencocokkan interface "output" tempat paket keluar |
Contoh Penggunaan Iptables
iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT
Perintah di atas mengkonfigurasi iptables untuk menerima paket TCP yang masuk pada interface eth0 dari alamat IP mana pun (0/0) yang ditujukan untuk alamat IP firewall 192.168.1.1.
Catatan: Representasi alamat IP 0/0 berarti "semua alamat IP" atau "any".
Subnet Notation: Alamat sumber 192.168.1.0/24 berarti rentang IP dari 192.168.1.1 sampai 192.168.1.254.
Extended Packet Matching dengan Modul
Iptables dapat menggunakan modul extended packet matching yang dimuat dengan dua cara:
- Implicitly: Ketika
-patau--protocoldispesifikasikan - Explicitly: Dengan opsi
-matau--matchdiikuti nama modul
Contoh Penggunaan Modul Limit
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -i eth0 -j ACCEPT
Fitur limit dalam iptables menentukan jumlah rata-rata maksimum kecocokan yang diizinkan per detik. Anda dapat menentukan interval waktu dalam format:
- /second atau /s
- /minute atau /m
- /hour atau /h
- /day atau /d
Dalam contoh di atas, permintaan ICMP echo dibatasi tidak lebih dari satu per detik.
5. Implementasi Pertahanan dengan Iptables
Strategi Pertahanan terhadap ICMP Flood
1. Memblokir ICMP dari Alamat IP Tertentu
Jika Anda mengetahui alamat IP penyerang, Anda dapat memblokir semua paket ICMP dari IP tersebut:
iptables -A INPUT -p icmp -i enp0s9 -s 192.168.1.23 -j DROP
Penjelasan:
-A INPUT: Menambahkan aturan ke chain INPUT-p icmp: Untuk protokol ICMP-i enp0s9: Pada interface enp0s9-s 192.168.1.23: Dari alamat IP sumber 192.168.1.23-j DROP: Action: DROP (buang paket)
2. Rate Limiting untuk ICMP
Metode yang lebih canggih adalah membatasi rate ICMP request yang diizinkan:
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -i eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Aturan di atas akan:
- Mengizinkan maksimal 1 ICMP echo request per detik
- Membuang semua ICMP echo request yang melebihi batas tersebut
Strategi Pertahanan terhadap Smurf Attack
1. Memblokir Paket dari Alamat Broadcast
iptables -A INPUT -p icmp -i enp0s9 -s 192.168.1.255 -j DROP
2. Menonaktifkan IP Directed Broadcasts
Di level sistem, Anda juga perlu menonaktifkan directed broadcasts:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
Untuk membuat perubahan permanen, tambahkan ke /etc/sysctl.conf:
net.ipv4.icmp_echo_ignore_broadcasts = 1
3. Kombinasi Aturan Iptables Komprehensif
# Flush aturan yang ada
iptables -F
# Izinkan loopback
iptables -A INPUT -i lo -j ACCEPT
# Izinkan established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Rate limit ICMP
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Blokir broadcast
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
# Log dan drop sisanya
iptables -A INPUT -j LOG --log-prefix "IPTABLES DROP: "
iptables -A INPUT -j DROP
✅ Best Practices untuk Iptables:
- Selalu uji aturan di lingkungan lab sebelum production
- Gunakan rate limiting untuk layanan yang perlu publik
- Aktifkan logging untuk monitoring dan analisis
- Dokumentasikan setiap aturan yang Anda buat
- Backup konfigurasi iptables secara berkala
- Gunakan
iptables-savedaniptables-restoreuntuk manajemen
Menyimpan dan Memulihkan Aturan Iptables
Menyimpan Aturan:
iptables-save > /etc/iptables/rules.v4
Memulihkan Aturan:
iptables-restore < /etc/iptables/rules.v4
Membuat Aturan Permanen (Ubuntu/Debian):
apt-get install iptables-persistent
netfilter-persistent save
6. Praktikum Lab: Simulasi Serangan dan Pertahanan
Praktikum ini hanya untuk tujuan edukasi di lingkungan lab yang terkontrol. Melakukan serangan DoS/DDoS terhadap sistem yang bukan milik Anda adalah ILEGAL dan dapat berakibat tindakan hukum. Gunakan hanya untuk pembelajaran di jaringan pribadi Anda.
Persiapan Lingkungan Lab
Topologi Jaringan:
- Server Target: Linux dengan IP 192.168.43.20
- Attacker Machine: Linux dengan IP 192.168.43.39
- Koneksi: Menggunakan mobile hotspot atau tethering
Instalasi Tools yang Diperlukan
1. Install Hping3 (Tool untuk Simulasi Serangan)
sudo apt-get install hping3
2. Install IPTraf-NG (Monitoring Trafik)
sudo apt install traceroute
sudo apt install iptraf-ng
3. Install Nload (Monitor Bandwidth)
sudo apt install nload
Konfigurasi Jaringan
Langkah 1: Setup VirtualBox Network
- Matikan Linux VM Anda
- Buka Settings → Network
- Pilih Adapter 2
- Enable Network Adapter
- Attached to: Bridged Adapter
- Name: Pilih adapter wireless Anda
Langkah 2: Cek Gateway
ip route
Contoh output:
default via 192.168.1.1 dev enp0s9 proto dhcp metric 102
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
192.168.1.0/24 dev enp0s9 proto kernel scope link src 192.168.1.24
Dari output di atas, gateway adalah 192.168.1.1
Langkah 3: Test Koneksi
Ping ke gateway:
ping 192.168.1.1
Ping ke komputer teman:
ping 192.168.1.24
Monitoring Sebelum Serangan
Jalankan IPTraf-NG:
sudo iptraf-ng
Pilih interface yang terhubung ke bridge (misalnya enp0s9)
Jalankan Nload (di terminal terpisah):
nload -a 300
Simulasi Serangan ICMP Flood
Dari Komputer Attacker:
Ping Normal (untuk perbandingan):
hping3 --icmp 192.168.43.20
ICMP Flood Attack:
sudo hping3 --icmp --flood 192.168.43.20
- Jumlah paket di IPTraf-NG
- Penggunaan bandwidth di Nload
- CPU usage di server target
Implementasi Pertahanan
Di Server Target, Jalankan:
# Blokir ICMP dari IP penyerang
sudo iptables -A INPUT -p icmp -i enp0s9 -s 192.168.43.39 -j DROP
# Cek aturan yang aktif
sudo iptables -L -n -v
Setelah aturan diterapkan, serangan akan diblokir dan Anda akan melihat:
- Penurunan trafik di IPTraf-NG
- Penurunan bandwidth usage di Nload
- Server kembali normal dan responsif
Simulasi Smurf Attack
Dari Komputer Attacker:
# Smurf attack dengan IP spoofing
sudo hping3 --icmp --flood 192.168.43.20 -a 192.168.43.255
Di sini, -a 192.168.43.255 melakukan spoofing menggunakan alamat broadcast.
Pertahanan terhadap Smurf Attack:
# Blokir paket dari alamat broadcast
sudo iptables -A INPUT -p icmp -i enp0s9 -s 192.168.43.255 -j DROP
# Blokir semua broadcast packets
sudo iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
# Ignore ICMP broadcasts di level sistem
echo 1 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
Eksperimen Lanjutan
1. Ping dengan Ukuran Paket Custom:
# Ping dengan paket 1000 bytes
sudo hping3 --icmp -d 1000 192.168.43.20
# Flood dengan paket besar
sudo hping3 --icmp -d 1000 --flood 192.168.43.20
2. Rate Limiting Test:
# Di server, terapkan rate limiting
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Dari attacker, test dengan ping normal
ping 192.168.43.20
Anda akan melihat bahwa hanya 5 ping per detik yang berhasil, sisanya akan di-drop.
Analisis Hasil
Perbandingan yang Harus Diamati:
| Kondisi | Bandwidth Usage | Packet Count | CPU Usage | Responsiveness |
|---|---|---|---|---|
| Normal (Ping Biasa) | ~1-2 Kbit/s | ~1-2 pps | < 5% | Sangat Responsif |
| Under Attack (Flood) | > 10 Mbit/s | > 10,000 pps | > 80% | Lambat/Hang |
| Protected (Iptables) | ~1-2 Kbit/s | ~1-2 pps | < 10% | Responsif |
Troubleshooting Umum
Masalah: Aturan Iptables Tidak Bekerja
Solusi:
- Cek urutan aturan dengan
iptables -L -n --line-numbers - Pastikan aturan tidak bertentangan
- Cek interface yang benar dengan
ip addr
Masalah: Tidak Bisa Ping Sama Sekali
Solusi:
- Cek apakah ada aturan yang terlalu ketat
- Flush semua aturan:
sudo iptables -F - Mulai ulang dengan aturan yang lebih permisif
Masalah: Hping3 Memerlukan Root Access
Solusi:
- Selalu gunakan
sudosaat menjalankan hping3 - Atau set capabilities:
sudo setcap cap_net_raw+ep /usr/sbin/hping3
7. Kesimpulan dan Best Practices
Ringkasan Poin Penting
Tentang Serangan ICMP:
- ICMP Flood: Serangan DoS yang membanjiri target dengan ICMP echo requests
- Smurf Attack: Serangan DDoS yang memanfaatkan broadcast dan IP spoofing
- Dampak: Konsumsi bandwidth, overload CPU, layanan tidak dapat diakses
- Deteksi: Monitor bandwidth abnormal, packet count tinggi, CPU spike
Tentang Pertahanan dengan Iptables:
- Filtering: Iptables dapat memfilter paket berdasarkan IP, protokol, interface
- Rate Limiting: Membatasi jumlah paket per satuan waktu
- Blocking: Memblokir paket dari sumber tertentu atau tipe tertentu
- Logging: Mencatat aktivitas mencurigakan untuk analisis
Best Practices Keamanan Jaringan
1. Pertahanan Berlapis (Defense in Depth)
- Jangan hanya mengandalkan satu metode pertahanan
- Kombinasikan firewall, IDS/IPS, rate limiting, dan monitoring
- Implementasikan security di berbagai layer (network, host, application)
2. Monitoring dan Logging
- Aktifkan logging di iptables untuk semua traffic mencurigakan
- Gunakan tools monitoring seperti:
- iptraf-ng untuk real-time traffic analysis
- nload untuk bandwidth monitoring
- fail2ban untuk automatic blocking
- SIEM untuk centralized logging
- Review log secara berkala
3. Rate Limiting dan Throttling
- Terapkan rate limiting untuk semua protokol yang menghadap public
- Gunakan connection tracking untuk mencegah connection flooding
- Implementasikan SYN cookies untuk melawan SYN flood
4. Disable Unnecessary Services
- Jika server tidak memerlukan ICMP, pertimbangkan untuk disable sepenuhnya
- Nonaktifkan IP directed broadcasts
- Matikan layanan yang tidak diperlukan
5. Regular Updates dan Patch Management
- Update sistem operasi secara berkala
- Patch vulnerability yang diketahui
- Subscribe ke security mailing list
6. Network Segmentation
- Pisahkan jaringan menjadi beberapa segment
- Gunakan VLAN untuk isolasi
- Implementasikan DMZ untuk server public-facing
Perintah Iptables Penting untuk Disimpan
# Backup konfigurasi iptables
sudo iptables-save > /etc/iptables/backup-$(date +%Y%m%d).rules
# Restore konfigurasi
sudo iptables-restore < /etc/iptables/backup-20241116.rules
# Lihat aturan dengan line numbers
sudo iptables -L -n -v --line-numbers
# Hapus aturan tertentu (contoh: aturan nomor 3 di chain INPUT)
sudo iptables -D INPUT 3
# Flush semua aturan (HATI-HATI!)
sudo iptables -F
# Set default policy
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# Basic protection set
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
sudo iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
Sumber Daya Tambahan
Dokumentasi dan Referensi:
- Hping3 Manual:
man hping3atau https://linux.die.net/man/8/hping3 - Iptables Manual:
man iptables - Netfilter Documentation: https://www.netfilter.org/
- Linux Security Guide: https://www.kernel.org/doc/html/latest/admin-guide/sysctl/net.html
🎓 Selamat Belajar dan Tetap Etis!
Gunakan pengetahuan ini untuk melindungi, bukan menyerang. Cybersecurity yang bertanggung jawab dimulai dari Anda.

Komentar
Posting Komentar