Nonaktifkan modsecurity Untuk Direktori Tertentu


11

Bagaimana Anda menonaktifkan modsecurity hanya untuk direktori tertentu. Saya mendapatkan kesalahan dalam phpMyAdmin yang disebabkan oleh modsecurity tripping berdasarkan aturan. Saya sudah menyiapkan file-file berikut:

# /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf
<LocationMatch "^/phpMA/">
    SecRuleEngine Off
</LocationMatch>

# /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf
<LocationMatch '^/phpMA/*'>
    SecRuleRemoveById 950004
    SecRuleRemoveById 950005
    SecRuleRemoveById 950006
    SecRuleRemoveById 960010
    SecRuleRemoveById 960012
</LocationMatch>

Dari apa yang saya dapat menemukan file pertama harus menonaktifkannya, tetapi masih trip, jadi saya mencoba menambahkan ID aturan itu tersandung ke file 60, tetapi masih mengeluh.

Saya menjalankan paket-paket berikut pada CentOS 5.3:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • mod-php5-apache2-zend-ce-5.2.10-65

Jawaban yang disetujui tidak aman. Rujuk ke: serverfault.com/a/766395/345813
SherloxTV

Jawaban:


17

SecRuleEngine Off harus berfungsi. Sudahkah Anda mencoba memasukkan SecRuleEngine ke dalam Direktori:

<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>

alih-alih LocationMatch?


1
Mencoba menambahkan bahwa untuk 15 berkas dan masih mendapatkan kesalahan yang sama tertangkap di modsecurity_audit.log
dragonmantank

Apakah file modsecurity_crs_15_customrules.conf dan modsecurity_crs_60.custom.conf disertakan (tidak dikomentari) di /etc/httpd/conf.d/mod_security.conf?
hdanniel

facepalm Tidak, mereka tidak. Itu merawatnya.
dragonmantank

3

Pada beberapa server dan host web, dimungkinkan untuk menonaktifkan ModSecurity via .htaccess, tetapi hanya secara keseluruhan (bukan aturan individual).

Untuk membatasi ini ke URL tertentu, Anda dapat menentukan regex dalam <If>pernyataan di bawah ...

### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#" 
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
  <If "%{REQUEST_URI} =~ m#/admin/#">
    SecFilterEngine Off
    SecFilterScanPOST Off
  </If>
</IfModule>

2

Jangan pernah menonaktifkan semua aturan !! Ini dapat menyebabkan masalah keamanan serius!

Anda perlu memeriksa logfile modsecurity dengan

tail -f /var/log/apache2/modsec_audit.log

dan mengecualikan setiap aturan satu per satu mereproduksi kesalahan pada antarmuka phpmyadmin.

Selanjutnya, tambahkan:

<Directory /path/to/phpmyadmin>
    <IfModule security2_module>
        SecRuleRemoveByTag "WEB_ATTACK/SQL_INJECTION"
        {And other rules you need to disable ...}
    </IfModule>
</Directory>

ke /etc/apache2/mods-enabled/modsecurity.conf

Tag yang perlu Anda hapus akan ada di file log seperti ini . Untuk deskripsi lengkap tentang menghapus aturan untuk folder tertentu, lihat wiki Github proyek .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.