HTTP POST Flood攻撃を受けた内容と対処方法【DDoS攻撃】



このようなエラーログが毎日多い日は100通も届いていました。

[日付] [:error] [pid ~:tid ~] 
[client 94.182.176.136:42228] [client 94.182.176.136] 
ModSecurity: Request body no files data length 
is larger than the configured limit (1048576).. 
Deny with code (413) [hostname "zbnr-hp.com"]
 [uri "/"] [unique_id "~"]

ずーっとApacheエラーかと思っていたのですが(「画像サイズが大きいのかな?でもなあ」と悩んでいた)、

ModSecurity:
リクエスト本文ファイルのデータ長が設定された制限(1048576)を超えていません..
コードで拒否(413)

アクセスログと照らし合わせたら、サイトを「HTTP POST Flood攻撃」されていたことが分かりました。

zbnr-hp.com 94.182.176.136 - - [日付] 
"POST / HTTP/1.1" 413 329 "-" "-"

定期的にPOSTされていたみたい。Botを使っているのか大体15分毎に来ます(2023年も来てる‥‥)

試しに「IP 94.182.176.136」でググってみたら、評判の良くないIPでした。

94.182.176.136 | Aria Shatel Company Ltd | AbuseIPDB

  • ホスト名 94-182-176-136.shatel.ir
  • 国 イラン

DoS、DDoS攻撃を防ぐ対策

IPアドレスをアクセス制限

.htaccess に追記して IPアドレスをアクセス制限しました。

deny from 94.182.176.136

エラーログはこのようになりました。

AH01797: client denied by server configuration

(クライアントはサーバー構成によって拒否されました)

  • レンタルサーバーでWAFやセキュリティを設定する
  • 常に最新のWordPressにバージョンアップしておく

国ごとにアクセス制限

今後、イランの色々なIPから攻撃されるようであれば、イランに割り振られているIP全て拒否しようかと。

Create an Access Control List to Block Countries or Continents」にアクセスしたら「Iran」→「Apache .htaccess Deny」にチェックを入れて「Create ACL」をクリックするとIPがずらっと表示されるので、それを.htaccess に追記します。