我试图在 Cenots 6.10 下使用 httpd24 徒劳地安装 mod_evasive 和 mod_security。
我已经尝试过这个解决方案:https://github.com/shivaas/mod_evasive,下载:mod_evasive24.c $APACHE_ROOT/bin/apxs -i -a -c mod_evasive24.c
我收到这条消息:
/usr/lib64/apr-1/build/libtool --silent --mode=编译 gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param= ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr- 1 -I/usr/include/apr-1 -c -o mod_evasive24.lo mod_evasive24.c && touch mod_evasive24.slo mod_evasive24.c:在函数“create_hit_list”中:mod_evasive24.c:122:警告:在返回非的函数中没有返回语句void mod_evasive24.c:在函数“access_checker”中:mod_evasive24.c:146:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:150:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:162:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:162:错误:“request_rec”没有名为“useragent_ip”的成员âuseragent_ipâ mod_evasive24.c:169:错误:ârequest_recâ 没有名为 âuseragent_ipâ mod_evasive24.c:184:错误:ârequest_recâ 没有名为 âuseragent_ipâ mod_evasive24.c:191:错误:ârequest_recâ 没有名为 âuseragent_ipâ mod_evasive24.c:2 12:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:219:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:225:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:226:错误:“request_rec”没有名为“useragent”的成员_ipâ mod_evasive24 .c:232:错误:“request_rec”没有名为“useragent_ip”的成员 mod_evasive24.c:233:警告:忽略“system”的返回值,用属性 warn_unused_result 声明 mod_evasive24.c:在函数“destroy_hit_list”中:mod_evasive24.c:305:警告:无返回语句在返回非 void apxs 的函数中:错误:命令失败,rc=65536
答案1
由于 CentOS 6 有点过时,在我看来,最好的做法是将其升级到 CentOS 7。您似乎在使用 Apache 2.2 工具和 Apache 2.4 时遇到了麻烦。
解决您的问题的几个问题:
- 如果您使用的是 CentOS 6,我建议将其升级到 7;
- 至于
mod_evasive
,有相应的软件包; - 关于
mod_security
,困难的不是安装,而是配置适当地,不会干扰您当前的站点/解决方案。
要在 CentOS 7 中安装 mod_evasive 和 mod_security,您需要首先启用 EPEL 存储库:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-7*.rpm
然后执行以下操作:
sudo yum --enablerepo=epel install mod_evasive mod_security mod_security_crs
用于配置mod_evasive
,请参阅:使用负载均衡器而不是 Apache 来限制来自特定 IP 的事务
关于mod_security
,默认情况下它只记录事件。为了使其激活,安装后,您必须编辑/etc/httpd/conf.d/mod_security.conf
并更改SecRuleEngine
为On
并重新启动 Apache。
但是,我建议不要启用SecRuleEngine
但是,如果您不准备这样做,:
mod_security
自行调试;- 了解为什么您网站的某些部分可能会停止工作;
- 在默认配置上更正/跟踪要禁用的相应规则
mod_security
。