如何在 Ubuntu 中跟踪特定日志?(CPU)

如何在 Ubuntu 中跟踪特定日志?(CPU)

我们有这个 EC2 实例:T2.medium,运行 apache,有 4 个虚拟主机(4 个站点)。有时,CPU 会突然达到很高的水平,可能是受到攻击。

我发现我们的一些 wordpress 文件已被修改。

我如何检查谁在这些文件中写入了内容?我如何检查 CPU 日志以查看哪些进程影响了它?我可以使用任何 CloudWatch 指标吗?

我们一直在对服务器进行一些强化:更新、运行 AWS Inspector、lynis、修改 ssh 配置文件。

有什么方法可以查看是谁以及他们如何进入并修改了这些 wordpress 文件?

您还推荐哪些其他强化措施?

答案1

这里有几个问题。

谁对文件进行了写入

操作系统不会记录这些信息,但是有一些线索:

  • 修改日期
  • 文件权限

使用文件的修改日期来缩小 Apache 访问日志的搜索范围。至少检查一下POST该时间段内的任何请求和登录。例如,这将显示所有登录尝试:

zgrep 'POST /wp-login.php' /var/log/apache2/*access*

然后,您可以根据文件修改时间的时间范围过滤输出。

如果已修改的文件只有某些系统用户可以写入,那么您可以合理地确定它们是由这些系统用户修改的。

哪些进程占用了 CPU

默认情况下不记录此信息。如果尝试“实时”监控服务器(例如使用 top)不切实际,则可以使用各种日志记录工具。这是一个 serverfault 问题为此目的,推荐使用各种工具。

确定您是否遭到黑客攻击

这是一个更大的话题,但既然您提到了对 WordPress 文件的修改,那么我要从确定这些修改是否是恶意的开始。运行 WordPress 恶意软件扫描程序,和/或查找恶意模式,例如eval(base64_decode(、php web shell 等。如果您不确定,请坚持不懈、彻底地进行,如果需要,请发布更多问题。

确定攻击者如何获得访问权限

如果您确信网站已被黑客入侵,您可以尝试确定攻击者如何获得访问权限。最有可能的两种方式是通过登录管理员用户帐户或通过漏洞。在大多数情况下,很难高度确定。但如果您一直在运行具有已知漏洞的软件,尤其是具有公开漏洞并允许远程代码执行的软件,那么这种情况很有可能发生。如果 WordPress 管理员用户的凭据较弱,或者他们的凭据被泄露,那么这是非常有可能的。

进一步强化

如果您认为服务器已被入侵,那么您应该参考关于这个问题的经典答案

答案2

这不是一个完整的答案,而是对 sceox 的答案的补充。

你应该看看强化WordPress, 和Wordpress 文件权限

我已经设置如下:

  • 一个用户/组拥有该文件
  • PHP 属于一个可以读取 Wordpress 文件(包括插件/主题等)但不能写入的组。它可以写入上传文件夹,以便使用 Wordpress GUI 上传图像。这使得互联网上的任何东西都很难破坏 Wordpress 文件
  • 我有一个使用Wordpress 命令行界面在凌晨 2 点更新 Wordpress 和插件。
  • 任何新插件都必须使用 Wordpress CLI 安装。虽然不太方便,但更安全。

这是我使用的脚本,它在 cron 作业上运行

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

echo
echo Wordpress Update and Permissions Script Starting
echo "$(date) Wordpress update and backup started"   >> /var/log/me/my-wordpress-upgrades 2>&1

# Function to upgrade wordpress
function upgrade_wordpress() {
    # set up folders in the formats needed
    dir=$1
    uploads=$1/wp-content/uploads

    echo Upgrading Wordpress core, plugins, themes in ${dir}
    sudo -H -u www-user bash -c "wp core update --path=$dir"
    sudo -H -u www-user bash -c "wp plugin update --all --path=$dir"
    sudo -H -u www-user bash -c "wp theme update --all --path=$dir"

    echo Setting wordpress permissions to 755 files and 644 folders
    find ${dir} -type d -exec chmod 755 {} \;
    find ${dir} -type f -exec chmod 644 {} \;
    chmod 440 ${dir}/wp-config.php

    echo Making uploads folder ${uploads} writable by the web server
    chown -R www-data:www-data ${uploads}

    echo Wordpress upgrade for $1 complete
    echo
    echo
}


echo Setting /var/www permissions to www-user:www-data
chown -R www-user:www-data /var/www/

# Run Wordpress update for each wordpress install
upgrade_wordpress /var/www/blog1
upgrade_wordpress /var/www/blog2

相关内容