Mod_security adalah modul Apache yang membantu melindungi situs web Anda dari berbagai serangan seperti skrip lintas situs, serangan injeksi SQL, serangan path traversal dll. Mod_evasive adalah modul Apache yang membantu mencegah serangan HTTP DoS (DDoS) atau serangan brute force server . Jika Anda telah menginstal CentOS di server Anda, ikuti petunjuk ini untuk menginstal mod_security dengan set aturan inti OWASP.
Untuk menginstal dan mengonfigurasi modul mod_security dan mod_evasive pada VPS Ubuntu untuk memperkuat dan mengamankan server web Apache Anda, ikuti langkah-langkah yang dijelaskan di bawah ini:
Pastikan semua paket OS terbaru:
sudo apt-get update sudo apt-get upgrade
Instal mod-security dan mod-evasive menggunakan perintah berikut:
sudo apt-get install libapache2-mod-security2 libapache2-modsecurity libapache2-mod-evasive
Untuk mengaktifkan aturan mod_security, salin file konfigurasi mod_security yang disarankan, lalu edit dan setel opsi 'SecRuleEngine' ke Aktif:
sudo cp /etc/modsecurity/modsecurity.conf{-recommended,} sudo vi /etc/modsecurity/modsecurity.conf
SecRuleEngine On
Selain itu, merupakan ide yang baik untuk meningkatkan nilai 'SecRequestBodyLimit' ke ukuran maksimum file yang akan Anda terima untuk diunggah ke server, misalnya setel ke 32 MB dan larang mod_security untuk mengakses badan respons untuk menghemat beberapa sumber daya server:
SecRequestBodyLimit 32768000 SecRequestBodyInMemoryLimit 32768000 SecResponseBodyAccess Off
Aturan mod_security tersedia di direktori berikut:
/usr/share/modsecurity-crs/base_rules /usr/share/modsecurity-crs/optional_rules /usr/share/modsecurity-crs/experimental_rules
Untuk mengaktifkan semua aturan dasar CRS, buat tautan simbolis menggunakan perintah berikut:
sudo ln -s /usr/share/modsecurity-crs/base_rules/*.conf /usr/share/modsecurity-crs/activated_rules/
Untuk mengaktifkan file aturan opsional dan eksperimental CRS yang ingin Anda gunakan, buat tautan simbolis di bawah lokasi direktori 'activated_rules' yang sesuai.
Disarankan untuk mengunduh dan mengonfigurasi kumpulan aturan inti OWASP (Open Web Application Security Project):
sudo apt-get install git sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bak sudo mv owasp-modsecurity-crs /usr/share/modsecurity-crs sudo mv /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf
Edit file berikut:
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_35_bad_robots.conf
komentar baris 16, 21 dan 28:
#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \ #SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \ #SecRule REQUEST_HEADERS:User-Agent
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_40_generic_attacks.conf
baris komentar 169:
#SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@pmFromFile modsecurity_40_generic_attacks.data" \
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_50_outbound.conf
baris komentar 101:
#SecRule RESPONSE_BODY "!@pmFromFile modsecurity_50_outbound.data" \
Konfigurasi modul mod_evasive:
<ifmodule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 10 DOSSiteCount 30 DOSPageInterval 1 DOSSiteInterval 3 DOSBlockingPeriod 3600 DOSLogDir /var/log/apache2/mod_evasive.log </ifmodule>
touch /var/log/apache2/mod_evasive.log sudo chown www-data:www-data /var/log/apache2/mod_evasive.log
Jalankan perintah berikut untuk mengaktifkan modul Apache:
sudo a2enmod headers sudo a2enmod evasive sudo a2enmod security2
Mulai ulang server web Apache2 :
sudo service apache2 restart
Periksa apakah modul mod_security dan mod_evasive diaktifkan di server Anda:
sudo apachectl -M | grep security2 security2_module (shared) sudo apachectl -M | grep evasive evasive20_module (shared)
Jika Anda memiliki situs web berbasis WordPress yang dihosting di VPS Anda, kemungkinan besar Anda harus menonaktifkan beberapa aturan mod_security. Untuk menonaktifkan/mengecualikan aturan mod_security tertentu, Anda dapat mengedit host virtual domain Anda yang ditentukan dalam file konfigurasi Apache domain Anda, misalnya:
<VirtualHost *:80> ServerName yourdomain.com ServerAlias www.yourdomain.com DocumentRoot /var/www/html/wordpress/ <Directory /> Options +FollowSymLinks AllowOverride FileInfo </Directory> <LocationMatch "/wp-admin/post.php"> SecRuleRemoveById 300016 </LocationMatch> <LocationMatch "/wp-admin/nav-menus.php"> SecRuleRemoveById 300016 </LocationMatch> <LocationMatch "(/wp-admin/|/wp-login.php)"> SecRuleRemoveById 950117 SecRuleRemoveById 950005 </LocationMatch> </VirtualHost>
Jangan lupa untuk me-restart server web Apache agar perubahan diterapkan, jadi jalankan perintah berikut:
sudo service apache2 restart
Periksa file log /var/log/apache2/modsec_audit.log untuk menemukan aturan yang dipicu oleh mod_security di server web Anda.
Itu dia. Anda telah menginstal mod_security dan mod_evasive di VPS Ubuntu Anda.
Tentu saja Anda tidak perlu melakukan semua ini jika Anda menggunakan salah satu layanan Hosting VPS Linux kami, dalam hal ini Anda dapat meminta admin Linux ahli kami untuk menginstal mod_security dan mod_evasive untukmu. Mereka tersedia 24×7 dan akan segera memenuhi permintaan Anda.
PS. Jika Anda menyukai posting ini, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di sebelah kiri atau cukup tinggalkan balasan di bawah. Terima kasih.