Blocking Domain with ModSecurity

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 HTTP Host.
  • @rx domainyangdiblokir\.com adalah ekspresi reguler yang memeriksa apakah nilai header Host 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