0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ApacheのDDoS対策

Posted at

WordPressで多くのサイトを運営しているのですが、どうも時々DDoS攻撃っぽいアクセスバーストが見られるので対策をすることにしました。

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

アクセスログから怪しいアクセスを分析

上のグラフを見ると9:00代にCPU負荷が高くなっているのでその周辺のApacheアクセスログを見ると以下の怪しいアクセスを発見。

  1. WordPressのxmlrpc.phpへのアクセスが頻繁に見られる
  2. CONNECTメソッドアクセスが頻繁に見られる
  3. 特定のIPアドレスから存在しないURL(自動生成したアドレスっぽいパターンがある)へのアクセスが頻繁に見られる

apacheの設定ファイル内でアクセスブロックするように設定して対応することにしました。
具体的にはsecurity.confファイルを作成し、その中で設定、httpd.confでsecurity.confを読み込むように設定しました。

WordPressのxmlrpc.phpへのアクセスブロック

xmlrpc.phpはDDoSの温床にされやすいみたいですね。検索するとたくさん情報が出てきます。

ってことで以下の記載を追加。

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

CONNECTメソッドのブロック

HTTPメソッドの中の一つがCONNECTですが、これはプロキシサーバに対して、あるURLに接続したいと要求する場合に使うメソッドです。
そんなメソッドをうちのサーバに向けて送っている時点で怪しい。。。
ってことでGETとPOST以外はブロックする形にしました。

security.conf
  <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アドレスとしてデータベース登録されているので明確にブロック。

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

最終的なsecurity.conf

最終的に以下のような記述になりました。

security.conf
<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を運営しているので.htaccessではなく、apacheのconfファイル内で設定しました。今後、別の怪しいアクセスがあったときはこのファイルに追記していこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?