我在 Linux 机器上创建了 WordPress 网站,使用 Apache 作为 Web 服务,使用 MySQL 作为数据库服务。
最近黑客试图使用 POST 方法攻击网站。这些请求被服务器拒绝,但内存被这种连续的请求填满,Apache、MySQL 等服务停止运行。
所以我的问题是,我们如何才能防止此类攻击请求不使用服务器资源?是否有任何 mod_security 规则可用于明确拒绝攻击而不使用服务器资源?请提供建议。
以下是 POST 攻击的日志条目。
134.175.91.239 - - [30/Nov/2018:15:15:34 +0000] "POST /wp-admins.php HTTP/1.1" 403 743 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:36 +0000] "POST /m.php?pbid=open HTTP/1.1" 403 743 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:38 +0000] "POST /db_dataml.php HTTP/1.1" 404 30163 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:43 +0000] "POST /mx.php HTTP/1.1" 404 30168 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:47 +0000] "POST /xshell.php HTTP/1.1" 404 30173 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:48 +0000] "POST /qq.php HTTP/1.1" 404 30158 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:15:58 +0000] "POST /phpstudy.php HTTP/1.1" 404 30163 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:16:02 +0000] "POST /phpStudy.php HTTP/1.1" 404 30188 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:16:06 +0000] "POST /weixiao.php HTTP/1.1" 404 30173 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:16:07 +0000] "POST /feixiang.php HTTP/1.1" 404 30173 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:16:10 +0000] "POST /ak47.php HTTP/1.1" 404 30168 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:28.0) Gecko/20100101 Firefox/31.0"
134.175.91.239 - - [30/Nov/2018:15:19:26 +0000] "POST /ws/v1/cluster/apps/new-application HTTP/1.1" 404 30150 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
答案1
您尚未分享有关服务器资源使用情况的任何详细信息,因此很难对此提出任何建议。正如您自己所说,由于 MySQL 被 OOM 杀死,它可能需要更多 RAM。
一些提示:
- 考虑使用
php-fpm
而不是mod_php
。它可以减少 apache 的内存使用量,并允许您使用 apache 的事件工作模型。 - 用于
fail2ban
禁止违规 IP 地址。不过,如果您没有正确设置以满足您的需求,请注意禁止合法 IP 地址。