Kembali ke blog
Januari 19, 2026Panduan

Cara Melindungi VPS Anda dari Serangan DDoS: Panduan Praktis

Panduan komprehensif tentang cara melindungi VPS Anda dari serangan DDoS menggunakan firewall, pembatasan kecepatan, dan metode terbukti lainnya.

Cara Melindungi VPS Anda dari Serangan DDoS: Panduan Praktis

Serangan DDoS (Distributed Denial of Service) dapat membuat server Anda offline dalam hitungan menit, menyebabkan kehilangan pendapatan, ketidakpuasan pelanggan, dan kerusakan reputasi. Pada tahun 2026, serangan semacam itu menjadi lebih canggih dan mudah diakses. Untungnya, metode perlindungan modern juga telah berevolusi. Panduan ini akan menunjukkan cara melindungi VPS Hiddence Anda dari jenis serangan DDoS yang paling umum.

Apa itu Serangan DDoS?

Serangan DDoS terjadi ketika beberapa komputer (botnet) secara bersamaan mengirim permintaan ke server Anda, membanjiri sumber dayanya dan membuatnya tidak tersedia untuk pengguna yang sah.

Jenis Utama Serangan DDoS

  • Serangan Volumetrik (L3/L4): Banjir UDP, ICMP, banjir SYN — membanjiri bandwidth jaringan
  • Serangan Lapisan Aplikasi (L7): Banjir HTTP, Slowloris — menargetkan lapisan aplikasi
  • Serangan Protokol: Mengeksploitasi kerentanan dalam protokol jaringan

Perlindungan Hiddence Bawaan

Semua VPS Hiddence mencakup perlindungan DDoS Lapisan 3-4 dasar (tingkat jaringan). Ini secara otomatis memfilter sebagian besar serangan volumetrik. Namun, serangan Lapisan 7 (aplikasi) memerlukan konfigurasi tambahan.

Langkah 1: Pengaturan Firewall

Garis pertahanan pertama adalah konfigurasi firewall yang tepat. UFW (Uncomplicated Firewall) adalah alat yang sederhana dan efektif untuk Ubuntu/Debian.

bash
# Instal UFW
sudo apt update && sudo apt install ufw -y

# Izinkan SSH (PENTING! Lakukan ini sebelum mengaktifkan UFW)
sudo ufw allow 22/tcp

# Izinkan HTTP dan HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Aktifkan UFW
sudo ufw enable

# Periksa status
sudo ufw status verbose

# Aturan perlindungan lanjutan:
# Batasi koneksi SSH (perlindungan brute force)
sudo ufw limit 22/tcp

# Blokir banjir ping ICMP
sudo nano /etc/ufw/before.rules
# Tambahkan setelah *filter:
-A ufw-before-input -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

# Perlindungan terhadap banjir SYN
sudo nano /etc/sysctl.conf
# Tambahkan:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Terapkan perubahan
sudo sysctl -p

Langkah 2: Instal Fail2Ban

Fail2Ban secara otomatis memblokir alamat IP yang menunjukkan aktivitas mencurigakan (beberapa upaya login yang gagal, pemindaian port).

bash
# Instal
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# Konfigurasi untuk perlindungan SSH dan HTTP
# Buat konfigurasi lokal
sudo nano /etc/fail2ban/jail.local

# Tambahkan:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
banaction = ufw

[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log

[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log

[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/error.log

# Mulai ulang Fail2Ban
sudo systemctl restart fail2ban

# Periksa status
sudo fail2ban-client status

Langkah 3: Perlindungan Nginx

Jika Anda menggunakan Nginx, konfigurasikan pembatasan kecepatan untuk melindungi dari serangan banjir HTTP.

bash
sudo nano /etc/nginx/nginx.conf

# Tambahkan ke blok http:
http {
    # Batas permintaan: 10 permintaan per detik per IP
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    
    # Batas koneksi
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    
    # Perlindungan Slowloris
    client_body_timeout 10s;
    client_header_timeout 10s;
    keepalive_timeout 5s 5s;
    send_timeout 10s;
    
    # Sisa konfigurasi...
}

# Di blok server tambahkan:
server {
    location / {
        # Terapkan batas permintaan
        limit_req zone=one burst=20 nodelay;
        
        # Batas koneksi: maks 10 per IP
        limit_conn addr 10;
        
        # Konfigurasi Anda...
    }
}

# Uji konfigurasi dan muat ulang
sudo nginx -t
sudo systemctl reload nginx

Langkah 4: Gunakan CDN

Untuk perlindungan maksimum, gunakan layanan CDN seperti Cloudflare. CDN bertindak sebagai proxy, menyembunyikan IP nyata server Anda dan menyerap sebagian besar serangan DDoS. Manfaat: sembunyikan IP nyata, penyaringan lalu lintas berbahaya otomatis, distribusi beban, SSL/TLS gratis, WAF untuk perlindungan L7.

  • Daftar di cloudflare.com (paket gratis tersedia)
  • Tambahkan domain Anda dan ubah catatan NS di registrar Anda
  • Aktifkan mode 'Proxy' (awan oranye) untuk catatan DNS
  • Setel mode SSL ke 'Penuh (ketat)' di bagian SSL/TLS
  • Aktifkan 'Perlindungan DDoS' dan 'Mode Pertarungan Bot' di pengaturan keamanan

Langkah 5: Pemantauan

Pemantauan rutin membantu mendeteksi serangan lebih awal.

bash
# Pantau koneksi aktif
watch -n 1 'ss -s'

# Lihat IP teratas berdasarkan jumlah koneksi
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

# Lihat log secara waktu nyata
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f

# Periksa IP yang diblokir di Fail2Ban
sudo fail2ban-client status sshd

Tindakan Darurat

Jika serangan sudah berlangsung, ambil tindakan berikut:

  • Identifikasi sumber: Gunakan 'netstat' atau log untuk mengidentifikasi IP yang menyerang
  • Blokir sementara: sudo ufw insert 1 deny from IP_MENYERANG
  • Blokir seluruh subnet: sudo ufw deny from 123.45.0.0/16
  • Batasi batas kecepatan: Sementara turunkan batas Nginx ke 1-5 req/s
  • Hubungi dukungan: Hubungi dukungan Hiddence untuk aktivasi perlindungan lanjutan
  • Aktifkan 'Mode Di Bawah Serangan' di Cloudflare (jika menggunakan)

Praktik Terbaik

  • Jangan pernah memublikasikan IP nyata server Anda jika menggunakan CDN
  • Perbarui sistem secara teratur: sudo apt update && sudo apt upgrade
  • Gunakan kunci SSH daripada kata sandi untuk akses server
  • Ubah port SSH default (22) menjadi non-standar
  • Atur pencadangan otomatis untuk pemulihan cepat
  • Gunakan IP terpisah untuk layanan kritis
  • Aktifkan logging dan periksa log secara teratur untuk aktivitas mencurigakan
  • Pertimbangkan menggunakan pemblokiran geografis jika layanan Anda tidak global