防止Apache服务器遭受DDoS攻击

我在WordPress上運營多個網站,但我注意到偶爾會出現類似DDoS攻擊的訪問暴增,因此我決定採取對策。

スクリーンショット 2022-08-09 11.17.54.png

分析可疑访问日志

根据上图,我们可以看出在9点左右CPU负载较高,因此我们查看了该时间段附近的Apache访问日志,发现了以下可疑访问记录。

    1. 经常看到对WordPress的xmlrpc.php的访问

 

    1. 经常看到对CONNECT方法的访问

 

    经常看到从特定的IP地址访问不存在的URL(存在自动生成的地址模式)

我决定在apache的配置文件中进行设置,以阻止访问。具体做法是创建一个security.conf文件,在其中进行设置,并在httpd.conf中设置以加载security.conf。

阻止对WordPress的xmlrpc.php的访问

xmlrpc.php似乎很容易成为DDoS的温床。如果搜索一下,会得到很多相关信息。

 

所以需要添加以下说明。

<Files xmlrpc.php>
  Order Allow,Deny
  Deny from all
</Files>

CONNECT方法的阻塞

在HTTP方法中,CONNECT是一种方法,当我们想要发送请求连接到某个URL时,我们会使用这个方法来发送到代理服务器。
如果一台服务器向我们的服务器发送了这样的方法,就有点可疑了…
所以我们决定将除了GET和POST之外的方法都进行阻止。

  <LimitExcept GET POST>
    order deny,allow
    deny from all
  </LimitExcept>

阻止特定IP地址的访问

这里有一个特定的IP地址,有大量的访问记录在不存在的URL上。举个例子,

    • s_se.php

 

    • s_e.php

 

    • beence.php

 

    ups.php

等等……

根据以下网站上查询的IP地址,因为该地址在数据库中被完全标记为可疑IP地址,所以需要明确地进行封锁。

 

  <RequireAll>
    Require all granted
    Require not ip xxx.xxx.xxx.xxx
  </RequireAll>

最终的安全配置文件。

最后最终的描述如下。

<Files xmlrpc.php>
  Order Allow,Deny
  Deny from all
</Files>

<Directory /[wordpress設置ディレクトリ]>
  <LimitExcept GET POST>
    order deny,allow
    deny from all
  </LimitExcept>
  <RequireAll>
    Require all granted
    Require not ip xxx.xxx.xxx.xxx
  </RequireAll>
</Directory>

总结

因为在同一台服务器上运行多个WordPress,所以我在apache的conf文件中进行了设置,而不是在.htaccess文件中。将来如果出现其他可疑访问,我打算在这个文件中进行追加。

广告
将在 10 秒后关闭
bannerAds