Rakontanto de ludo

Peace cannot be kept by force. It can only be achieved by understanding.

ApacheのIPアドレスのアクセス制御で間抜けなことをした話

深夜の連投。

夜中の3時です。寝れなくてTwitterでポエマー的なつぶやきをしたのですが、どうせこんな時間に誰も見てやしないだろうと思っていたら2〜3人にいいねされて少し驚き、ブログへ戻って来ました。

メインはこちらの記事なので、↓こっちをご覧ください。

tomohiko37-i.hatenablog.jp

この記事は単なる備忘録です。

仕事で10年以上前に開発された古いシステムに機能追加することをやっていて、たまたまApacheの設定を変更していたら間抜けなことをやっていたという話です。

Apacheと言えば httpd.conf をいじってあれこれ設定を変更しますが、今回はIPアドレスで来て欲しくない人を制限するように変更していたので、

<Location / >
  order deny,allow
  deny from all
  allow from 192.168.xx.xxx
</Location>

と書いて許可されていないIPアドレスからアクセスされたら403が出るようにしたまではよかったのですが、せっかくなので403の画面を用意してそっちへ飛ばしておいてよ、ということになり、

ErrorDocument /error/403.html

とドキュメントルートに置いてみたら何やら変なエラーが出た。

Forbidden

You don’t have permission to access / on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

自宅で記憶を頼りに書いてるのでエラーはネットで調べて確かこれだったというのを載せてるだけですが。

あれれ。

403.htmlに遷移しないや、と思って冷静に考えてみたら当たり前の話で、403.htmlを置いてる場所そのものもアクセス制御されてるという話。

追加で、

<Location /error >
  order deny,allow
  deny from all
  allow from all
</Location>

という設定を書いた。エラーページを置いてる場所だけは全員が見れなきゃダメだ。当たり前の話なんだけど忘れがちな話でした。