WWWページのアクセス制御



簡単に医学部内向けページを作る方法

(98/10/19)

WWWサーバ側の設定を変更し、 従来より簡単に医学部内向けページ (ファイアウォールの外からはアクセスできない) を作ることができるようになりました。

ユーザの皆さんがとくに何も設定しなくても、 http://www.med.teikyo-u.ac.jp/‾username/med/ というディレクトリの下は自動的に医学部内向けページになっています。 とりあえず簡単に医学部内向けのページを作りたい方は、 御自分のディレクトリの下に med というディレクトリを作って、 その下にファイルを置いてみてください。

なお、もし他のディレクトリを医学部内向けにしたい場合には、 次項以降に示すような従来通りの方法をとって下さい。

注意: ここで「医学部内向け」といっているのは、ネットワーク上での話ですので、 実際には相手のパソコンは医学部の建物内の他の部署の管轄にあったり、 あるいは、 実際にパソコンを使っている人間は医学部の人間ではないかもしれません。


設定ファイル

アクセス制御を行なうには、制御したい対象のディレクトリに .htaccess というテキストファイルを作ります。 その中身の書き方は以下で説明します。


ホスト/ドメインごとの制御

ホストやドメインごとにアクセス制御を行ないたい場合には、 .htaccess に、たとえば以下のような設定を書いておきます。 (これは帝京大学医学部と東京大学からのアクセスのみを許可する例です)
<Limit GET>
order deny,allow
deny from all
allow from 202.253.108/22
allow from 192.168
allow from u-tokyo.ac.jp
</Limit>
(<Limit ...>と</Limit>はなくても構いません)

解説

設定例

医学部内向けページの具体的な設定例 [new!]

医学部内向けのページを作りたいという要望は多いのですが、 具体的な設定についてよくわからないという方が多いようです。 ここではその方法を少し実際的に説明します。

以下に .htaccessファイルの中身の例と、 それを実際に書いてあるテキストファイル(ファイル名は別にしてあります) のある場所(パス名)とリンクを示します。

order deny,allow
deny from all
allow from 192.168

(テキストファイル: /home/kenkon/html/htaccess.fw1

このファイルを、ファイル名を.htaccessに変えて アクセス制御したいディレクトリへコピーして下さい。

ただし、すでに.htaccessがある場合には、 上書きせずに中身を書き換えて追加するようにして下さい。

コピー(書き換え)をする具体的な方法としては

などがあります。後者の場合には、最終的に UNIXテキスト形式になるように、 FTP転送モードなどに注意して下さい。telnet、WWWブラウザ、 FTPソフトなどの使い方については、個々のマニュアル等を参照して下さい。


修正事項について[new!]

以前 202.253. で始まるアドレスを allow に指定する例を御紹介していまし たが、昨年度末に DeleGate による中継を始めた関係で、 この設定を生かしておくと外部のホストからもアクセスできてしまいます ので、御面倒ですが修正をお願い致します。

具体的には

allow from 202.253.108.0/22
allow from 202.253.108/22
allow from 202.253.111
などといったような行を削除していただくようお願い致します。 修正後の .htaccess については、上述の例を参考になさってください。 (この修正によりファイアウォール外部の医学部ホストからアクセスできなく なりますが、ほとんどが管理用のホストですので、さしたる影響はないと思わ れます)

誠にお手数ですが、よろしくお願い致します。


ユーザ名とパスワードによるアクセス制御

パスワードによる制限を行なうには、 パスワードファイルの作成と設定ファイルの書き換えの二つが必要です。 グループファイルもパスワードファイルと一緒に作ると便利です。

以下では morikawaというユーザが作業を行なう場合を例を 示しています。実際には各々のユーザ名を使って下さい。

パスワードファイルとグループファイルの作成

パスワードファイルにはユーザ名とパスワードの組が収められます。 WWW を通じて外部から見られてはよくないので、 ‾/html 以外のディレクトリに作りましょう。 以下の例では ‾/WWW に作ることにします。

‾/WWW の作成
cd
mkdir WWW
chmod 705 WWW

最後のchmodは他のユーザが、 WWWではなくローカルのマシン上で、 ディレクトリを見ることができないようにするものです (httpdサーバのグループは nogroup です)。 ただし気休め程度ですので、「(とくに内部にアカウントをもつ ユーザに対しては)それほどしっかり守られているわけではない」 ということを認識しておいて下さい。

パスワードファイルの作成
パスワードファイルは/home/WWW/httpd/support/htpasswd というコマンドを使って作成します。 ここではnewpassというパスワードファイルに、 taroというユーザを加えるものとしますが、 適宜読み変えて下さい。

cd ‾/WWW
/home/WWW/httpd/support/htpasswd -c newpass taro

するとパスワードを何とするか尋ねてくるので、入力します。 2回入力する必要があります。

以上でパスワードファイルの作成は終了です。

同じパスワードファイルに別のユーザを追加する時には、 上のhtpasswdコマンドの-cオプションをなくして、
/home/WWW/httpd/support/htpasswd newpass hanako
などとします。うっかり-c をつけるとそれまでのユーザを消して新しく作ってしまうので、 注意して下さい。

グループファイルの作成
グループというのは、ユーザをまとめて管理するものです。 あると便利ですが、作らなくても構いません。

グループファイルは純粋にテキストファイルなので、 適当なエディタを使って作成して下さい。 パスワードファイルと同じディレクトリに作ると良いでしょう。 ファイル名は何でも構いません(以下ではnewgroupとします)。

中身は

  yamada: taro hanako
  zoo: lion gorrila monkey
などとします。yamadazooがグループ名、 後ろのtarolion などはパスワードファイルに登録したユーザ名です。

設定ファイルの書き換え

パスワードでアクセス制御をしたいディレクトリの設定ファイル (.htaccess)に設定を書き込みます。

  AuthType Basic                         (ここはこのとおり書くこと)
  AuthName "Yamada's Room Entrance"      (相手側で表示される。何でもよい)
  AuthUserFile /home/morikawa/WWW/newpass

  require valid-user
AuthNameは何を指定してもいいですが、 全角文字(日本語)や変な記号は避けましょう。
[new!] AuthNameの引数には空白が含まれていると、引数が複数とみなされ、 エラーになります。空白を含まないようにするか、 空白も含めて二重引用符(")で囲んてください。

AuthUserには作成したパスワードファイルへの フルパスを指定します。

上の例の require valid-userはパスワードファイル(この場合 newpass)に書かれているすべてのユーザに許可を許すことを 意味していますが、もしパスワードファイルに書かれたユーザの中の さらに一部に限定したい場合には、 以下のようにユーザ名を列挙することもできます。

  require user taro hanako

グループを利用するなら、次のように書きます。

  AuthType Basic
  AuthName "Yamada's Room Entrance"
  AuthUserFile /home/morikawa/WWW/newpass
  AuthGroupFile /home/morikawa/WWW/newgroup

  require group yamada
  require group zoo
AuthGroupFileフルパスで指定します。
また、ユーザとグループを混ぜて指定しても構いません。

設定例

http://www.med.teikyo-u.ac.jp/‾morikawa/howto/limited2/ がユーザとパスワードによる制御を行なっている例です。

ユーザ名: staff、 パスワード: kenkon でアクセスできます。


last modified: 06/16/99 ; 12:29:13 (JST)

WWWページのアクセス制御 / 研コン室 / 月曜相談員 森川
< morikawa@med.teikyo-u.ac.jp >