我正在构buildNginx和ModSecurity,以便使用OWASP核心规则集项目 。 根据modsecurity下载页面,最新版本的modsecurity(2.9.1)在与Nginx一起使用时并不稳定。 这与我的经验是一致的(在Nginx 1.8.x或1.9.x上不能正常工作)。 我也尝试过ModSecurity的nginx_refactoring分支,但是这也是没有function的,而且在近两年里还没有看到提交。 有一个新版本的modsecurity即将上线(libmodsecurity),但还没有准备好,也没有任何指示什么时候可以准备好。 ModSecurity和支持的Nginx版本是否有任何组合?
更新我想我们已经解决了这个问题。 这个问题似乎是/ modsec_storage目录的SELinux上下文types的值不正确的结果。 但是,我们仍然不确定,因为虽然在更改SELinux上下文types值后,Apache能够在全局和ip集合(global.dir / global.pag和ip.dir / ip)的目录中创build文件。 pag),新文件仍然有零字节。 我是ModSecurity的新手,不确定这些文件是否为空,因为configuration有问题,或者ModSecurity只是简单地确定在每个事务结束后不需要永久存储IP地址。 任何人都可以在这里提供指导? 我最近在我们的生产服务器上安装了ModSecurity(v2.5.12 / CRS v2.0.8),除了这些写入Apache错误日志的错误之外,一切都很好。 Failed to access DBM file "/modsec_storage/global": Permission denied [hostname "www.internationalstudent.com"] [uri "/includes/soc_bookmarks/images/delicious.png"] [unique_id "LZ6jc38AAAEAAFO6408AAABO"] Failed to access DBM file "/modsec_storage/ip": Permission denied [hostname "www.internationalstudent.com"] [uri "/includes/soc_bookmarks/images/delicious.png"] [unique_id "LZ6jc38AAAEAAFO6408AAABO"] 按照Ivan Ristic的ModSecurity手册中的文件权限设置说明,没有成功,我创build了/ modsec_storage目录,将所有者和组设置为apache,并将目录权限recursion设置为777。 但是,ModSecurity仍然报告相同的权限错误,所以我很难过。 谁能告诉我如何解决这个问题?
安装mod_security,说明指示我们添加: LoadFile /usr/lib/libxml2.so LoadFile /usr/lib/liblua5.1.so 到httpd.conf。 我想知道为什么他们可能更喜欢LoadFile链接到rpath / LD_RUN_PATH /等。
我在一个负载平衡的设置中使用一个IP集合,因此我希望mod_security在x-forwarded的头部而不是REMOTE_ADDR上执行。 这是我的规则: SecAction "phase:1,nolog,pass,initcol:IP=%{REQUEST_HEADERS.x-forwarded-for}" SecAction "nolog,phase:1,setvar:IP.hitcount=+1,deprecatevar:IP.hitcount=100/15" SecRule IP:hitcount "@gt 600" "nolog,drop,phase:1,msg:'Possible DoS'" 无论我在IP =后面设置密钥,我通过哪个负载均衡器IP都明显地禁止了每个人。 这是一个错误还是我donig错误? 我甚至硬编码到1.1.1.1的密钥,它仍然在ip.pag文件中设置负载均衡IP。 帮帮我! :]
我试图让ModSecurity 2.7.1与ASP.NET MVC 3网站一起工作。 安装运行没有错误,并查看事件日志,ModSecurity成功启动。 我正在使用modsecurity.conf-recommended文件来设置基本规则。 我遇到的问题是,每当我张贴一些表单数据,它不会通过控制器操作(或模型联编程序)。 我有SecRuleEngine设置为DetectionOnly 。 我有SecRequestBodyAccess设置为On 。 使用这些设置,POST的主体永远不会到达控制器操作。 如果我将SecRequestBodyAccess设置为Off它就可以工作,所以这肯定是ModSecurity转发正文数据的方法。 ModSecuritydebugging显示以下内容(看起来好像全部通过): Second phase starting (dcfg 94b750). Input filter: Reading request body. Adding request argument (BODY): name "[0].IsSelected", value "on" Adding request argument (BODY): name "[0].Quantity", value "1" Adding request argument (BODY): name "[0].VariantSku", value "047861" Adding request argument (BODY): name "[1].Quantity", value […]
我想使用Apache Mod_security阻止代理(x转发)ip某些页面(wp-comments-post.php)。 我目前的mod_security规则: SecRule REQUEST_HEADERS_NAMES "^x-forwarded-for" "log,deny,id:48,status:403,t:lowercase,msg:'Don't use Proxy'"
我正在尝试处理Web请求的REQUEST_BODY,其中包含Content-Type:text / xml和其中的一些XML。 假设我有以下要求: curl -v -d " <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <value> <struct> <member> <name>SomeName</name> <value>SomeValue</value> </member> </struct> </value> </methodResponse> " -H "Content-Type:text/xml" http://gryzli.info/some_url.php 我需要的是能够将REQUEST_BODY与“SomeName”或“SomeValue”匹配为纯文本string。 我已经尝试了以下几点: 1.尝试在阶段2上匹配以下关键字: SecRule REQUEST_BODY "SomeValue" "phase:2, ….." – No success SecRule FULL_REQUEST "SomeValue" "phase:2, ….." – No success SecRule ARGS "SomeValue" "phase:2, ….." – No success 2.除了上面的规则,我试图以不同的组合激活这些规则: SecRule REQUEST_HEADERS:Content-Type […]
我从来没有激活之前的mod_security或编辑虚拟主机,所以这对我来说是一个新的挑战,我试图按照本教程,但似乎网上的大多数教程没有反映我的情况。 我有一个在Ubuntu 14.04上运行Apache 2的EC2实例,我没有一个名为httpd的文件,但是在我的/etc/apache2/sites-available文件夹中,我有名为000-default.conf的文件: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html <IfModule security2_module> SecRuleEngine Off </IfModule> <Directory /var/www > AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 这是我的security2.conf位于/etc/apache2/mods-available <IfModule security2_module> SecDataDir /var/cache/modsecurity Include "/usr/share/modsecurity-crs/*.conf" Include "/usr/share/modsecurity-crs/activated_rules/*.conf" IncludeOptional /etc/modsecurity/*.conf </IfModule> 我希望启用mod_security但现在我不能因为在../html文件夹(我的../html文件夹)我有Wordpress和phpMyAdmin(所以如果我删除SecRuleEngineclosures,它给了我错误权限在所有网站上被拒绝)。 从上面提到的教程中我知道我需要使用这段代码来排除特定的目录: <Directory "/var/www/wp-admin"> <IfModule security2_module> SecRuleEngine Off </IfModule> </Directory> 我不明白的是:我需要在/sites-available创build一个新的.conf文件吗? 例如,它应该如何看起来像.conf文件来排除位于/usr/share/phpmyadmin phpMyAdmin目录?
AWS上有许多EC2服务器,在负载平衡器(ELB)后面运行apache。 每隔一段时间,一些IP地址会滥用EC2服务器上托pipe的API并导致拒绝服务。 我无法访问负载平衡器,所以我需要在服务器级别阻止访问。 我根据负载平衡器提供的X-Forwarded-For头来改变apache访问日志来显示IP(否则它只显示负载平衡器的IP),所以我可以识别这些IP并阻止它们(再次指定X- Forwarded-For)类似于: <Directory api_dir> SetEnvIF X-FORWARDED-FOR "1.1.1.1" DenyIP Order allow,deny allow from all deny from env=DenyIP </Directory> 但是,这仍然意味着我需要手动处理每个攻击,并且我的服务器因此遭受了一些停机时间。 推荐的方式是自动阻止重复HTTP调用的攻击,而不是基于IP,而是基于来自负载均衡器的Forwarded-For头。
我正在做一个干净的安装我的服务器,我正在寻找一些关于我是否真的需要 Apache mod_security模块的build议。 对于我的服务器,我认为自己有点偏执,但是安装和debuggingmod_security的新configuration是否值得通过所有的麻烦?