.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/hosts_options.5,v 1.3 2001/05/14 01:09:29 horikawa Exp $ .\" WORD: severity 重要度 [syslog.conf.5] .\" WORD: facility ファシリティ [syslog.conf.5] .TH HOSTS_OPTIONS 5 .SH 名称 hosts_options \- ホストアクセス制御言語の拡張 .SH 解説 この文書は、hosts_access(5) 文書で解説した言語に対する オプション拡張を解説します。 この拡張は、プログラム構築時に有効にされます。 例えば、Makefile を編集し、 コンパイル時オプション PROCESS_OPTIONS を有効にします。 .PP この拡張可能な言語は、次の書式を使用します。 .sp .ti +3 daemon_list : client_list : option : option ... .PP 最初の 2 つのフィールドは、hosts_access(5) マニュアルページで解説しています。 ルールの残りは、0 個以上のオプションです。 オプション中の ":" 文字は、バックスラッシュで保護する必要があります。 .PP オプションの形式は、"keyword" または "keyword value" です。 オプションは、指定した順番で処理されます。 オプションによっては、% 置換の対象となります。 以前のバージョンとの後方互換性のために、 keyword と value の間に "=" を入れることが許されています。 .SH 記録 .IP "severity mail.info" .IP "severity notice" どの重要度のイベントを記録するかを変更します。 ファシリティ名 (mail など) はオプションです。 これは、古い syslog の実装のシステムでは、サポートされていないでしょう。 固有のイベントを強調したり無視したりするために、 severity オプションを使用します。 .SH アクセス制御 .IP "allow" .IP "deny" サービスを許可 (拒否) します。 これらのオプションは、ルールの最後に登場する必要があります。 .PP \fIallow\fR と \fIdeny\fR のキーワードにより、 すべてのアクセス制御ルールを単一のファイルに、 例えば \fIhosts.allow\fR ファイルに、置くことが可能となります。 .sp 特定のホストだけからのアクセスを許可するには、次のようにします。 .sp .ne 2 .ti +3 ALL: .friendly.domain: ALLOW .ti +3 ALL: ALL: DENY .sp 少数のトラブルメーカ以外からのアクセスをすべて許可するには、次のようにします。 .sp .ne 2 .ti +3 ALL: .bad.domain: DENY .ti +3 ALL: ALL: ALLOW .sp ドメイン名のパターンの前のドットに注意してください。 .SH 他のコマンドの実行 .IP "spawn shell_command" hosts_access(5) マニュアルページで解説される % 展開を行った後、 指定したシェルコマンドを子プロセスで実行します。 コマンドの実行は stdin, stdout, stderr を null デバイスに接続して 行われますので、 クライアントホストとの会話が混乱することはありません。例えば、 .sp .nf .ti +3 spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) & .fi .sp は、%h をリモートホストの名前またはアドレスに置換した後、 シェルコマンド "safe_finger -l @%h | mail root" を、 バックグラウンドの子プロセスで実行します。 .sp この例では、通常の "finger" コマンドではなく、 "safe_finger" コマンドを使用しています。 これにより、 finger サーバから送られるデータに起因して発生し得るダメージを限定します。 "safe_finger" コマンドは、デーモンラッパパッケージの一部です。 これは、通常の finger コマンドを包んで、 リモートホストから送られるデータをフィルタします。 .IP "twist shell_command" hosts_access(5) マニュアルページで解説される % 展開を行った後、 現在のプロセスを、指定したシェルコマンドで置き換えます。 stdin, stdout, stderr は クライアントプロセスに接続されます。 このオプションは、ルールの最後に登場する必要があります。 .sp 実際に ftp デーモンを実行する代わりに、 カスタマイズした中継 (bounce) メッセージを送るには、次のようにします: .sp .nf .ti +3 in.ftpd : ... : twist /bin/echo 421 Some bounce message .fi .sp クライアントプロセスと対話する別の方法としては、 後述の \fIbanners\fR オプションを参照してください。 .sp コマンドライン配列やプロセスの環境を汚染せずに、 /some/other/in.telnetd を実行するには、次のようにします: .sp .nf .ti +3 in.telnetd : ... : twist PATH=/some/other; exec in.telnetd .fi .sp 警告: UDP サービスでは、 標準 I/O や read(2)/write(2) ルーチンを使用してクライアントプロセスと 通信するプログラムを、twist の対象としてはなりません。 UDP では、他の I/O プリミティブを必要とするからです。 .SH ネットワークオプション .IP "keepalive" サーバがクライアントに対して定期的にメッセージを送るようにします。 クライアントが応答しないとき、接続が断たれたものとみなされます。 ユーザが、サーバに接続したままマシンの電源を落す場合に、 keepalive オプションが有用です。 keepalive オプションは、データグラム (UDP) サービスには使えません。 .IP "linger number_of_seconds" サーバプロセスが接続を閉じた後のどれだけの期間、 未配送のデータをカーネルが配送しようとするかを指定します。 .SH ユーザ名検索 .IP "rfc931 [ timeout_in_seconds ]" RFC 931 (TAP, IDENT, RFC 1413) を使用して、 クライアントのユーザ名を検索します。 サービスが TCP 以外の配送をベースにしている場合には、 このオプションはとくに断りなく無視されます。 このオプションを指定することにより、 クライアントシステムが RFC 931 (IDENT など) 準拠のデーモンを実行することを 必要とし、非 UNIX クライアントからの接続に対しては大きな遅延を生じさせ得ます。 タイムアウト期間の指定は、省略可能です。 タイムアウト値を指定しないと、 コンパイル時に定義されたデフォルト値が使用されます。 .SH その他 .IP "banners /some/directory" `/some/directory' 内で、デーモンプロセスと同じ名前のファイルを探し (例えば telnet サービスでは in.telnetd です)、 その内容をクライアントに対してコピーします。 改行文字は復改と改行へ置換され、 % シーケンスは展開されます (hosts_access(5) マニュアルページを参照してください)。 .sp tcp ラッパのソースコード配布では、 banners の管理に有用なサンプル makefile (Banners.Makefile) を提供しています。 .sp 警告: banners は、コネクション指向 (TCP) ネットワークサービスのみで サポートされます。 .IP "nice [ number ]" プロセスの nice 値 (デフォルトは 10 です) を変更します。 他のプロセスにより多くの CPU 資源を使うには、正の値を指定してください。 .IP "setenv name value" (name, value) のペアを、プロセスの環境に挿入します。 value は % 展開の対象となり、空白文字を含んでもかまいません (先頭と末尾の空白は取り除かれます)。 .sp 警告: 多くのネットワークデーモンは、 login やシェルプロセスを生成する前に、自己の環境をリセットします。 .IP "umask 022" シェル組み込みの umask コマンドに似ています。 022 という umask は、 グループおよび全世界の書き込み権限を持つファイルの生成を防ぎます。 umask 引数は 8 進数である必要があります。 .IP "user nobody" .IP "user nobody.kmem" "nobody" のユーザ id (またはユーザ "nobody" でグループ "kmem") の権限をプロセスに設定します。 最初の形式は、全サービスを root 権限で実行する inetd の実装において有用です。 2 番目の形式は、特殊なグループ権限のみを必要とするサービスに有用です。 .SH 診断 アクセス制御ルールに文法エラーがあるとき、 エラーは syslog デーモンに報告されます。このとき、 その後のオプションは無視され、サービスは拒否されます。 .SH 関連項目 hosts_access(5), デフォルトのアクセス制御言語 .SH 作者 .na .nf Wietse Venema (wietse@wzv.win.tue.nl) Department of Mathematics and Computing Science Eindhoven University of Technology Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands \" @(#) hosts_options.5 1.10 94/12/28 17:42:28