public_html 目录的权限不断发生变化

public_html 目录的权限不断发生变化

过去两天,我们看到了一种非常奇怪的情况。在我们的网站上(基于 PHP/MySQL),我们遇到了以下情况 -

public_html 下有多个目录,全部归 apache:apache 所有。这些目录对所有人都具有执行权限。

我们看到这些目录的权限不断改变 - 执行权限不断被删除。我们无法弄清楚为什么会这样,是什么在做这样的事情?显然,令人担心的是,有人试图使用 apache 帐户(设置为 nologin 帐户)更改网站。

任何帮助,将不胜感激。

答案1

设置auditd(根据给出的信息这个答案) 并用它来识别是什么导致了变化。一旦你确定了是什么导致了变化,你就可以进入更有趣的问题“如何”和“为什么”。

答案2

您可以使用以下方式监视目录权限incron + inotify

  1. 设置文件夹监视public_html以进行审计:

    # auditctl -w /path/to/public_html -p warx
    
  2. 安装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)

注意uidgid

相关内容