アクセス制御
目次
2003/01/02
Pegasus は、他のサーバと同様に、ドキュメントルート(サービス空間の /doc) の外のファイルをクライアントから要求された場合には拒否します。さらに Pegasus はピリオドで始まるファイルを要求された場合にも拒否します。これらは CGI を通じてのみアクセス可能です。
以上の一般的な規則の他に、パスワードによってアクセスできるディレクトリや特定の IP のクライアントのみ拒否あるいは受け入れるディレクトリを定義できます。以下ではこれをアクセス制御と呼ぶことにします。
アクセス制御ファイルの置き場所
Pegasus のアクセス制御は、ホームページの運営者が行えるようにできています。システムの管理者にお願いする必要はありません。アクセス制御に関するファイルは web ルートを$web
で表せば$web/etcに置かれています。
ユーザ alice の web ルートは通常
$home/webです。実ホストや仮想ホストの web ルートは
/sys/lib/httpd.rewrite
で定義されます。bob が実ホストの運営者であれば/usr/bob/wwwが、carol が仮想ホストの管理者であれば、
/usr/carol/wwwが推奨される web ルートです。これらは何れもサービス空間では
/etcになっています。
基本認証
PLan9 は HTTP/1.0 で規定されている基本認証(basic authentication)をサポートしています。基本認証の長所は、仕組みが簡単なので、多くの Web サーバとブラウザでサポートされている事に尽きます。短所は生のパスワードがネットワークに流れるので盗聴に弱い事です。(従って基本認証は TLS(SSL) と組み合わせるのが望ましい)
もっと高度な認証方式としては Challenge/Response 方式が HTTP/1.1 で規定されていますが、現在の所代表的なブラウザではサポートされていないようです。(従って Pegasus でもサポートされていません。)
認証には CPU サーバのファイルを使用します。即ちサービス空間の
/etc/passwdがそれです。パスワードの正当性はパスワードの MD5 の結果と比較する事によって判断されます。
関連ファイル: /etc/passwd
IP アドレスに基づくアクセス制御
クライアントからのドキュメントへのアクセスをクライアントのIP アドレスで制御することもできます。制御ファイルはサービス空間の/etc/allowです。
関連ファイル: /etc/allow