过去两天,我们看到了一种非常奇怪的情况。在我们的网站上(基于 PHP/MySQL),我们遇到了以下情况 -
public_html 下有多个目录,全部归 apache:apache 所有。这些目录对所有人都具有执行权限。
我们看到这些目录的权限不断改变 - 执行权限不断被删除。我们无法弄清楚为什么会这样,是什么在做这样的事情?显然,令人担心的是,有人试图使用 apache 帐户(设置为 nologin 帐户)更改网站。
任何帮助,将不胜感激。
答案1
设置auditd
(根据给出的信息这个答案) 并用它来识别是什么导致了变化。一旦你确定了是什么导致了变化,你就可以进入更有趣的问题“如何”和“为什么”。
答案2
您可以使用以下方式监视目录权限incron + inotify。
设置文件夹监视
public_html
以进行审计:# auditctl -w /path/to/public_html -p warx
安装
incron
并创建配置文件来监视所有子目录public_html
:find /path/to/public_html -type d -print0 | xargs -0 -I{} echo "{} IN_ATTRIB sendmail.sh" >> /etc/incron.d/webroot.conf
sendmail.sh
包括如下一行简单代码:
#!/bin/bash
echo "`date +%c`" | mail -s "someone has changed permission in public_html" [email protected]
每当有人更改权限时,它都会通过电子邮件发送给您。登录到您的服务器并使用 检查谁进行了更改ausearch -f /path/to/public_html
,您将看到类似以下内容:
time->Mon Aug 8 01:12:41 2011
type=PATH msg=audit(1312740761.563:2279002): item=0 name="/var/www/html/awstats/" inode=1732554 dev=08:03 mode=040775 ouid=48 ogid=48 rdev=00:00
type=CWD msg=audit(1312740761.563:2279002): cwd="/var/www"
type=SYSCALL msg=audit(1312740761.563:2279002): arch=c000003e syscall=90 success=yes exit=0 a0=14cb0d0 a1=1b4 a2=ffffffb6 a3=1b4 items=1 ppid=12660 pid=12901 auid=510 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=pts1 ses=360563 comm="chmod" exe="/bin/chmod" key=(null)
注意uid
和gid
。