[Apache] うざったい不正アクセスに対して403エラーを返す

最近、管理しているサイトで存在しないページへの不正アクセスがやたら増えたので、まるごと403エラーを返すように設定したので、その時のメモです。

現象

存在しないページ、今回の場合は

  • ogPipe.aspx
  • ogShow.aspx
  • ogPipe.aspx

に対して、毎日各100PVほどアクセスがきてうざったい状態。(ogPipeって何?ある種の攻撃なんだろうけど、ネットで調べても出てきません)

しかも、毎回違うIPアドレスとブラウザからくるので、IP単位の拒否もできないので状況です。(多分ブラウザは偽装でしょうけど)

対策

当該ページへアクセスがきたら403エラーを返すようにしました。

Apacheの設定

ファイルに対するアクセス拒否を設定します。

<Files ~ "^(ogPipe\.aspx|ogShow\.aspx|ogPipe\.aspx)$">
  Deny from all
</Files>

CodeIgniterで作ったサイトだったので、このままでは動きません。CodeIgniterはすべてのアクセスをindex.phpへのアクセス変換させる仕様なので、対象ファイルを除外設定にします。WordPressなどのPHPフレームワーク系でも同じかと思います。

RewriteCond $1 !^/(index\.php|ogPipe\.aspx|ogShow\.aspx|ogPipe\.aspx)

これで、

  • ogPipe.aspx
  • ogShow.aspx
  • ogPipe.aspx

この3つのページへアクセスが来た時には、PHPの処理を入れる前にApache側で403表示してくれます。


不正アクセスは、サーバーに無駄な負荷もかけるので使ってくれているユーザーのためにもなりません。なるべく効率よく除外したいですね。