アクセス制限


ここでは特定の人にのみページを公開したいときのために ページを見るときにパスワードの入力が必要になるようにする設定法を解説する。

  1. パスワードを作る
  2. まず、ユーザ名とパスワードを管理するファイル(passwdfile)を作る。

    初めて作るときは、

    
    $ /usr/bin/htpasswd  -c /home/hoge/.usrs foo
    
    /home/hoge/.usrs → passwdfile の名前。
    -cオプション → passwdfile を作る。もしすでにあるなら古いほうを消去して、
                  新しいファイルを作る。
    foo → 登録するユーザー名
    

    のようにする。 ユーザを追加する時には -c オプションを外して

    
    $ /usr/bin/htpasswd /home/hoge/.usrs hoge
    
    

    のようにする。この時パスワードフィールドには crypt 形式で 暗号化されたものが書かれるが、クラックの餌食になることも 考えられるので Web 経由のユーザーがパスワードファイルにアクセス できないようにしておくべきである。

  3. 制限をかける
  4. (1)ユーザ認証方式

    制限をかけたいディレクトリに、 .htaccess ファイルをおく。 例えば/home/hoge/public_html以下に制限をかけたい場合は、

    
    $ vi /home/hoge/public_html/.htaccess
    
    
      AuthType Basic
      AuthName The-T-Directory  
      AuthUserFile /home/hoge/.users 
      <Limit GET POST> 
      require user hoge foo  アクセスを許可するユーザ名。
      </Limit>
    
    ■それぞれの説明
            AuthType      認証制御の種類。Basic でよい。
            AuthName      ユーザ名とパスワードが有効になる"realm (範囲)"の名前。
                          簡単に言うと passwd を打つ window につける名前。
                          スペースの入らない名前をつける。
            AuthUserFile  user 名と passwd が書き込まれたファイル名。
                          先程作ったpasswdfileを絶対パスで指定。        
            <Limit GET POST> GET POST に制限を加える
            require user  ユーザ認証(この場合 hoge と foo)が必要となる。
                          require の部分は特定グループだけを有効にすることも可能。
    

    これで、

      http://www.ep.sci.hokudai.ac.jp/~hoge/index.html 
    

    などにアクセスした時にユーザ名とパスワードを聞いてくる。

    (2)サーバ毎のアクセス制御

    
    $ vi /home/hoge/public_html/.htaccess
    
    
      AuthType Basic
      AuthName The-T-Directory
      AuthUserFile /home/hoge/.users
      <Limit GET POST>
      order deny,allow
      deny from all
      allow from xxx.xx.xx.xx  ← 許可したいIPアドレス
      </Limit>
    

    こうしておくと xxx.xx.xx.xx 以外からのアクセスがあった場合、ユーザ名と パスワードを聞いてくる。

    (3)グループで指定

    
    $ vi /home/hoge/public_html/.htaccess
    
    
      AuthUserFile /home/hoge/.testuser
      AuthGroupFile /home/hoge/.testgrp
      <Limit GET POST>
      require group testgrp
      </Limit>
    

    次に、グループファイルを作る。

    
    $ /home/hoge/.testgrp
    
    

    とし、グループに登録するユーザ名を入力する。

      testgrp: hoge foo ←ユーザ名とユーザ名の間はスペースを入れる
    

    そして、「(1)ユーザー認証方式」のようにグループに登録されたユーザとパスワードのファイルを作成する。

せっかくアクセス制限をかけたコンテンツもマシンに入って見えるようにしてあったら意味がありません。ちゃんとモードを変えて見られないようにしましょう。

	$ chmod 600 ディレクトリ名


■履歴
1999/12/28 高山歌織