ホームページのアクセス制御

(2009.04.17-2023.2.22)

robots.txt

ホームページは,robots.txtに,

User-Agent: *

Disallow: /

と書いて,検索されたくないディレクトリに設置すれば,そのディレクトリその中のディレクトリ内のファイルは検索エンジンで検索されなくなる。こうしておけば,以下のBASIC認証でパスワードを設定する必要はほとんどなくなる。

ホームページのパスワード

BASIC認証(UNIX標準認証)で,ホームページにパスワードをつける方法.「認証方法には,CGIによる方法,JavaScriptによる方法等ありますが,BASIC認証が一般的であり他の方法に比べてセキュリティ面でも心配を生じさせない環境を作る事が出来る」.

(環境)Turbo Linux 7.0 + Appace, CentOS 5.3

.htaccess の作成

ホームページを管理するユーザーでログイン.そして,パスワードを施すページのディレクトリに,以下のような内容のテキストファイルをつくる.

AuthType Basic

AuthUserFile /home/www/etc/passwd.dat

AuthName "Enter password"

Require user students

2行目はパスワードファイルの絶対パス.

3行目はログインするときのダイヤログに表示するメッセージ.

4行目はユーザーstudentsのみを許可する設定.

4行目を Require valid-user とすると,パスワードファイルに書いたユーザーはすべて許可する設定.

ファイル名,属性は以下のとおり.

$ ls -la

-rw-r--r-- 1 fukuda www 101 Apr 15 15:03 .htaccess

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

パスワードファイルを作るディレクトリでhtpasswdコマンドが使えるか,確認.

$ htpasswd

Usage:

htpasswd [-cmdps] passwordfile username

htpasswd -b[cmdps] passwordfile username password


htpasswd -n[mdps] username

htpasswd -nb[mdps] username password

-c Create a new file.

-n Don't update file; display results on stdout.

-m Force MD5 encryption of the password.

-d Force CRYPT encryption of the password (default).

-p Do not encrypt the password (plaintext).

-s Force SHA encryption of the password.

-b Use the password from the command line rather than prompting for it.

On Windows, TPF and NetWare systems the '-m' flag is used by default.

On all other systems, the '-p' flag will probably not work.

使い方は,この表示通りで,

パスワードファイルの新規作成:

$ htpasswd -c passwd.dat students

パスワードの更新:

$ htpasswd passwd.dat students

ユーザーの追加:

$ htpasswd passwd.dat username

Apache httpd.confファイルの修正

rootで/etc/httpd/conf/httpd.confを以下のように修正.

# This controls which options the .htaccess files in directories can

# override. Can also be "All", or any combination of "Options", "FileInfo",

# "AuthConfig", and "Limit"

#

# AllowOverride None

AllowOverride All

Apacheの再起動.

# /etc/rc.d/init.d/httpd restart

.htaccess の色々な設定

アクセス元のIPアドレスを制限するには:

.htaccessファイルに以下を加える.

Order Deny,Allow

Deny from all

Allow from 133.35

Allow from .ax.ne.jp

3行目は133.35で始まるIPアドレスからのアクセスを許可している.

4行目は末尾が.ax.ne.jpで終わるアドレスからのアクセスを許可している.

内部など,指定したIPアドレスからのアクセスではBASIC認証をしないようにするには:

.htaccessファイルにさらに以下を加える.

Satisfy Any

これで,IPアドレスの制限で指定したアドレスからは,BASIC認証なしで(パスワード無しで)アクセスできる.

参考