我已经在 apache2 中使用反向代理+Mod Security 设置了虚拟主机配置。 但它重叠,重新启动 apache2 时不会给出任何错误,但第二个 虚拟主机配置与第一个重叠。
第一个工作正常。
我的虚拟主机配置如下:
NameVirtualHost 192.168.1.101:80
<VirtualHost 192.168.1.101:80>
ServerName 124.125.252.31
DocumentRoot /var/www
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /asd http://124.125.252.31/
ProxyPassReverse /asd http://124.125.252.31/
<Location /asd>
Order deny,allow
Allow from all
</Location>
Include /etc/apache2/rules/modsecurity_crs_10_config.conf
Include /etc/apache2/rules/base_rules/*.conf
</VirtualHost>
<VirtualHost 192.168.1.101:80>
ServerName 124.125.252.32
DocumentRoot /var/www
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /qwe http://124.125.252.32/
ProxyPassReverse /qwe http://124.125.252.32/
<Location /qwe>
Order deny,allow
Allow from all
</Location>
Include /etc/apache2/rules/modsecurity_crs_10_config.conf
Include /etc/apache2/rules/base_rules/*.conf
</VirtualHost>
根据最新的 ModSecurity 参考手册,在配置指令部分:
大多数 ModSecurity 指令都可以在各种内部使用 Apache 范围指令,例如 VirtualHost、Location、LocationMatch、 目录等...不过还有其他的,只能用 一旦在主配置文件中。该信息指定于 下面的范围部分。使用给定指令的第一个版本 在下面的版本部分中给出。这些规则以及 核心规则文件,应包含在 httpd.conf 文件并使用 Apache“Include”指令进行调用。
我猜测您的配置中的以下行应该直接包含在您的主 httpd.conf 文件中:
Include /etc/apache2/rules/modsecurity_crs_10_config.conf
我猜测可以在您的虚拟主机中插入以下行:
Include /etc/apache2/rules/base_rules/*.conf
但我可能是错的。只是此在线 crs_10_config 示例中的某些指令的范围指定为“Main”而不是“Any”(例如 SecComponentSignature 仅举一例)。
是什么让您意识到它们是重叠的?有日志吗?
我也遇到过类似的错误。 Modsecurity 在服务器 IP 地址 172.20.84.120 上安装并配置了 OWASP10 规则集,并在 ubuntu 服务器上的 apache-web 服务器上运行。另一个应用程序正在另一台 Windows 服务器上运行,IP 地址为 172.20.84.31:8000。我想通过反向代理使用适度安全性来保护网络应用程序。 rev-proxy.conf 是“
ProxyPass /av http://172.20.84.31:8000/
ProxyPassReverse /av http://172.20.84.31:8000/
<IfModule security2_module>
SecRuleEngine On
#IncludeOptional /etc/modsecurity/modsecurity.conf
IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/crs-setup.conf
IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/*.conf
</IfModule>
“ http://172.20.84.31:8000/?id=1 或 '1'='1' 不能给出 403 禁止而是重定向到 av 页面。但是 http://172.20.84.120/av/?id=1或者 '1'='1' 可以给出 403 禁止