我现在在CentOS 6.5上, 不久前安装了mod_evasive,但电子邮件通知和日志记录从未奏效...
进入消息日志我有很多这样的行...
mod_evasive[4548]: Couldn't open logfile /var/log/httpd/evasive/dos-157.xxx.xxx.xxx: Permission denied
在CentOS上我认为目录/ var / log / httpd / evasive的所有者应该是“apache”,那就是755 ..
没办法......
然后,mailx已经安装并更新了......有人说看看mod_evasive20.c但我在CentOS上找不到这个mod_evasive20.c文件......哪里可以?是否可以使用sendmail而不是mailx发送?感谢
答案 0 :(得分:2)
在CentOS / var / log / httpd上有权限700并且由root拥有,因此你需要将/ var / log / httpd / evasive移动到/ var / log / evasive并执行:
chown 0:apache /var/log/evasive
chmod 770 /var/log/evasive
如果您使用SELinux:
semanage fcontext --add -t httpd_sys_rw_content_t "/var/log/evasive(/.*)?"
restorecon -r /var/log/evasive
并将此行添加到/etc/httpd/conf.d/mod_evasive.conf:
DOSLogDir /var/log/evasive
答案 1 :(得分:1)
理解,
谁有同样的问题希望这有帮助...
如果mod_evasive无法在dir上写,它甚至不会发送电子邮件 如此注释掉DOSLogDir,所以它写入tmp ...
不知道是否可以使用其他目录但目前问题已解决
答案 2 :(得分:1)
好的,你面临两个问题,第一个文件是mod_evasive logdir的权限,第二个是找不到邮件命令。
1)“DOSLogDir”的文件权限
您必须确保apache的用户通过整个目录树执行和写入权限,以“DOSLogDir”为目标。 请参阅ubuntu系统中的此示例
root@ubuntu:/var/log# ll
drwxr-xr-x 3 root adm 4096 Mar 10 14:06 apache2/
root@ubuntu:/var/log# ll apache2
drwxrwxr-x 2 root www-data 4096 Mar 10 14:25 mod_evasive/
root@ubuntu:/var/log# ll apache2/mod_evasive/
-rw-r--r-- 1 www-data www-data 5 Mar 10 14:25 dos-172.16.245.1
-rw-r--r-- 1 www-data www-data 5 Mar 10 14:19 dos-172.16.245.129
2)访问邮件二进制文件
邮件二进制文件在mod_evasive20.c中定义,第45行:
#define MAILER "/bin/mail %s"
尝试在mailx上使用mod_evasive
使用的符号链接ln -s $(which mailx) /bin/mail
答案 3 :(得分:0)
在centos7中创建新项目时,我遇到了同样的问题。
ErrorLog /var/log/httd/mydomain_error.log
CustomLog /var/log/httpd/mydomain_access.log
解决方案:
您需要禁用SELinux,问题将得到解决。
您需要遵循以下步骤。
1)检查SELinux状态
sestatus
OutPut会像这样
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
2)禁用SELinux
您可以使用以下命令将SELinux模式从目标临时更改为许可:
sudo setenforce 0
您可以在此处查看更多信息:https://linuxize.com/post/how-to-disable-selinux-on-centos-7/