WWWでのアクセス制限の方法 (2006/05/12更新)

  1. WWWでのアクセス制限 (.htaccessでの認証)
  2. 共有アカウントのユーザ認証
  3. 共有アカウントのグループ認証
  4. ネットワークアクセス制限



1. WWWでのアクセス制限 (.htaccessでの認証)

[ .htaccess ファイル ]

  以下のような内容で、 .htaccessファイルを作成します。

AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "BASIC Authentication"
AuthType Basic
Require valid-user



1.1. 設定項目

AuthUserFile htpasswdコマンドで作成したID,パスワードが含まれ.htpasswdファイルを
絶対パスで指定します。
AuthGroupFile グループ単位で認証を行う場合に情報が格納されているファイルを指定します。
通常の認証では指定するファイルが存在しないため、/dev/nullを指定します。
AuthName 認証ダイアログに表示される文字を設定します。
AuthType 使用する認証方法を指定します。こちらも通常では、Basicを指定します。
Require 許可するユーザの指定を行います。valid-userの場合は、AuthUserFileで指定された
パスワードファイルに登録されている、全てのユーザが認証後にリソースを使用できます。
この行をRequire user tanaka satoに変更すると、ユーザtanakaとユーザsato以外の
ユーザ認証を拒否します。

注意)上記以外の設定は全てそのままにして置いて下さい。



1.2. htpasswd コマンドの使い方

[ 新規作成 ]

サーバにログインし、htpasswd –c /path/to/.htpasswd UserName UserName にログインさせたい
ID(ユーザ名)を指定します。その後パスワード入力を求められるので設定するパスワードを入力してください。
以上で新規に.htpasswdファイルの作成が出来ます。



2. 共有アカウントのユーザ認証

[ .htaccess ファイル ]
   
  以下のような内容で、 .htaccessファイルを作成し、アクセス制限をかけたいディレクトリに設置します。

AuthType Basic
AuthName "LDAP Auth"
AuthLDAPBindDN "cn=w3proxy,ou=Proxy,dc=rcnp,dc=osaka-u,dc=ac,dc=jp"
AuthLDAPBindPassword xLNGF2d4
AuthAuthoritative off
AuthLDAPAuthoritative on
AuthLDAPURL "ldap://localhost:8636/ou=People,dc=rcnp,dc=osaka-u,dc=ac,dc=jp?uid"
Require valid-user



2.1. 設定項目
・最後の行「Require」で認証を許可するユーザ名を指定します。
2.1.1. 全ての認証されたユーザとする場合「Require valid-user」にします。
2.1.2. 許可するユーザIDが「suzuki」「tanaka」「yamada」とする場合
    「Require user suzuki tanaka yamada」にします。
2.1.3. 詳細に関しては「http://httpd.apache.org/docs/2.0/mod/core.html#Require」を参照。



3. 共有アカウントのグループ認証

[ .htaccess ファイル ]

  以下のような内容で、 .htaccessファイルを作成し、アクセス制限をかけたいディレクトリに設置します。

AuthType Basic
AuthName "LDAP Group Auth"
AuthzLDAPServer "localhost:8636"
AuthzLDAPUserBase "ou=People,dc=rcnp,dc=osaka-u,dc=ac,dc=jp"
AuthzLDAPBindDN "cn=w3proxy,ou=Proxy,dc=rcnp,dc=osaka-u,dc=ac,dc=jp"
AuthzLDAPBindPassword xLNGF2d4
AuthzLDAPUserKey uid
AuthzLDAPUserScope subtree
AuthzLDAPLogLevel debug

AuthzLDAPMethod ldap
AuthzLDAPGroupBase "ou=Groups,dc=rcnp,dc=osaka-u,dc=ac,dc=jp"
AuthzLDAPGroupKey cn

AuthzLDAPMemberKey memberUid
AuthzLDAPMapUserToAttr uid
AuthzLDAPSetGroupAuth map

Require group e123 e456 e789




3.1. 設定項目

・最後の行にある「Require group」でグループ認証を許可するグループ名を指定してください。
3.1.1. 許可するグループIDが「e123」「e456」「e789」とする場合
    「Require group e123 e456 e789」にします。。
3.1.2. 詳細に関しては「http://httpd.apache.org/docs/2.0/mod/core.html#Require」を参照。


4. ネットワークアクセス制限

 RCNP外部の特定のホスト/ドメインからのアクセスをIPアドレスやドメイン名で個別に
 制御する方法はサポートされていません。
 外部からのアクセスに制限をかける場合は、IPアドレスやドメイン名を使うのではなく、
 1~3項で説明しているパスワード認証を使ってください。

[ .htaccess ファイル ]

  以下のような内容で、 .htaccessファイルを作成し、アクセス制限をかけたいディレクトリに設置します。


deny from all
allow from 172.16.192.0/19
allow from 172.16.188.0/24
allow from 172.17.
allow from 192.168.2.
allow from 192.168.7.
allow from 192.168.20.




4.1. 設定項目

・allow(許可)とdeny(否定)により、許可/否定を設定します。
・すべてのアクセスを許可する場合は「allow from all」とします。
・すべてのアクセスを否定する場合は「deny from all」とします。
・「allow/deny from IPアドレス/ネットワークアドレス/セグメント」でアクセス制限を行います。

・各セグメントからのアクセス許可・制限をしたい場合は以下のように指定ください。
 RCNP外部の特定のホスト/ドメインからのアクセスをIPアドレスやドメイン名で個別に
 制御する方法はサポートされていません。
 外部からのアクセスに制限をかける場合は、IPアドレスやドメイン名を使うのではなく、
 1~3項で説明しているパスワード認証を使ってください。

汎用ネット172.16.192.0/19
VPN経由172.16.188.0/23
加速器ネット172.17.
実験ネット192.168.2.
大塔ネット192.168.7.
SP8ネット192.168.20.

4.1.1. RCNP外部からも含めて、すべての場所からのアクセスを許可する場合
    allow from all

4.1.2. 加速器ネットと実験ネットからだけのアクセスを許可する場合
    deny from all
    allow from 172.17.
    allow from 192.168.2.

4.1.3. RCNP内部からのアクセスはパスワード無しで許可し、
    RCNP外部からのアクセスにはパスワード認証を要求する場合

    deny from all
    AuthType Basic
    AuthName "LDAP Auth"
    AuthLDAPBindDN "cn=w3proxy,ou=Proxy,dc=rcnp,dc=osaka-u,dc=ac,dc=jp"
    AuthLDAPBindPassword xLNGF2d4
    AuthAuthoritative off
    AuthLDAPAuthoritative on
    AuthLDAPURL "ldap://localhost:8636/ou=People,dc=rcnp,dc=osaka-u,dc=ac,dc=jp?uid"
    Require valid-user
    allow from 172.16.192.0/19
    allow from 172.16.188.0/24
    allow from 172.17.
    allow from 192.168.2.
    allow from 192.168.7.
    allow from 192.168.20.
    Satisfy any

4.1.4. 詳細に関しては以下を参照ください。
http://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
http://httpd.apache.org/docs/2.0/mod/mod_access.html#deny
http://httpd.apache.org/docs/2.0/mod/mod_access.html#order

トップページに戻る