GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Secara Otomatis dan Sementara memblokir alamat IP yang membuat terlalu banyak hit di Server dalam rentang waktu yang singkat?

Solusi 1:

Fail2Ban. Standar emas/solusi default untuk masalah ini di platform Linux.

Solusi 2:

Anda harus menghindari mencoba melakukan ini dengan PHP. Pada saat PHP terlibat, semuanya sudah terlambat - memori telah dialokasikan.

Anda dapat memblokir alamat IP di lapisan mana pun, tetapi level terendah yang menggunakan sumber daya paling sedikit adalah rute yang ingin Anda ambil. Ini biasanya firewall. Paling tidak, iptables (linux firewall) adalah yang ingin Anda gunakan. Ada alat yang disebutkan orang lain, seperti Fail2Ban, yang dapat mengotomatiskan ini untuk Anda. Firewall eksternal akan lebih baik.

Selain mencoba melarang alamat IP yang menyinggung, Anda harus mencoba memanfaatkan sumber daya Anda dengan lebih baik. Jika permintaan membutuhkan lebih sedikit sumber daya, serangan akan membutuhkan waktu lebih lama untuk menjadi efektif.

Apache juga menggunakan banyak memori. Jika Anda menggunakan mod_php, ini lebih buruk lagi karena PHP dimuat di dalam setiap proses anak Apache. Ini berarti bahkan permintaan ke konten statis (css/js/gambar) memuat PHP bahkan saat PHP tidak digunakan. Anda dapat mengatasi masalah ini dengan menggunakan FastCGI sebagai gantinya. mod_fcgid adalah opsi yang bagus.

Ada juga server web lain yang lebih hemat sumber daya. Nginx adalah favorit saya. Ada juga Lighttpd. Banyak orang menyukai Litespeed (mampir sebagai pengganti Apache).

Jika Anda ingin tetap menggunakan Apache, pertimbangkan untuk menyetelnya sebaik mungkin. Pertimbangkan untuk menonaktifkan .htaccess. Inilah penjelasan yang bagus mengapa.

Solusi 3:

iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

ossec dapat melakukan hal semacam ini secara otomatis dan transparan berdasarkan syslogs.

Solusi 4:

Untuk mengontrol atau memblokir lalu lintas http, Anda dapat menggunakan :

  • modul apache.
  • iptable
  • fail2ban sebagaimana dinyatakan di sini oleh HopelessN0ob.

Namun, ketahuilah bahwa alat ini juga dapat memblokir/memperlambat webspider sehingga memengaruhi SEO.


Linux
  1. Cara memblokir alamat IP di server Linux

  2. Cara mengatasi batas Terlalu Banyak Argumen Linux

  3. Bagaimana cara menentukan ukuran blok partisi ext3 di Linux?

  1. Cara memblokir alamat IP di server Linux

  2. Cara Instal OpenLiteSpeed ​​Web Server PHP dan MariaDB di Ubuntu 20.10

  3. Mengapa Server Memblokir IP Saya?

  1. Bagaimana Cara Mendapatkan Alamat Ip Sendiri Dan Menyimpannya Ke Variabel Dalam Script Shell?

  2. Bagaimana Memantau Lalu Lintas TCP Antara Localhost Dan Alamat Ip?

  3. Bagaimana cara mengizinkan atau memblokir port dan Alamat IP menggunakan Firewalld, tabel IP, dan UFW di Linux?