Membatasi jumlah koneksi dengan iptables

Ada salah satu website milik teman saya memiliki log akses yang cukup unik. Yakni berusaha membuka halaman yang tidak ada dan dari format URLnya tampaknya acak. Ya memang langsung 404, tapi kalau datangnya banyak ya KO juga VPSnya karena tetap akan diproses requestnya. Kalau sudah mengalami hal seperti (atau bahkan belum) saran saya lakukan rate limiting supaya usaha jahat tidak kebablasan.

Karena hampir pada setiap server Linux defaultnya pakai iptables (lainnya: firewalld dan ufw) maka saya jelaskan pakai peraturan aplikasi firewall ini. Dan aslinya mudah sekali, tinggal anda eksekusi perintah seperti ini:

iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 100 -j DROP
iptables -A INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 100 -j DROP

Maksudnya adalah setiap sambungan masuk dengan protokol TCP, pada port 80 (HTTP) dan 443 (HTTPS), apabila dalam 5 menit ada lebih dari 100 jumlahnya akan langsung diblokir. Anda bisa dan disarankan memodifikasi parameternya agar cocok dengan kondisi anda. Ini cuma referensi awal saja.

3 Comments

  1. klo saya ingin membatasi jumlah koneksi website saya itu cuman 1000 pengakses permenit bagai mana mas..? soalnya pernah lebih dari 1500 pengkases permenit website saya langsung lambat karena RAM langsung sekarat.. mohon pencerahannya

  2. Mohon pencerahannya saya ada kondisi dimana salahsatu db mysql saya diakses secara remote dari aplikasi. bagiaman setingan di IP tablenya untuk membatasi hanya ip tertentu saja yg bisa melakukan remote ke database saya? atau adakah cara lain agar database mysql saya aman. Maaf newbi banget… terimakasih

Tinggalkan Balasan ke Yusup Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *