Jika situs Anda mengalami serangan bot atau terdapat laporan penyalahgunaan (abuse), alih-alih mengubah permission public_html
ke 0000
agar tidak dapat diakses.
Anda dapat memblokirnya berdasarkan domain menggunakan ModSecurity.
Berikut adalah langkah-langkahnya.
Buat folder custom_rules
.
mkdir -p /etc/httpd/modsecurity.d/custom_rules
Kemudian buat file dan tambahkan rule modsec berikut.
nano /etc/httpd/modsecurity.d/custom_rules/block-domain.conf
SecRule REQUEST_HEADERS:Host "@rx domainyangdiblokir\.com" \
"id:7777772,phase:1,deny,severity:2,status:403,msg:'Access denied - Blocked domain'"
Penjelasan:
REQUEST_HEADERS:Host
adalah variable yang menyimpan nilai header HTTPHost
.@rx domainyangdiblokir\.com
adalah ekspresi reguler yang memeriksa apakah nilai headerHost
mengandung kata “domainyangdiblokir.com”.id:7777772
adalah ID rule modsec.phase:1
menunjukan bahwa aturan ini diterapkan pada fase 1 dari pemrosesan permintaan HTTP.deny
menunjukan bahwa permintaan yang cocok dengan aturan ini harus ditolak.status:403
adalah kode status HTTP yang dikirimkan kembali ke klien untuk menolak akses.msg:'Access denied - Blocked domain'
adalah pesan yang akan disertakan dalam log jika aturan ini dipicu.
Edit konfigurasi mod_security.conf
.
<IfModule mod_security2.c>
Include modsecurity.d/custom_rules/*.conf
</IfModule>
Kemudian restart service apache.
systemctl restart httpd
Untuk memastikan file rule yang dibuat sudah di load oleh server web.
# httpd -t -D DUMP_INCLUDES | grep custom
(56) /etc/httpd/modsecurity.d/custom_rules/block-domain.conf