AWS请求太多,阻止IP地址

时间:2015-03-16 15:31:59

标签: wordpress amazon-web-services

您好我在我的AWS服务器上运行wordpress。并且这个服务器被来自某些IP地址的持续请求所淹没。我怎么能阻止他们?

80.82.78.112 - - [16/Mar/2015:15:29:58 +0000] "POST /xmlrpc.php HTTP/1.0" 200 595 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

每一秒我都会从相同的IP地址获得大约30-40个请求。这会减慢我的服务器速度。

2 个答案:

答案 0 :(得分:1)

希望这些信息有助于未来的Google员工,我希望通过配置步骤扩展Diego的建议,让我在EC2服务器上使用fail2ban进入工作状态。

环境:

  • Amazon Linux AMI发布2017.09
  • Apache 2.4.27

1。为Amazon Linux安装和配置正确版本的fail2ban

根据Protecting your Amazon Linux WordPress server using fail2ban的建议,安装与Amazon兼容的版本:

yum --disablerepo epel install fail2ban 

2。配置 jail.local wordpress.conf

此配置适用于HTTPS和HTTP,可防止wp-login和xml-rpc攻击。

创建 jail.local

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

修改 /etc/fail2ban/jail.local (在底部添加):

[wordpress]
enabled = true
port = http,https
action = iptables-multiport[name="wordpress", port="http,https", protocol="tcp"]
# Uncomment if you want emails when someone is banned:
#        sendmail-whois[name=fail2ban-wp-bruteforce, dest="your-email@yourdomain.com"]
filter = wordpress
logpath = /var/log/httpd/*access_log
maxretry = 5

创建和编辑 /etc/fail2ban/filter.d/wordpress.conf

[Definition]
failregex = ^<HOST> - - .* "POST .*(wp-login.php|xmlrpc.php) HTTP/.*" (200|401|403)
failregex = ^<HOST> - - .* "GET .*(wp-login.php|xmlrpc.php) HTTP/.*" (200|401|403)

ignoreregex =

注意:我使用.htaccess规则为源自非白名单IP的任何wp-admin/*资源返回403(如How to Lock WordPress Admin Login with .htaccess Rules的步骤7中所述)。如果您不参与其中,则可以安全地从正则表达式中删除|403

相关说明:&#34;记分牌已满#34;错误可能表示DDoS攻击

DDoS攻击的另一个症状可能是/var/log/httpd/error_log和/或var/log/httpd/ssl_error_log中的大量错误,如下所示:

[Sun Apr 15 09:10:47.038565 2018] [mpm_worker:error] [pid 2847:tid 140053879679040] AH00288: scoreboard is full, not at MaxRequestWorkers

这让我陷入了疯狂的追逐,直到我将上述错误与此问题中讨论的access_log错误相关联;认为值得一提。

答案 1 :(得分:0)

您可以使用fail2ban来阻止违规的IP。 WP是一种广泛使用的CMS,是攻击的目标,但互联网上也充满了与人打斗的资源。

此处记录了使用fail2ban阻止Wordpress中的xmlrpc请求:Countering WordPress XML-RPC Attacks with fail2ban