GNU/Linux >> Belajar Linux >  >> Ubuntu

Bertahan Terhadap DoS &DDoS di Apache Dengan mod_evasive

Pendahuluan

Modul mod_evasive adalah modul layanan web Apache yang membantu server Anda tetap berjalan jika terjadi serangan. Jenis serangan dunia maya yang umum terjadi dalam bentuk Denial of Service (DoS), Distributed Denial of Service (DDoS), atau kekerasan yang mencoba membanjiri keamanan Anda.

Sifat serangan ini adalah menggunakan beberapa komputer yang berbeda untuk membuat permintaan berulang terhadap server Anda. Hal ini menyebabkan server kehabisan daya pemrosesan, memori, bandwidth jaringan, dan menjadi tidak responsif.

Panduan ini akan memandu Anda melalui mengonfigurasi dan menginstal mod_evasive untuk melindungi dari DoS dan DDoS.

Prasyarat

  • Stack LAMP (Linux, Apache, MySQL, PHP) diinstal dan dikonfigurasi
  • Akses ke akun pengguna dengan sudo atau hak akses root
  • Server email yang berfungsi (untuk peringatan email)

Bagaimana Apache mod_evasive Bekerja

mod_evasive Apache utilitas bekerja dengan memantau permintaan server yang masuk. Alat ini juga mengawasi aktivitas mencurigakan dari satu IP, seperti:

  • Beberapa permintaan untuk halaman yang sama dalam satu detik.
  • Lebih dari 50 permintaan simultan per detik.
  • Permintaan yang dibuat saat IP masuk daftar hitam sementara.

Modul mengirimkan kesalahan 403 jika salah satu dari hal ini terjadi. Secara default, ini juga termasuk masa tunggu 10 detik di daftar hitam. Jika alamat IP yang membuat permintaan mencoba lagi di jendela 10 detik itu, waktu tunggu akan bertambah.

mod_evasive membantu Anda bertahan dari serangan semacam ini melalui deteksi dan pengelolaan jaringan.

Langkah-Langkah Menginstal Mod_evasive Apache Utility

Langkah 1:Instal Utilitas Server Web Apache

Sebelum menginstal utilitas, perbarui repositori paket dengan perintah untuk distribusi Linux Anda:

Debian / Ubuntu :

sudo apt update

Topi Merah / CentOS :

sudo yum update

Izinkan sistem untuk menyegarkan dan memperbarui daftar perangkat lunak Anda.

Kemudian, instal utilitas pembantu:

Debian / Ubuntu :

sudo apt install apache2-utils

RedHat / CentOS :

sudo yum install httpd-devel

Bagian terakhir dari output terlihat seperti ini:

Utilitas ini diperlukan untuk pemasangan mod_evasive .

Langkah 2:Instal mod_evasive

Debian / Ubuntu

Untuk memasang mod_evasive modul di Debian / Ubuntu, masukkan berikut ini:

sudo apt install libapache2-mod-evasive

Saat Anda mendapatkan perintah, pilih Oke dan pilih konfigurasi Anda.

Jika tidak yakin, pilih Tidak ada konfigurasi atau Hanya lokal.

CentOS / RedHat

Untuk menginstal modul mod_evasive di RedHat / CentOS:

Tambahkan repositori EPEL:

sudo yum install epel-release

Dan kemudian, masukkan:

sudo yum install mod_evasive

Biarkan prosesnya selesai.

Langkah 3:Konfigurasi mod_evasive

Seperti kebanyakan paket perangkat lunak Linux, mod_evasive dikendalikan oleh file konfigurasi. Lakukan perubahan berikut pada file konfigurasi sebagai langkah pertama dalam mencegah serangan DDoS:

1. Gunakan editor teks pilihan Anda dengan perintah berikut:

Debian / Ubuntu :

sudo nano /etc/apache2/mods-enabled/evasive.conf

Topi Merah / CentOS :

sudo nano /etc/httpd/conf.d/mod_evasive.conf

2. Temukan entri berikut:

#DOSEmailNotify        [email protected]

Hapus # tanda tangani, lalu ganti [email protected] dengan alamat email Anda yang sebenarnya. Gunakan email yang Anda periksa secara teratur – di sinilah alat akan mengirimkan peringatan.

3. Hapus tag komentar dari entri berikut, sehingga file log terlihat sebagai berikut:

DOSHashTableSize 3097

DOSPageCount 2

DOSSiteCount 50

DOSPageInterval 1

DOSSiteInterval 1

DOSBlockingPeriod 10

DOSEmailNotify [email protected]

DOSLogDir "/var/log/apache2/"

4. Simpan file dan keluar. Muat ulang layanan Apache dengan memasukkan yang berikut ini:

Debian / Ubuntu :

sudo systemctl reload apache2

Topi Merah / CentOS :

sudo systemctl restart httpd.service

Uji mod_evasive

Sekarang, mari kita pastikan modul berfungsi dengan benar.

Dalam contoh ini, gunakan test.pl skrip untuk menguji mod_evasive.

Skrip terletak di:/usr/share/doc/libapache2-mod-evasive/examples/test.pl .

Gunakan perintah berikut untuk menjalankan skrip:

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

Outputnya akan mengembalikan pesan ini:

Parameter dan Setelan

Ada banyak parameter mod_evasive yang dapat Anda konfigurasikan:

  • DOSSystemCommand : Pertama, Anda mungkin telah memperhatikan bahwa opsi ini dibiarkan dinonaktifkan sebagai komentar. Perintah ini memungkinkan Anda untuk menentukan perintah sistem yang akan dijalankan ketika alamat IP ditambahkan ke daftar hitam. Anda dapat menggunakan ini untuk meluncurkan perintah untuk menambahkan alamat IP ke firewall atau filter IP.
  • DOSHashTableSize : Tingkatkan ini untuk server web yang lebih sibuk. Konfigurasi ini mengalokasikan ruang untuk menjalankan operasi pencarian. Meningkatkan ukuran akan meningkatkan kecepatan dengan mengorbankan memori.
  • DOSPageCount : Jumlah permintaan untuk halaman individual yang memicu daftar hitam. Ini disetel ke 2, yang rendah (dan agresif) – tingkatkan nilai ini untuk mengurangi positif palsu.
  • DOSSiteCount : Jumlah total permintaan untuk situs yang sama dengan alamat IP yang sama. Secara default, ini disetel ke 50. Anda dapat meningkatkan menjadi 100 untuk mengurangi positif palsu.
  • DOSPageInterval : Jumlah detik untuk DOSPageCount . Secara default, ini diatur ke 1 detik. Artinya, jika Anda tidak mengubahnya, meminta 2 halaman dalam 1 detik akan memasukkan alamat IP ke daftar hitam untuk sementara.
  • DOSSiteInterval : Mirip dengan DOSPageInterval , opsi ini menentukan jumlah detik yang DOSSiteCount monitor. Secara default, ini diatur ke 1 detik. Artinya, jika satu alamat IP meminta 50 sumber daya di situs web yang sama dalam satu detik, alamat tersebut akan masuk daftar hitam untuk sementara.
  • DOSBlockingPeriod : Jumlah waktu alamat IP tetap berada di daftar hitam. Atur ke 10 detik secara default, Anda dapat mengubahnya ke nilai apa pun yang Anda suka. Tingkatkan nilai ini agar alamat IP yang diblokir tetap berada dalam batas waktu untuk periode yang lebih lama.
  • DOSLogDir : Secara default, ini diatur untuk menulis log ke /var/log/mod_evasive. Log ini dapat ditinjau nanti untuk mengevaluasi perilaku klien.

Anda dapat membuat direktori baru untuk menyimpan log akses apache ini – pastikan Anda mengubah pemiliknya menjadi Apache, lalu perbarui lokasi di entri ini:

sudo mkdir /var/log/apache/mod_evasive
sudo chown -R apache:apache /var/log/apache/mod_evasive
sudo nano /etc/apache2/mods-enabled/evasive.conf
DOSLogDir "/var/log/apache/mod_evasive"

Memasukkan alamat IP ke daftar putih: Opsi ini tidak disertakan dalam evasive.conf f ile secara default.

Buka kembali file untuk diedit, lalu tambahkan baris berikut:

DOSWhitelist 192.168.0.13

DOSWhitelist 192.168.0.*

Ganti alamat IP dengan yang ingin Anda daftar putih. Selain itu, Anda harus mencantumkan hanya satu entri per baris . Ini biasanya digunakan dengan klien tepercaya yang bertukar banyak data dengan situs web Anda.

Alat ini bagus dalam mendeteksi bot dan skrip. Jika ada bot atau skrip yang ingin Anda izinkan, Anda dapat memasukkannya ke daftar putih untuk mencegah bot dan skrip ini memicu tindakan daftar hitam.

Pastikan untuk menyimpan file dan keluar. Kemudian, muat ulang layanan Apache Anda sebelum menguji salah satu opsi ini.


Ubuntu
  1. Bertahan Terhadap DoS &DDoS di Apache Dengan mod_evasive

  2. Amankan Apache dengan Lets Encrypt di Ubuntu 18.04

  3. Mengkonfigurasi Apache 2.4 Dengan Fastcgi Di Ubuntu 16.04 – Apa Yang Saya Lakukan Dengan Php7.0-fpm.conf?

  1. Cara Menginstal dan Mengonfigurasi Nextcloud dengan Apache di Ubuntu 18.04

  2. Cara Menginstal Joomla dengan Apache di Ubuntu 18.04

  3. Amankan Apache dengan Lets Encrypt di Ubuntu 20.04

  1. Amankan Apache dengan Lets Encrypt di CentOS 8

  2. Amankan Apache dengan Lets Encrypt di Debian 9

  3. Amankan Apache dengan Lets Encrypt di Debian 10