Articles of mod security

mod_security:具有相同ID的另一个规则

我在CentOS 6.5上安装了httpd 2.2.15(最less安装时没有cPanel)和modsecurity 2.8。 当我启动httpd我得到这个错误: Starting httpd: Syntax error on line 23 of /etc/httpd/conf.d/modsecurity.conf: ModSecurity: Found another rule with the same id 第23行是: "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"

如果Apache位于Nginx的后面,那么ModSecurity是必须的

我有我的Apache安装在Nginx后面。 所以每一个进来的请求都是由Nginx首先处理的。 如果有需要的dynamic内容请求被发送到在端口8080监听的Apache。 很基本的反向代理设置。 现在使用这个设置,第一个入口点是Nginx。 是否仍然需要安装ModSecurity来保护Apache免受不必要的请求。 或者我应该专注于保护Nginx,因为这是第一个入口点。 所有的build议都欢迎。

如何使用mod_security删除所有请求

我有一个启用了多个网站的apache2服务器,包括默认的一个(000default)。 默认服务器正在捕获很多垃圾请求,这些请求除了占用带宽并填满日志文件之外什么也不做。 什么将是一个最小的虚拟主机configuration,将放弃所有的命中默认网站? 这是我迄今为止使用mod_security,但它似乎什么也没做,只是响应一个403的所有请求: <VirtualHost *:80> ServerName default.only SecRuleEngine On SecAction "drop,phase:1" </VirtualHost>

Mod_security日志logging

我试图运行mod_security作为独立的服务与nginx作为反向代理一切正常,除了日志logging。 mod_securitylogging反向代理ip地址,而不是客户端ip地址。 如果有人能帮忙,我将不胜感激。 以下是mod_securitylogging127.0.0.1而不是客户端IP地址的logfile示例。 2012/08/29 14:18:13 [info] 206862#0:[client 127.0.0.1] ModSecurity:访问被代码403(阶段2)拒绝。 模式匹配…

由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 – 经过一番日志和search后,我发现一些中国的ISP(根据whatsmydns.net的结果可能是CERNET)和一些土耳其的ISP(可能是TTNET)响应dns查询,如a.tracker.thepiratebay.org与各种IP与海盗或洪stream无关。 换句话说,他们似乎做了某种DNScaching中毒的一些奇怪的原因。 因此,这些国家的数百个(如果不是数千个)BitTorrent客户端向我的networking服务器发出大量的“声明”,这导致了很多DDoS攻击,从而造成了Apache的所有连接。 目前我完全阻止了中国和土耳其的工作,但我想找一个更好的方法来阻止这些要求。 我正在考虑使用基于HTTP主机头的mod_security来阻止这些请求。 所有这些请求都包含一个HTTP主机头,比如a.tracker.thepiratebay.org (或者是其他的a.tracker.thepiratebay.org域的子域)。 这是通过PHP的$_SERVERvariables请求标题的转储。 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: /announce.php SERVER_ADDR: *.*.*.* SERVER_ADMIN: *@*.* SERVER_NAME: […]

Mod Security ctl:ruleEngine =closures白阶段失败阶段1

自定义规则mod_security和单独的.conf文件中的白名单 – Apache 2.2,modsec 2.8 白名单规则: SecRule REMOTE_ADDR "^10\.10\.10\.10" phase:1,nolog,allow,ctl:ruleEngine=Off,id:104008 如果一个请求被发送到包含例如/? /?abc=../../的服务器,则modsec只允许来自10.10.10.10的请求,否则它会拒绝第二阶段的请求,正如我预期的那样(由于我们安装的规则) 我有一位使用远程WorPresspipe理系统的客户(此处以10.10.10.10表示),但该系统发送某些包含Content-Length标题但缺lessContent-Type标题的POST请求。 即使请求来自10.10.10.10,也会导致: –7ed45f75-H– Message: Access denied with connection close (phase 1). Match of "rx ^0$" against "REQUEST_HEADERS:Content-Length" required. [file "/usr/local/apache/conf/modsec_rules/10_asl_rules.conf"] [line "93"] [id "392301"] [rev "7"] [msg "Atomicorp.com WAF Rules: Request Containing Content, but Missing Content-Type header"] [severity "NOTICE"] [tag "no_ar"] Apache-Error: [file […]

ModSecurity的审计日志logging实际上是什么意思?

我们有ModSecurity设置来loggingApache2的modsec_audit.log。 今天,我们在这个日志中创build了2259个条目,引用了: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 这些条目是否意味着bingbot已经停止抓取我们的网站? 此日志条目的Hlogging指出(没有引用严重性或标记: Message: Rule execution error – PCRE limits exceeded (-8): (null). 该条目的HTTP结果代码是200 OK。 我想了解这些日志中的logging意味着什么,所以我可以创build某种forms的报告。 例如,我的理解是,如果日志条目的H部分指出: [severity "CRITICAL"] 该ModSecurity已经阻止了页面请求。 我的理解是否正确? 希望有人能帮我解决这个问题。 🙂

Linux,apache2,modsecurity阻止Google reCAPTCHAvariables

我有一个Debian Jessie盒子,Apache 2.4和启用了基本规则的默认mod_security。 当我尝试在PHP代码中实现Google reCAPTCHA解决scheme时,modsecurity将阻止返回reCAPTCHAvariables的页面。 正如我所看到的,一个modsecurity SQL注入保护规则阻止我的网站与reCAPTCHA。 有没有一种简单的方法,使得基于SQL注入的规则让Google reCAPTCHA正常工作? 我可以以某种方式排除/白名单variables从modsecurity规则检查? 相关的Apache错误日志条目: [Thu May 05 20:31:17.407153 2016] [:error] [pid 3604] [client 199.67.203.142] ModSecurity: Access denied with code 403 (phase 2). Pattern match "(?i:(\\\\!\\\\=|\\\\&\\\\&|\\\\|\\\\||>>|<<|>=|<=|<>|<=>|xor|rlike |regexp|isnull)|(?:not\\\\s+between\\\\s+0\\\\s+and)|(?:is\\\\s+null)|(like\\\\s+null)|(?:(?:^|\\\\W)in[+\\\\s]*\\\\([\\\\s\\\\d\\"]+[^()]*\\\\))|(?:xor|<>|rlike(?:\\\\s+binary)?)|(?:regexp\\\\s+binary))" at ARG S:g-recaptcha-response. [file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "70"] [id "981319"] [rev "2"] [msg "SQL Injection Attack: SQL Operator Detected"] [ data "Matched Data: […]

寻找一个好的networking渗透testing客户端

我正在Apache服务器上实现mod_security 。 为了testing保护的有效性,我正在寻找一个可以生成一组预定义的恶意HTTP请求的客户端。 我将testing启用和未启用mod_security的请求,并根据日志查看恶意请求被阻止的百分比。 你知道任何好的工具来生成一组预定义的恶意HTTP请求吗?

通过Web界面修改Apacheconfiguration

我想在运行Apache2的服务器上创build一个网站,以允许用户填写包含所需子域名称的表单,以在服务器上创build。 例如,用户可以访问example.com服务器上的站点,用所需的子域“custom_subdomain”填写表单,而在服务器端,脚本将在apache2/sites-available sites-site中创build相应的Vhost file , apache2/sites-available ,a2ensite它,并重新启动apache2服务器。 这将有效地在服务器上创buildcustom_subdomain.example.com 。 我不确定的是如何创build一个服务器端脚本,它可以实际执行这些操作,因为它们需要根级别的访问(都创build一个新的虚拟主机文件并重新启动服务器)。 我不希望apache2作为ROOT运行,并假设我正确地转义用户所需的子域名项,以便它不包含恶意代码。 另外我的网站将有一些login安全forms。 我怎么能写这样的脚本? 我的后端将用(Django)Python或Node.js编写。 我希望创build这个接口的原因是我有一些能够轻松创build子域的协作者,但是谁又不应该有手动修改任何apacheconfiguration的能力。