Belirli bir Dizin için modsecurity'yi devre dışı bırakma


11

Yalnızca belirli bir dizin için modsecurity'yi nasıl devre dışı bırakırsınız? Kurallara dayalı modsecurity açma neden phpMyAdmin hataları alıyorum. Aşağıdaki dosyaları ayarladım:

# /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>

İlk dosyayı bulabildiğimden devre dışı bırakmalı, ancak yine de geziyor, bu yüzden 60 dosyaya açtığı kural kimliklerini eklemeyi denedim, ancak yine de şikayet ediyor.

CentOS 5.3 üzerinde aşağıdaki paketleri çalıştırıyorum:

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

Onaylanan cevap güvenli değil. Bakınız: serverfault.com/a/766395/345813
SherloxTV

Yanıtlar:


17

SecRuleEngine Off çalışmalıdır. SecRuleEngine'i Dizin içine koymaya çalıştınız mı?

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

LocationMatch yerine?


1
Bunu 15 dosyaya eklemeyi ve modsecurity_audit.log dosyasına yakalanmaya devam eden aynı hataları almaya çalıştım
dragonmantank

Modsecurity_crs_15_customrules.conf ve modsecurity_crs_60.custom.conf dosyaları /etc/httpd/conf.d/mod_security.conf dosyasına dahil edildi mi (yorumlanmadı)?
hdanniel

facepalm Hayır, değildiler. Bunu hallettim.
dragonmantank

3

On bazı sunucuları ve web host, bu yolu ile devre dışı ModSecurity'nin mümkündür .htaccess, ama sadece onun tamamı (değil bireysel kuralları) içinde.

Bunu belirli URL'lerle sınırlamak için <If>aşağıdaki ifadede bir normal ifade belirleyebilirsiniz ...

### 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

Asla tüm kuralları devre dışı bırakmayın !! Bu ciddi güvenlik sorunlarına neden olabilir!

Modsecurity günlük dosyasını

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

ve phpmyadmin arabirimindeki hataları yeniden oluşturarak her kuralı tek tek hariç tutun.

Sonra ekleyin:

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

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

Eğer remove gereken etiket gibi günlük dosyasında olacaktır bu . Belirli bir klasör için kuralların kaldırılmasının tam açıklaması için projenin Github wiki'sine bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.