自宅のサーバ環境には、nire.com のサービス以外に IIS や apache サーバがいくつかあり、IP アドレスを共有するために apache によるリバースプロキシサーバを立てています。
リバースプロキシの背後にある Web サーバで、ブログのコンテンツは見せたいけど、各種ステータスや admin 系の URL は存在していても外に見せたくないことがありますよね。
そんなとき、httpd.conf または conf.d/*.conf に「LAN 上からのアクセスのみ許可する」ディレクティブを書くときは、注意した方が良さそうです。
パッケージされていたりサンプルとして書かれている *.conf ファイルはたいてい、次のような設定になっています。(LAN に振られた IP アドレスを 192.168.1.0/24 とする)
<Directory /var/www/abcde>
Order deny,allow
Deny from all
Allow from 192.168.1
</Directory>
この Web サーバに IP アドレスが専用に割り振ってあるときは、これで OK のはず。問題はリバースプロキシ経由で外からアクセスされる場合で、Web サーバから見ると、同一 LAN 上のクライアント (= リバースプロキシサーバ) からアクセスされているように見えるために、結局外からアクセスされ放題! という状態になってしまいます。
私は Order ディレクティブを逆にしています。
(以下はリバースプロキシサーバが 192.168.1.2 の場合)
<Directory>
Order allow,deny
Allow from 192.168.1
Deny from 192.168.1.2
</Directory>
アクセスはデフォルト拒否
Allow で LAN 上からのアクセスは許可
Deny でリバースプロキシからのアクセスは却下
これで、目的とするアクセス制限ができます。
mod_rpaf などを使用していると、ついついリバースプロキシからのアクセスなのを忘れてしまいがちなので注意しましょう。
コメントを残す
コメントを投稿するにはログインしてください。