server_top


2004年04月02日

Webサーバ(Apache)

基本設定
/etc/httpd/conf/httpd.conf を以下に従って変更します。

基本的なネットワークの設定管理者の設定
ServerAdmin root@localhost

ServerAdmin webmaster@takenouchi.to

htmlの拡張子を持つファイルでSSIが使えるようにする
AddHandler server-parsed .shtml

AddHandler server-parsed .shtml
AddHandler server-parsed .html

ログファイルにIPアドレスではなく、ホスト名を記述させるようにする
HostnameLookups Off

HostnameLookups On

インクルードファイルやHTMLエディタのバックアップファイルなどの中身を見られないようにする
incやbakなど(場合によってはphpなど)の拡張子を持つファイルはその中身を見られたくないものですので、ブラウザから直接アクセスを禁止するため、 /etc/httpd/conf/httpd.conf に以下のような記述を追加します。
<Files ~ "^\.inc">
Order allow,deny
Deny from all
</Files>
<Files ~ "^\.bak">
Order allow,deny
Deny from all
</Files>

名前ベースのVirtual hostの設定
我が家では http://www.takenouchi.to/ で、ローカルの/home/httpd/html/が見えますが、以下のように /etc/httpd/conf/httpd.conf に記述することで、例えば、我が家の親バカページ、http://www.takenouchi.to/kumiko/へ、http://kumiko.takenouchi.to/でアクセスすることができます。これを「名前ベースのバーチャルホスト」といいます。(ただし、古いブラウザやproxyサーバなどでは対応していないこともあります。)

NameVirtualHost 192.168.0.1  ← NATの環境では、プライベートアドレスを指定する。

ServerName www.takenouchi.to
ServerAdmin root@takenouchi.to
DocumentRoot /home/httpd/html/
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
CustomLog logs/access_log combined
CustomLog logs/referer_log referer


ServerName takenouchi.to
ServerAdmin root@takenouchi.to
DocumentRoot /home/httpd/html/
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
CustomLog logs/access_log combined
CustomLog logs/referer_log referer


ServerName kumiko.takenouchi.to
ServerAdmin root@takenouchi.to
DocumentRoot /home/httpd/html/kumiko/
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/kumiko/
CustomLog logs/kumiko_access_log combined
CustomLog logs/kumiko_referer_log referer

アクセス制御の設定
家の中からだけ見たい、限られた人にだけ見せたいなど、いろんな情報の見せ方があると思います。そんな時には以下の2種類のアクセス制御を適切に設定することで解決できることが多いと思います。
ホストベースの認証決まったホスト、決まったネットワークからのみのアクセスのみを許可する方法です。例えば httpd.conf に以下の設定を加えることで、/secret/以下のファイルは、プライベートネットワーク(例えば192.168.0.0)以外からのアクセスは禁止されます。

Order deny,allow
Deny from all ← デフォルトで全てのホストからのアクセスを禁止
Allow from 192.168.0.0/255.255.255.0 ← 192.168.0.0 からのアクセスは許可
Allow from 127.0.0.1 ← ローカルホストからのアクセスも許可

パスワードベースの認証
以下の設定で、/secret/以下のファイルにアクセスするためには、ユーザー名とパスワードをによる認証を行うようにできます。

AuthType Basic
AuthName Private
AuthUserFile /etc/httpd/conf/.htpasswd
require valid-user

認証するユーザ名とパスワードを設定するには以下のようにします。
# htpasswd -c /etc/httpd/conf/.htpasswd hogehoge
New password:****
Re-type new password:****
"-c" はファイルを新規作成するオプションですので、2回目以降は指定しないようにしてください。(もし指定すると、これまでのユーザ名、パスワードはクリアされるので、注意してください。)

ホストベースの認証とパスワードベースの認証の組み合わせあるネットワークからのアクセスに限定し、かつ認証をしたいことや、あるネットワークからは認証なしで、それ以外からはパスワード認証を行いたいことがあると思います。その場合には、"Satisfy"を使います。 "Satisfy all"で、「ホストベース認証 かつ パスワード認証」となり、指定されたネットワークでかつ、パスワードが要求されないとアクセスできないようになります。また"Satisfy any"で「ホストベース認証 または パスワード認証」となり、指定されたネットワークではパスワード認証なし、それ以外では、パスワードが要求されるようになります。

Satisfy any ← 192.168.0.0, 127.0.0.1 からはパスワード認証なし
# Satisfy all ← 192.168.0.0, 127.0.0.1 以外からはアクセス不可、192.168.0.0, 127.0.0.1 からでもパスワード認証が必要
Order deny,allow
Deny from all
Allow from 192.168.0.0/255.255.255.0
Allow from 127.0.0.1
AuthType Basic
AuthName Private
AuthUserFile /etc/httpd/conf/.htpasswd
require valid-user

blank_space
投稿者 たけのうち : 08:29 | コメント (0) | トラックバック
記事一覧
blank_space