[Apache] うざったい不正アクセスに対して403エラーを返す
最近、管理しているサイトで存在しないページへの不正アクセスがやたら増えたので、まるごと403エラーを返すように設定したので、その時のメモです。
更新日: 2018.7.17公開日: 2018.2.9
現象
存在しないページ、今回の場合は
- 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表示してくれます。
不正アクセスは、サーバーに無駄な負荷もかけるので使ってくれているユーザーのためにもなりません。なるべく効率よく除外したいですね。