Cara Efektif Blokir Serangan Bots dan Web Vulnerability Scanner

Cara Efektif Blokir Serangan Bots dan Web Vulnerability Scanner

Pernah nggak sih kalian iseng cek log server, terus bukannya nemu traffic visitor beneran, malah isinya penuh log serangan bot atau vulnerability scanner? Jujur, sebagai pengelola beberapa web server, rutinitas cek log itu kadang bikin capek dan elus dada. Tiap hari, bahkan tiap detik, VPS atau server nggak pernah sepi dari “tamu tak diundang”.

Mulai dari vulnerability scanning yang nyari celah keamanan, upaya brute-force login, sampai serangan bot random yang entah maunya apa. Dan masalahnya adalah, serangan ini berlangsung 24 jam non-stop.

Dulu, saya sempat coba gaya “sysadmin yang rajin”. Ada IP aneh, blokir manual. Ada log mencurigakan, ban manual. Tapi lama-lama sadar juga, ini kayak main whack-a-mole. Kita blokir satu IP, muncul seribu IP lain yang berbeda. Mustahil untuk mitigasi serangan kayak gini secara manual, apalagi kalau serangannya datang dari ribuan host yang sudah compromised (botnet).

Karena capek dan server juga mulai “ngos-ngosan” ngeladenin request sampah, akhirnya saya mutusin buat bikin sistem pertahanan sendiri. Idenya sederhana yaitu sourcing alias mengumpulkan daftar IP jahat dari seluruh penjuru internet, jadikan satu IPv4 list yang optimized, dan implementasikan ke dalam firewall. Sehingga serangan-serangan bot yang di otomatisasi dapat di stop sebelum masuk ke dalam server.

Saya mulai meramu custom IPv4 blocklist. Saya nggak mau cuma ambil dari satu sumber, karena datanya pasti kurang lengkap. Akhirnya, saya mengoptimasi dan menggabungkan data dari berbagai sumber threat intelligence yang kredibel.

  • Tor Exit Nodes: check.torproject.org
  • Bruteforce Blocker: danger.rulez.sk
  • CINS Score Badguys: cinsscore.com
  • Blocklist.de: Kumpulan orang-orang kumpulin fail2ban report
  • GreenSnow: Agregator serangan spam/brute force
  • FireHOL Level 3 & 4: Daftar IPv4 dengan reputasi buruk/cybercrime. Saya tidak memasukkan Level 1 karena ada Spamhaus DROP yang memblokir ISP lokal (contohnya MyRepublic, Faznet, dsb. hehehe)
  • StopForumSpam: Spesialisasi block bot spammer
  • AbuseIPDB: Salah satu database IP abuse terbesar (confident 100%, maklum pake source gratisan)
  • Aetherinox CSF Blocklist: High-risk IP list yang dikompilasi developer penerus CSF

Dengan alasan keamanan tambahan saya juga memblokir IPv4 dari AS number:

  • AS14061 (milik DigitalOcean, alasan saya blokir adalah mayoritas IP milik DigitalOcean yang masuk ke VPS/server yang saya kelola merupakan compromised IP)
  • AS55701 (ini AS milik orang lokal, yaitu PT. Usaha Adisanggoro. Namun mohon maaf harus saya blokir, karena tingkat abuse dari AS number ini luar biasa)

Bagaimana hasil dari implementasi blocking dengan IPv4 list ini? Jawabannya adalah efisien banget. Setelah blocklist gabungan ini saya terapkan di server, hasilnya di luar ekspektasi.

Secara statistik kasar, blocklist ini berhasil memitigasi sekitar ~90% serangan yang biasanya masuk. Server yang tadinya sibuk/high load meng-handle request nggak jelas, sekarang jadi jauh lebih anteng. Load average terjaga stabil, resource lega, dan yang paling penting web jadi lebih aman dari upaya penyusupan masif.

Saya nggak bilang bisa memitigasi 100%, karena masih ada saja IP baru yang terinfeksi/compromised kemudian melakukan serangan dan masih bisa lolos blocking. Tapi setidaknya sebagian besar serangan bisa dimitigasi.

Saya mau pakai juga, boleh?

Buat teman-teman sesama sysadmin atau yang punya VPS sendiri dan merasa senasib sepenanggungan, saya open public untuk blocklist yang sudah saya kompilasi ini. IPv4 blocklist ini di perbarui setiap 4 jam sekali (jadi ada 4 kali update setiap hari)

Link ada di sini: https://fazar.net/blocklist/ipv4_blacklist.txt

Catatan:

Isi blocklist ini sangat banyak! Sangat TIDAK DISARANKAN untuk membacanya baris per baris dengan mata telanjang, apalagi memasukannya satu per satu ke rule firewall. Karena saya jamin, kepala Anda akan puyeng!

Format ini paling ideal kalau digunakan sebagai ipset pada iptables atau nftables. Dengan metode ipset, firewall bisa memproses ribuan blokir IP ini dengan sangat cepat tanpa membebani kinerja server.

Contoh implementasi menggunakan iptables dan ipset

  1. Install terlebih dahulu ipset (seharusnya sudah ada di distro modern)
    sudo apt install ipset -y
    
    # atau yum install ipset, dsb
  2. Buat ipset baru dengan format hash:net
    sudo ipset create blacklist hash:net
  3. Import daftar IPv4 dari blocklist di atas
    # Download file
    
    wget -O /tmp/ipv4_blacklist.txt https://fazar.net/blocklist/ipv4_blacklist.txt
    
    # Import ke ipset (looping baris per baris)
    # Opsi -exist mencegah error jika IP sudah ada di list
    while read line; do sudo ipset add blacklist $line -exist; done < /tmp/ipv4_blacklist.txt
  4.  Blokir IP address yang match dengan rules dalam ipset
    # Drop koneksi yang berasal dari IP di dalam set 'blacklist'
    
    sudo iptables -I INPUT -m set --match-set blacklist src -j DROP
  5. Beres!

Sebaiknya buat cronjob sederhana untuk mengupdate list ini secara berkala (misalnya setiap malam), agar database IP jahat di server selalu up-to-date.

Closing

Semoga bermanfaat dan server kalian makin adem ayem! Kalau ada yang punya sumber blocklist bagus lainnya, boleh share di komentar ya. Harapannya posting singkat kali ini bisa membantu kawan-kawan terutama yang servernya sering bobol dan web nya berubah jadi sarang judi online.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *