SSIを設定する。
新しいプロジェクトで、クライアントから、SSIを使用できる確認用サーバをたててください、と言われた。
しかし、うちの確認用サーバは、各クライアントごとにバーチャルホストを使っているので、サーバ全体でSSIを有効にするわけにはいかない。
そんなわけで、ちょこちょこ調べつつ。
バーチャルホストの設定部分は、
AllowOverride authconfig limit
Options Includes FollowSymLinks Multiviews
Order deny,allow # 基本的にアクセスを許可し、allowで明記されているアクセスを許可*1
Deny form all # すべての対象からアクセスの拒否
Allow from 許可IP # 許可IPからのアクセスのみを許可(それ以外からのアクセスは拒否)
ServerName xxx.xxx.xx.xx
DocumentRoot ドキュメントルート
ScriptAlias /cgi-bin/ "cgi-binの該当ディレクトリ"
Addhandler cgi-script .cgi
Addhandler cgi-script .pl
とした。
AddType text/x-server-parsed-html .shtml
AddHandler server-parsed .shtml
これに関しては、はじめからサーバ全体で有効となっていたので、設定は変更せず。
該当ディレクトリにIncludesを付加し、IPでのアクセス制限を設けた。
ホントは、execコマンドのことを考えて、IncludesNoExecとしたかったんだけど、IncludesNoExecでは、ファイルのインクルードも使えなくなるということで、しかたなくIncludesに。
実際に運用が始まったら、BASIC認証での制限もかける予定。
【参考URL】
- Order ディレクティブ
http://httpd.apache.org/docs/2.0/ja/mod/mod_access.html#order - SSIを利用可能にする
http://vine.1-max.net/apach-ssi.html - SSIは許可するがプログラム実行(exec)だけは禁止したい
http://www.itmedia.co.jp/help/tips/linux/l0498.html - IP認証によるアクセス制限のテクニック
http://www.atmarkit.co.jp/flinux/rensai/apache09/apache09b.html
4.の“IP認証を定義する3つの要素と記述方法”のところで、orderに関する説明が間違っているような気がするんだけど…?σ(- -;)。
1.のOrder ディレクティブの説明と反対でないかなぁ…??
*1:Deny ディレクティブが Allow ディレクティブの前に評価されます。アクセスはデフォルトで許可されます。Deny ディレクティブに合わないか、Allow ディレクティブに合うクライアントはアクセスを許可されます