Salah satu server LAMP saya baru-baru ini diturunkan oleh semacam bot skrip yang mencari eksploitasi. Dari kelihatannya, itu membuat begitu banyak permintaan per detik, yang membebani RAM di server dan membuat seluruh situs saya turun selama satu jam. Itu "serangan" semua berasal dari satu alamat IP.
Jadi bagaimana saya dapat secara otomatis dan sementara memblokir alamat IP yang membuat terlalu banyak hits di Server LAMP saya dalam waktu singkat? Apa alat terbaik untuk pekerjaan itu, dan haruskah saya menyelesaikan ini di tingkat Sistem Operasi atau melalui PHP?
Anda harus menghindari mencoba melakukan ini dengan PHP. Pada saat PHP terlibat, sudah terlambat - memori telah dialokasikan.
Anda bisa mencekal alamat IP di setiap lapisan, tetapi level terendah yang menggunakan sumber daya paling sedikit adalah rute yang ingin Anda ambil. Ini biasanya firewall. Paling tidak, iptables (linux firewall) adalah apa yang ingin Anda gunakan. Ada alat yang disebutkan orang lain, seperti Fail2Ban, yang dapat mengotomatisasi ini untuk Anda. Firewall eksternal akan lebih baik.
Selain mencoba untuk melarang menyinggung alamat IP, Anda harus mencoba memanfaatkan sumber daya Anda dengan lebih baik. Jika permintaan membutuhkan lebih sedikit sumber daya, serangan akan menjadi lebih lama.
Apache juga menggunakan banyak memori. Jika Anda menggunakan mod_php, itu lebih buruk karena PHP dimuat di dalam setiap proses anak Apache. Ini berarti bahkan permintaan untuk konten statis (css / js / gambar) memuat PHP bahkan ketika PHP tidak digunakan. Anda dapat menyelesaikan masalah ini dengan menggunakan FastCGI. mod_fcgid adalah opsi yang bagus.
Ada juga server web lain yang lebih efisien sumber daya. Nginx adalah favorit saya. Ada juga Lighttpd. Banyak orang menyukai Litespeed (mampir pengganti Apache).
Jika Anda ingin tetap menggunakan Apache, pertimbangkan untuk menyetelnya sebaik mungkin. Pertimbangkan untuk menonaktifkan .htaccess. Inilah penjelasan yang bagus mengapa .
sumber
Untuk mengontrol atau memblokir lalu lintas http, Anda dapat menggunakan:
Namun, perlu diketahui bahwa alat ini juga dapat memblokir / memperlambat webspiders dan karenanya berdampak pada SEO.
sumber
ossec dapat melakukan hal semacam ini secara otomatis dan transparan berdasarkan syslogs.
sumber
man iptables
dan melihat apa arti setiap bendera, dan bagaimana mereka bekerja bersama.Tidaaaak,
--- banjir ---
iptables -N logdrop iptables -A logdrop -m --set terbaru --set blacklist
iptables -A logdrop -m limit --limit 1 / s --limit-burst 1 -j LOG --log-awalan "Flood:"
iptables -A logdrop -j DROP
iptables -N ddos iptables -A ddos -m terbaru --rcheck --nama blacklist --detik 300 --hitcount 1 -j logdrop iptables -A ddos -m baru-baru ini --set --nama lagi iptables -A ddos -m baru-baru ini --update --name lagi --seconds 60 --hitcount 2 -j iptables logdrop -A ddos -j RETURN
sumber