我在Ubuntu 16.04 Machine上遇到exception情况。 我安装了LAMP,ufw,fail2ban e现在作为一个DOS保护我安装了mod_evasive。 Mod_evasive似乎没有阻塞任何东西,不会logging任何东西,我在var / log / apache2 / error.logs中看到的唯一日志,当我重新加载页面足够快,以触发它: [evasive20:error] [pid 17849] [client *..***.179:9189] client denied by server configuration:.. 除此之外。 我经历了所有的步骤,创build了一个日志目录,授予权限,重新安装,尝试了所有的东西,但问题似乎并没有被固定在所有! 这是我目前的configuration: <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 1 DOSSiteCount 5 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 15 #DOSEmailNotify [email protected] #DOSSystemCommand "su – someuser -c '/sbin/… %s …'" DOSLogDir "/var/log/apache2/evasive.log" </IfModule> 任何想法? 编辑:我现在能够看到日志 – […]
我想打印mod_securityexception分数到Apache错误日志。 我使用setenv设置环境variables, %{name}e语法将其打印在日志中。 Modsecurityconfiguration: SecAction "id:90100,phase:5,pass, nolog, setenv:ModSecAnomalyScoreIn=%{tx.anomaly_score}, setenv:ModSecAnomalyScoreOut=%{TX.outbound_anomaly_score}" Apacheconfiguration: ErrorLogFormat "[…] [anomaly_score_in: %-{ModSecAnomalyScoreIn}e, anomaly_score_out: %-{ModSecAnomalyScoreOut}e ]" 但输出为空: […] [anomaly_score_in: -, anomaly_score_out: – ] 如果我添加SecAction "id:9990101,phase:5,pass, log, msg:'in: %{env.anomaly_score}, out: %{env.ModSecAnomalyScoreOut}' ,打印成绩,但在新的日志行。 我哪里做错了? ErrorLogFormat中的%{name}e是否等于%{VARNAME}e ?
我有我的服务器托pipeWordpress网站上安装mod_security(apache2)。 当我试图通过从磁盘上传一个.zip文件来安装一个插件时,它会失败,并在日志中出现403 Forbidden和“Multipart parser detected a possible unmatched boundary”。 在我的configuration中,这个规则是在/etc/modsecurity/modsecurity.conf第82行,规则#200003中定义的。 我试图在REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf中禁用它,但它不起作用。 在/etc/modsecurity/modsecurity.conf中禁用它是否安全? 为什么排除规则不起作用?
是否有可能使用mod_security和apache 2.2来限制基于HTTP头值的请求? 我正在尝试这些规则: SecRule REQUEST_URI ".+" "phase:1,pass,t:none,id:'20',nolog,initcol:resource=%{HTTP:custom-id},setvar:resource.requests.byid=+1,expirevar:resource.requests.byid=1" SecRule resource:requests.byid "@gt 5" "phase:1,pass,t:none,id:'21',log,logdata:'GENERAL blocking by id %{HTTP:custom-id} req/sec: %{resource.requests.byid}',setvar:resource.block.byid=1,expirevar:resource.block.byid=5" SecRule resource:block.byid "@eq 1" "phase:1,deny,t:none,id:'22',nolog,status:509" 对这个应用程序的请求总是有自定义的HTTP头custom-id ,这是唯一的每个客户端,我想确保没有客户端可以轰炸服务器。 标头严格执行,不可欺骗。 速度限制部分是全局应用,而不是每个自定义的id值,因为所有的请求被拒绝超过5 rps,我也看不到在mod_security日志文件中的头值。 我已经尝试了第一阶段和第二阶段的规则,但都没有成功。
我有一个无法访问mod-security日志的Apache2服务器: prim@xxxx:~$ apachectl -V AH00526: Syntax error on line 196 of /etc/modsecurity/modsecurity.conf: ModSecurity: Failed to open the audit log file: /var/log/apache2/modsec_audit.log Action '-V' failed. The Apache error log may have more information. prim@xxxx:~$ sudo ls -la /var/log/apache2/modsec_audit.log -rw-rwxrwx 1 root www-data 101792 Oct 22 16:37 /var/log/apache2/modsec_audit.log 我有点困惑,因为每个人(所有者,团体,其他人)都有权打开日志文件。 编辑: prim@xxx:/var/log/unattended-upgrades$ sudo -u www-data touch /var/log/apache2/modsec_audit.log touch: […]
总结:文件/etc/modsecurity/modsecurity.conf SecRuleRemoveByID 981405行已经停止工作,我不知道为什么。 我pipe理一个在AWS上运行的虚拟Ubuntu主机,其操作系统版本是14.04.5 LTS。 除了基本的分配之外,还有less量的软件包被安装。 这些包括ntp , ssmtp , mailutils , apache2* , oracle-java8*和postgresql*包。 截至昨天,所有可用的软件包升级都已安装。 所以,主机正在运行一个mod_security的Apache web服务器。 我正在使用mod_security规则的默认设置,一些规则被注释掉了。 /etc/modsecurity/modsecurity.conf的内容是(删除了空行和注释): SecRuleEngine On SecRequestBodyAccess On SecRule REQUEST_HEADERS:Content-Type "text/xml" \ "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML" SecRequestBodyLimit 13107200 SecRequestBodyNoFilesLimit 131072 SecRequestBodyInMemoryLimit 131072 SecRequestBodyLimitAction Reject SecRule REQBODY_ERROR "!@eq 0" \ "id:'200001', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}',severity:2" SecRule MULTIPART_STRICT_ERROR "!@eq 0" \ "id:'200002',phase:2,t:none,log,deny,status:44, \ […]
在其中一个虚拟主机的error_log中,我发现了成千上万的这样的行,全都来自同一个IP: [Mon Apr 19 08:15:59 2010] [error] [client 61.147.67.206] mod_security: Access denied with code 403. Pattern match "(chr|fwrite|fopen|system|e?chr|passthru|popen|proc_open|shell_exec|exec|proc_nice|proc_terminate|proc_get_status|proc_close|pfsockopen|leak|apache_child_terminate|posix_kill|posix_mkfifo|posix_setpgid|posix_setsid|posix_setuid|phpinfo)\\\\(.*\\\\)\\\\;" at THE_REQUEST [id "330001"] [rev "1"] [msg "Generic PHP exploit pattern denied"] [severity "CRITICAL"] [hostname "xxxx"] [uri "//webmail/config.inc.php?p=phpinfo();"] 鉴于情况是多么的明显,为什么mod_security不会自动添加至less该IP来拒绝规则? 有没有人没有想过这个之前…
我search了很多,并试图对.htaccess文件进行各种调整,以尝试closures特定cgi脚本(超级上传器)的mod_security,但似乎没有任何效果。 我看到网上最stream行的一个是: #closuresmod_security过滤。 SecFilterEngineclosures #下面可能是不需要的, #但是比对不起更安全。 SecFilterScanPOSTclosures 这看起来相对简单 – 如果“SecFilterEngine”在某种程度上与mod_security有关。 耻辱它绝对没有效果! 有没有人有build议的方式,我可以简单地禁用它的请求到我的cgi-bin目录中的任何文件?
最近我的网站的index.php文件被replace为一些恶意的JavaScript代码。 我真的不知道它是如何被添加到页面。 今天当我试图通过FTP下载文件时,我的本地反病毒软件给了我一个警告。 我想这意味着它不是从我的电脑上传。 有没有办法在我的VPS(运行CentOS 5和Cpanel / WHM)上安装防病毒软件? 什么是mod_security 。 今后会有帮助吗?
我有一个debian的“挤压”安装,但这个版本提供的mod_security是相当古老的。 所以我想添加一个额外的行到我的sources.list来获得mod_security的“wheezy”版本(wheezy =当前版本“squeeze”之后的版本)。 我应该添加到sources.list来接收下一个可用版本的mod_security? 这是我在sources.list中的一个例子: deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free mod_sec的当前名称是libapache-mod-security