Vô hiệu hóa modsecurance cho một thư mục cụ thể


11

Làm thế nào để bạn vô hiệu hóa modsecurance cho chỉ một thư mục cụ thể. Tôi đang gặp lỗi trong phpMyAdmin do vấp phải sự cố bảo mật dựa trên các quy tắc. Tôi có các tập tin sau được thiết lập:

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

Từ những gì tôi có thể tìm thấy tệp đầu tiên sẽ vô hiệu hóa nó, nhưng nó vẫn bị ngắt, vì vậy tôi đã thử thêm ID quy tắc mà nó bị vấp vào tệp 60, nhưng nó vẫn phàn nàn.

Tôi đang chạy các gói sau trên 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

Câu trả lời được phê duyệt là không an toàn. Tham khảo: serverfault.com/a/766395/345813
SherloxFR 17/03/19

Câu trả lời:


17

SecRuleEngine Tắt phải hoạt động. Bạn đã thử đặt SecRuleEngine vào Thư mục chưa:

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

thay vì LocationMatch?


1
Đã thử thêm nó vào tệp 15 và vẫn nhận được các lỗi tương tự bị bắt trong modsecurity_audit.log
dragonmantank

Các tệp modsecurity_crs_15_customrules.conf và modsecurity_crs_60.custom.conf có được bao gồm (không được nhận xét) trong /etc/httpd/conf.d/mod_security.conf của bạn không?
hdanniel

facepalm Không, họ không. Điều đó đã chăm sóc nó.
dragonmantank

3

Trên một số máy chủ và máy chủ web, có thể vô hiệu hóa ModSecurity thông qua .htaccess, nhưng chỉ trong toàn bộ (không phải quy tắc riêng lẻ).

Để giới hạn điều này với các URL cụ thể, bạn có thể chỉ định <If>biểu thức chính trong câu lệnh bên dưới ...

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

Không bao giờ vô hiệu hóa tất cả các quy tắc !! Điều này có thể gây ra vấn đề an ninh nghiêm trọng!

Bạn cần kiểm tra logfile của modsecurance với

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

và loại trừ từng quy tắc từng cái một tái tạo các lỗi trên giao diện phpmyadmin.

Tiếp theo, thêm:

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

đến /etc/apache2/mods-enables/modsecurity.conf

Thẻ bạn cần xóa sẽ nằm trong tệp nhật ký như thế này . Để biết mô tả đầy đủ về việc loại bỏ các quy tắc cho một thư mục cụ thể, hãy xem wiki Github của dự án .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.