【问题标题】:Get notified when a file got uploaded to server by email当文件通过电子邮件上传到服务器时收到通知
【发布时间】:2016-10-07 00:12:21
【问题描述】:

我的服务器被黑了,我希望在我的网站上传或修改任何文件时通过电子邮件通知脚本或任何内容 我在看 https://stackoverflow.com/questions/35196640/get-notified-when-a-file-got-uploaded-to-serverBest way to monitor file system changes in linux 但是没看懂路 你能指导我一步一步吗?

【问题讨论】:

  • 很抱歉,但在这里使用的问答风格无法回答如此广泛的问题。一般注意事项:您的主要目标应该是防止此类事情发生,从而保护您的系统!所以这里的主要问题是:如何其他人修改了您的文件,以及您将来如何防止这种情况发生。
  • 在查看访问日志后,我知道他/她是如何入侵我的网站的,但我不确定这是唯一的方法,因此我需要知道是否有任何脚本在何时通过电子邮件通知我上传到我网站的任何文件,以便我尽快解决问题并防止黑客对我的网站、数据库和服务器进行任何操作
  • 我能想到的唯一方法是让一个 cron 作业为所有相关文件创建校验和,并将其与以前的版本进行比较。如果它不同,则意味着 something 已经改变,为什么会改变。什么是可能的以及如何取决于您的环境的详细信息,您将不得不在问题中添加很多细节。
  • 我的意思是例如:当有人利用我网站中的任何文件并在其上上传 shell 时,我收到通知说我的网站文件夹中有一个新文件 + 该文件的路径,结果示例: new file uplodaed path /public_html/images/shell.php
  • 是的,我们了解您在寻找什么。我给了你一个关于如何做的提示。并询问有关您的环境的更多详细信息。不是关于你想做什么......

标签: php linux server


【解决方案1】:

我有一个简单的解决方案,它还可以备份我自己对 CMS 所做的更改。它适用于我管理的所有网站(大约十几个,一些平面 HTML,一些 Joomla,一些 Wordpress,在几个不同的主机上。这为我节省了数十次用户错误(“嗨,我更新了我的 wordpress 模板和现在整个网站都坏了”)到服务器范围的黑客攻击(“亲爱的托管客户,我们的 Plesk 最近被黑客入侵了,请更改您的所有密码并检查您网站的内容”)。

唯一的要求:您需要访问每天至少运行一次的 Linux 机器。对我来说,这是我每天都使用的桌面,但您可以在自己的网络服务器上运行它。

不管怎样,这里是:

  • 将所有 FTP 站点设置为 lftp 中的书签
  • 为您托管的每个站点设置本地 git 存储库 (git init && git commit -m "first commit")
  • 确保 cron 正在运行(在大多数系统上都是这样),并且它可以通过电子邮件将每个作业的结果发送给您(您可能需要将 you@localhost 重定向到您的公共电子邮件地址)
  • 将此行添加到crontab

51 03 * * * ~/bin/updateMirrors.sh

  • 并将此文件另存为 ~/bin/updateMirrors.sh

    #!/bin/bash    
    # step through the list of FTP bookmarks, mirror each one.
    # seems to take anywhere from 2 to 10 hours
    # cron should email the results to you@localhost
    
    while read SITE; 
      do NAME=`echo $SITE|cut -d' ' -f1`;
      echo $NAME `date` ;
      cd ~/$NAME/httpdocs;
      # if there's hackage, try this without the -X *-cache-* lines (someone might evilly install a trojan that looks like a cache file)
      lftp $NAME -e "mirror --verbose -X *-cache-*;quit"|grep -E "Transfer|Permission";
      git add . && git commit -m "updateMirrors.sh"
      echo ---------------------------------------------------------------------------
    done <~/.lftp/bookmarks
    
    ## if you find hackage, do this:
    ## git log --name-only
    ## git checkout [last uuid before hacking started]
    ## lftp and mirror -eR --exclude .git*
    

在过去的几年里,每天早上,我都会在收件箱中收到一封电子邮件,如下所示:

wecan.be Tuesday 29 November 05:15:59 AEDT 2016 On branch master nothing to commit, working directory clean
---------------------------------------------------------------------------
handyWarhols Tuesday 29 November 05:17:46 AEDT 2016 On branch master nothing to commit, working directory clean
---------------------------------------------------------------------------
colbourneave Tuesday 29 November 05:17:53 AEDT 2016 Transferring file `components/com_content/models/cache.db'
Transferring file `logs/error.php'
[git_head 657d5dc] updateMirrors.sh
 2 files changed, 141 insertions(+), 2 deletions(-)
---------------------------------------------------------------------------

您可以看到一个站点的错误日志已更新。如果其中一个站点被黑客入侵,那很明显,因为签入了新文件(一旦我弄清楚它是如何发生的,我就可以回滚)。每当我或其他任何人向任何网站添加内容,或者如果我更新插件或模板时,都会签入新文件。

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 2015-08-22
    • 2022-10-18
    • 2010-09-21
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多