ファイルのアクセス制限

1 この章の概要

この章では、以下の3点について詳しく説明します。
  1. ホームページのアクセス制限とは
  2. アクセス制限の方法
  3. .htaccessの書き方

2 アクセス制限

2.1 ホームページのアクセス制限とは

アクセス制限とはその名の通り特定ページへのアクセス(見る許可)を限定するもので特定のドメインだけに限定したり,また逆に特定のドメインからのアクセスを禁止したり,IDとパスワードを持っている人だけしかページを見られないようすることです.

2.2 アクセス制限の方法

インターネット上にホームページを公開するためにmikilabマシンはapacheと言うソフトウェアを使用しており,「.htaccess」というファイルをアクセス制限したいディレクトリに置くことによりアクセス制限を行うことができます.


ここで紹介するアクセス制限には制限方法と制限対象がそれぞれ2種類あります.制限方法は以下の2種類があります.

制限対象は以下の2種類がありますが,基本的にはIとなります. どの種類の組み合わせになるのかは「.htaccess」の記述に依ります.ここではアクセス制限をするためにどのようなことをすればいいのかのみを解説します.

3 .htaccess

3.1 IDとパスワードで制限する

IDとパスワードで制限するには.htaccessを次のように記述します.


1. Basic認証とは
いわゆるIDとパスワードによる認証と思っていただいて結構です.

2. require valid-user
valid-userを特定のユーザーのIDとすることでそのユーザーにのみにアクセスを許可することができます.たとえばユーザーとしてcat,dog,birdがいるときにcatとbirdにアクセスを許可するには「valid-user cat,bird」とします.

3. パスワードリストファイルとは
アクセスを許可されたユーザーのIDとパスワード(を暗号化したもの)が書かれたファイルです.内容は次のようになっておりコロンの左がID,右が暗号化されたパスワードです.

dia02:o2SROcGrX9wtw
暗号化されたパスワード

このファイルはmikilabマシンの中の「/usr/sbin/htpasswd」というプログラムを使って作成します.使用法は「/usr/sbin/htpasswd [-c] 」です.パスワードリストファイルを初めて作るときは「-c」オプションをつけて新規作成します.ファイル名とIDを指定して実行すると使用したいパスワードを聞いてくるので2回入力します.するとカレントディレクトリにfilenameで指定した名前のパスワードファイルができます.次からユーザーを追加するときは「-c」オプションは必要ありません.もし付けてしまうと元のファイルに上書きしてしまいますので気をつけてください.

「ls -a」で表示されたファイルの中に.htpasswd-fileができていればOKです.


3.2 ドメインによるアクセス制限

「*.doshisha.ac.jp」からアクセスしているユーザーのみが見られるようにするには.htaccessを次のように書きます.

逆に「*.doshisha.ac.jp」からアクセスしているユーザーだけには見られないようにするには.htaccessを次のように書きます.
「deny from ...」や「allow from ...」は複数書くことができます.またIPアドレスを直接指定することもできます.
ex.deny from 222.111


3.3 ファイルへのアクセス制限

.htaccessに次のような記述を加えます.

上の例ではsecret.htmlへのWWW経由でのアクセスを一切禁止します.また上のものを使いとすることで.htaccess自体を見えなくすることができます.


3.4 複合制限

以上に出てきたものを同時に使い,ドメインとID&PASSの両方で制限することも可能です.

これで「*.doshisha.ac.jp」から接続していてかつ,ID&PASSを知っているユーザーしか「mikilaber.html」を見ることはできません.

4  .htaccess(2)

4.1 実際にアクセス制限を行うには

まずWindows上のテキストエディタ等で.htaccessファイルの内容を作成します.場合によってはピリオドから始まるファイルが作れない場合もあるのでhtaccess.txtなどの名前にしておいてもよいでしょう.次にパスワードによるアクセス制限をかけたい場合はパスワードリストファイルを用意し,.htaccessを正しく設定します.そしてアクセス制限をかけたいディレクトリ(もしくは制限をかけたいファイルがあるディレクトリ)に.htaccessを(ID&PASSを使うならパスワードリストファイルも)ftpソフトなどを使ってアップロードします.


"http://mikilab.doshisha.ac.jp/matsumoto/report/index.html"にドメインとパスワード(ID:dia02,PASS:aid02)によるアクセス制限を付けたい場合は次のようにします.

1..htaccessファイルを編集する:
AuthUserFile /home1/matsumoto/.htpasswd-file
AuthName ByPassword
AuthType Basic
<File index.html>
order deny,allow
deny from all
allow from .doshisha.ac.jp
require valid-user
</File>

アップロード先:mikilab.doshsisha.ac.jp/matsumoto/public_html/report/.htaccess

2.パスワードリストを作る:
dia02:o2SROcGrX9wtw
作成先:mikilab.doshsisha.ac.jp/matsumoto/.htpasswd-file

3..htaccessをアップロードする.
これでID&PASSとドメインによるアクセス制限が有効になります.

4.確認
ブラウザでhttp://mikilab.doshisha.ac.jp/matsumoto/report/index.htmlを入力してみてください.IDとパスワードの入力を促すダイアログボックスが表示されます.もし学外のプロバイダなどからつないでいればドメインによって拒否されるはずです(試してません).