Saya hanya ingin mengizinkan satu IP untuk menggunakan hingga, katakanlah 1GB, dari lalu lintas per hari, dan jika batas itu terlampaui, semua permintaan dari IP itu kemudian dibatalkan hingga hari berikutnya. Namun, solusi yang lebih sederhana di mana koneksi terputus setelah sejumlah permintaan akan cukup.
Apakah sudah ada semacam modul yang bisa melakukan ini? Atau mungkin saya bisa mencapai ini melalui sesuatu seperti iptables?
Terima kasih
Jawaban:
Jika Anda ingin solusi Apache murni bw_mod untuk Apache 2.0 dan mod_bandwidth untuk Apache 1.3. Mereka dapat membatasi bandwidth server Anda untuk membatasi penggunaan bandwidth.
Ada juga mod_limitipconn, yang mencegah satu pengguna membuat banyak koneksi ke server Anda. mod_cband adalah pilihan lain, tetapi saya belum pernah menggunakannya.
Jika Anda tidak ingin mengacaukan instalasi Apache Anda, Anda dapat meletakkan proxy squid di depan Apache. Ini memberi Anda lebih banyak kontrol juga atas pelambatan.
Namun, dalam kebanyakan kasus masalahnya adalah beberapa objek besar ketika Anda ingin membatasi bandwidth per IP, dan Anda ingin memberikan pesan kesalahan yang waras ketika pengguna menarik terlalu banyak data dan Anda memblokirnya. Dalam hal ini mungkin lebih mudah untuk menulis skrip PHP dan menyimpan informasi akses dalam tabel sementara dalam database.
sumber
Ini adalah solusi iptables saya untuk masalah seperti ini. Sesuaikan
--seconds
--hitcount
sesuai kebutuhan, juga tabel iptables.Dijelaskan:
iptables
periksa apakah IP sumber terdaftar pada file / proc / net / ipt_recent / ATACK selama 5 kali atau lebih dalam interval 600 detik dan apakah itu permintaan BARU. Jika ya, lakukan penolakan; lainiptables
periksa apakah permintaan ditujukan ke port 80. Jika demikian, cetak IP dan cap waktu ke / proc / net / ipt_recent / ATACK dan teruskan paket.Ini berfungsi dengan baik untuk kebutuhan saya.
sumber
Sudahkah Anda melihat alat seperti fail2ban? Jika mungkin sedikit berat bagi Anda, tetapi itu akan membiarkan Anda membatasi jumlah permintaan yang diberikan IP. Ini bekerja dengan melihat log, dan Anda menetapkan aturan untuk berapa banyak pelanggaran per waktu diperbolehkan, jadi bagi Anda itu mungkin permintaan per hari. Setelah mereka pergi itu dapat melakukan hal-hal seperti memblokirnya menggunakan ipchains.
Saya telah menggunakannya untuk memblokir serangan DDoS terhadap server email dengan sangat sukses. Ini dapat mengkonsumsi sejumlah besar daya prosesor.
sumber
coba
mod_dosevasive
ataumod_security
mod_dosevasive
dapat dikonfigurasikan untuk mencekal IP setelah nomor tertentu atau halaman meminta ke suatu situs dalam jangka waktu tertentu.sumber