なんでもなんでも2HTMLの書き方利用上の注意リンク集ホーム

黒木のなんでも掲示板:アクセス制限の仕方

ロボット対策mod_rewrite に関する説明も参照せよ。


最新の更新:      1999年1月22日
前回の更新:      1998年3月31日
前々回の更新:     1998年3月9日
さらにそのまえの更新: 1998年2月19日

詳細については、apache のマニュアルなどを見て下さい。全部見るのは大変なので、 require directive, Module mod_access, Satisfy あたりを最初に見ると良いです。初心者の方は、ネットサーフレスキュー[Web裏技] - ホスト名でアクセス制限 -」の方を始めに見た方がわかり易いと思います。

「そのやり方は間違っている!」もしくは「もっと良いやり方がある!」と思った方は、筆者宛のメールもしくは掲示板への書き込みで知らせて下さい。 (掲示板の方にも関連記事があります。)

なお、CGI へのアクセス制限の仕方については、ゲスッメモリアルが詳しいので覗いてみましょう。掲示板あらしを過去にやっていた本人による解説です。


仮定


パスワードによるアクセスの制限の仕方

上の仮定のもとで、以下の4つのファイルを作成すれば、掲示板へのアクセスにパスワードによる制限がかかります。

  1. /home/name/public_html/BBS/.htaccess
  2. /home/name/public_html/BBS/spool/.htaccess
  3. /home/name/etc/htpasswd
  4. /home/name/etc/htgroup

1. /home/name/public_html/BBS/.htaccess の中身の例

AuthUserFile /home/name/etc/htpasswd
AuthGroupFile /home/name/etc/htgroup
AuthName "Restricted Access Area"
AuthType Basic
require group guest

実際には、これにこの掲示板システムに付属の dot_htaccess の内容を加えた方が良いでしょう。

2. /home/name/public_html/BBS/spool/.htaccess の中身は /home/name/public_html/BBS/.htaccess と同じでも良いし、無くても良い。

3. まず、apache 付属の htpasswd のソース (support/htpasswd.c) を make htpasswd によってコンパイルして、パスの通ったディレクトリーにコピーし、rehash を実行する。以下の作業によって、htpasswd を作成する。

cd /home/name/etc
htpasswd -c htpasswd user1
user1 のパスワードを打ち込む
htpasswd htpasswd user2
user2 のパスワードを打ち込む
    ......
htpasswd htpasswd user5
user5 のパスワードを打ち込む

ここでは人数が 5 人になっていますがこれは適当に変えてください。

4. /home/name/etc/htgroup の中身の例

vip: user1 user2
guest: user1 user2 user3 user4 user5

ドメイン名によるアクセスの制限の仕方

/home/name/public_html/BBS/.htaccess の中身を以下のようにすれば、*.hoge.hoe.jp 以外からのアクセスはできなくなります。

order deny,allow
deny from all
allow from .hoge.hoe.jp

逆に、*.hoge.hoe.jp および *.moge.moe.jp からの嫌な奴のアクセスのみを拒否したい場合は、

order allow,deny
allow from all
deny from .hoge.hoe.jp .moge.moe.jp

とします。より詳しい説明については Module mod_access を読んで下さい。


ドメイン名とパスワードの両方を用いた制限の仕方

/home/name/public_html/BBS/.htaccess の中身を以下のようにすれば、*.hoge.hoe.jp 以外からのアクセスにはパスワードを要求するようになります。

AuthUserFile /home/name/etc/htpasswd
AuthGroupFile /home/name/etc/htgroup
AuthName "Restricted Access Area"
AuthType Basic

Satisfy any
require group guest
order deny,allow
deny from all
allow from .hoge.hoe.jp

逆に、*.hoge.hoe.jp および *.moge.moe.jp からのアクセスに対してのみパスワードを要求したい場合は、終わりの3行を次のように変更します。

order allow,deny
allow from all
deny from .hoge.hoe.jp .moge.moe.jp

より詳しい説明については、マニュアルの require directive, Module mod_access, Satisfy を読んで下さい。


書き込みのみの制限の仕方

公開日記などにこの掲示板システムを使いたい場合は、自分自身だけが書き込めるようにパスワードでアクセス制限する必要があります。そうしたい場合は、/home/name/public_html/BBS/.htaccess の内容を以下のようにします。

AuthUserFile /home/name/etc/htpasswd
AuthGroupFile /home/name/etc/htgroup
AuthName "Restricted Access Area"
AuthType Basic

<Files *.cgi>
require user user1
</Files>

ファイル単位のアクセス制限については、マニュアルの <Files> を読み、<Location>, <Limit> を参考にして下さい。


黒木 玄 <kuroki@math.tohoku.ac.jp>