httpd.confの設定
Linux LPIC編。(第9章 Webサーバとプロキシサーバ)
9章の内容は主にApacheのこと。インストール方法あたりは流すとして、、、
まずはメイン設定ファイルのhttpd.confから入ろう。
httpd.confは各種ディレクティブの記述により構成され、Apacheの動作を定義する。
設定の適用は、ファイル、ディレクトリ、URLで個別に指定可能。
編集後に反映させるにはApacheの再起動が必要。再起動の前にconfigtestやhttpd -t
などで構文テストもやっておくのがベター。
httpd.confの内容については、個人的に割と馴染みがあるので、名ディレクティブの詳細
な説明は省略させてもらうとして、完全自分が気になる箇所だけ勝手に書きます。
MaxClientsやTimeout、ServerNameなどは、まぁ値を適宜記述する。
一般的にも気にしておきたいのが、DirectoryIndexの設定。ブラウザからのアクセスに
おいてURLにファイル名が指定されなかった場合に、ディレクトリのインデックスと
して返すファイルを順に記述する。
DirectoryIndex index.html, index.htm, index.php
合わせて、ディレクトリで設定するOptonsでは、Indexesを削除して無効にしておくのが
一般的。これはDirectoryIndexで指定されたファイルがなかった場合にディレクトリ内の
ファイル名一覧を生成の上表示させてしまう機能なので、当然セキュリティ上好ましくない。
HostNameLookupsは、DNSの逆引きを行い、アクセス元のIPアドレスからホスト名を
取得する。ログにホスト名を記録したり、ホスト名でアクセス制御したい場合はonに、
パフォーマンスを優先させるならoffを指定する。
Aliasは、ドキュメントルート以下と異なる場所を別名で設定する。
例えば、通常公開しているドキュメントルート以下の他の場所に公開したいコンテンツ
がある場合や、実際のディレクトリとは違う名前のURLを使用したい場合に便利。
以下の例は、http://ホスト名(ドメイン)/iconsにアクセスしたとき、本来のドキュメント
ルート以外の、/usr/local/images/icons/内のコンテンツが表示される。
Alias /icons/ “/usr/local/images/icons/”
試験範囲外
他の参考書に書いてあったことだけど、ついでにメモ。
Apache2.2ではこの設定はextra/http-autoindex.confにあり、有効にする
にはhttpd.confでIncludeの設定をコメントから外すように、とのこと。
404ステータスコード発生時のアクションを指定する、ErrorDocumentディレクティブ
のことも忘れちゃいけませんね。
それから重要なのが、ログ関連。
Apacheのログにはクラアイアントからのリクエストが記録されるaccess_logと、
各種エラー情報やWebサーバの挙動が記録されるerror_logがある。
これらは通常/var/log/httpd以下等に格納される。
httpd.confでは、LogFormatディレクティブでフォーマットを指定し、CustomLog
ディレクティブでログファイル名とフォーマットを結びつける。
LogFormatでログのフォーマットを定義。ここでは各項目の細かい
説明は省略するけど、%h %uなどの羅列で吐き出されるログを定義付けることができる。
CustomLog で以下のようにファイル名、ログ書式名を指定し、
アクセスログを定義する。
CustomLog logs/access_log combined
ErrorLogでエラーログを記録するログファイル名を、LogLevelでエラーログのレベルを
指定する。
KeepAlive(キープアライブ)の概念も重要かも。
キープアライブはWebサーバとWebブラウザ間で、TCP接続をキープする。
1つのTCP接続を使って複数のHTTP処理要求を実行できるため、パフォーマンスが
向上する。有効にするにはonを指定。
最後に、やはり重要なアクセス制御。
Orderディレクティブで、ホスト名やドメイン、IPアドレス単位でアクセスをコントロールする。
allow,denyの順番など、混乱しがちなのでまとめてみる。
Order allow,denyは、allow(許可)を先に適用し、次にdeny(拒否)を適用する。
設定は後に適用した方により上書きされるため、allowで許可しておいてもdenyで拒否
するとアクセスできなくなる。このため、一部のIPアドレス(ホスト名)のみ拒否したい
場合は、allowですべてのアクセスを許可した後に許可しないIPアドレスをdenyで拒否
する記述が一般的。
Order deny,allowとすると、適用順位が逆になり、許可対象のallowが最終的に上書きされる。
一部のIPアドレスだけアクセスを許可したい場合はこの方が一般的。と、思われる。
ということで、allowとdenyの順番には注意が必要(すぐ忘れるんだな、これが)。
以下はIPが192.168.100.1からのアクセスのみ拒否する例
Order allow, deny
Allow from all ←すべてのアクセスを許可
Deny from 192.168.100.1 ←これだけ拒否
上の書き方が一般的だと思われるが、出典教科書には以下の例も書かれており、
どちらでも同じとのこと。
Order deny, allow
Deny from 192.168.100.1
逆にIPが192.168.100.1からのアクセスのみ許可する例
Order deny, allow
Deny from all ←すべてのアクセスを拒否
Allow from 192.168.100.1 ←これだけ許可
なお、ディレクトリでアクセス制限をした場合、その適用範囲はサブディレクトリまで及ぶ。
あっさりすませるつもりが、また長文になってしまった・・・
次回は.htaccessなどApacheの設定その他あれこれを。
出典
Linux教科書LPICレベル2(翔泳社)
Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index