Questions tagged «mod-security»

5
通过http-host标头阻止mod_security
最近几天,我注意到一些服务器受到未知请求的冲击。 其中大多数如下所示: 60.246.*.* - - [03/Jan/2015:20:59:16 +0200] "GET /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 HTTP/1.1" 200 - 经过一番记录和搜索后,我发现一些中国ISP(根据whatsmydns.net的结果可能是CERNET)和一些土耳其ISP(可能是TTNET)对dns查询做出了响应,例如a.tracker.thepiratebay.org使用各种与piratebay无关的IP或山洪。换句话说,出于某些奇怪的原因,它们似乎在进行某种DNS缓存中毒。 因此,这些国家/地区的数百个(即使不是数千个)bittorrent客户端向我的Web服务器发出大量的“公告”,这几乎导致DDoS攻击填满了所有Apache的连接。 目前,我完全封锁了中国和土耳其,并且确实可以完成工作,但我想找到一种更好的方式来阻止这些请求。 我正在考虑使用基于HTTP Host标头的mod_security阻止这些请求。 所有这些请求都包含一个HTTP Host标头,例如a.tracker.thepiratebay.org(或thepiratebay.org域的许多其他子域)。 这是通过PHP $_SERVER变量转储的请求标头。 DOCUMENT_ROOT: /usr/local/apache/htdocs GATEWAY_INTERFACE: CGI/1.1 HTTP_ACCEPT_ENCODING: gzip HTTP_CONNECTION: Close HTTP_HOST: a.tracker.thepiratebay.org HTTP_USER_AGENT: uTorrent/342(109415286)(35702) PATH: /bin:/usr/bin QUERY_STRING: info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 REDIRECT_STATUS: 200 REMOTE_ADDR: 60.246.*.* REMOTE_PORT: 3445 REQUEST_METHOD: GET REQUEST_URI: /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 SCRIPT_FILENAME: /usr/local/apache/htdocs/announce.php SCRIPT_NAME: …

1
什么是PCRE限制?
在ModSecurity中存在PCRE limits exceeded错误。 我知道我可以通过设置以下规则来解决此问题: SecPcreMatchLimit 150000 SecPcreMatchLimitRecursion 150000 但是,这些规则实际上在做什么?将PCRE限制递归设置为150,000是什么意思?通过将其设置得如此高,我可以允许哪些安全漏洞?什么是recursion和limit是什么意思? 我知道有文档,但是文档实际上并没有告诉我发生了什么,只是告诉我如何使用指令。

3
mod_security-超出PCRE限制
几乎在每个请求上我都会遇到以下错误: Rule execution error - PCRE limits exceeded (-8): (null). 经过一堆谷歌搜索后,唯一的解决方案似乎是 a)在您的httpd.conf中添加以下内容 SecPcreMatchLimit 150000 SecPcreMatchLimitRecursion 150000 b)将以下内容添加到您的php.ini中 pcre.backtrack_limit = 10000000 pcre.recursion_limit = 10000000 c)使用使用-disable-pcre-match-limit选项编译的版本。 我正在运行以下内容: 适用于Apache / 2.5.12的ModSecurity(http://www.modsecurity.org/)。 具有Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8的Apache / 2.2.16(Debian)PHP / 5.3.3-7 + squeeze8 对于ModSec我的规则,我正在使用OWASP ModSecurity核心规则集项目版本(CRS)版本2.2.3,这是本文发布时的最新版本。 我的httpd.conf本质上包含: <IfModule security2_module> SecUploadDir /var/asl/data/suspicious SecDataDir /var/asl/data/msa …

3
禁用特定目录的modsecurity
如何仅对特定目录禁用modsecurity。我收到phpMyAdmin中的错误,这些错误是由基于规则的modsecurity跳闸引起的。我设置了以下文件: # /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> 根据我的发现,第一个文件应该禁用它,但它仍然会跳闸,因此我尝试将它跳闸的规则ID添加到60文件中,但仍然会抱怨。 我在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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.