HOSTS_OPTIONS(5)

NAME
hosts_options - ホストアクセスコントロールの拡張書式

DESCRIPTION
この文書は、hosts_access(5) で説明する文法のオプショナルな拡張に ついて解説するものである。この拡張は、プログラムをコンパイルした 際に利用の可否が決まる。例えば、Makefile を編集し、コンパイル時 に PROCESS_OPTIONS を有効にした場合である。

拡張書式はこのような形式である:

daemon_list : client_list : option : option ...

最初のふたつのフィールドについては、hosts_access(5) のマニュアル で解説されている。ルールの残りの部分は、0 個以上のオプションの列 である。オプションの中では、すべての ":" という文字はバックスラッ シュによって保護される必要がある。

オプションは "keyword" または "keyword value" の形式をとる。オプ ション群は記述された順に解釈される。いくつかのオプションは %<letter> による置き換えを仮定している。初期のバージョンとの互換 性のために、"=" を keyword と value(値) の間におく事も許されてい る。

LOGGING (ログの記録)

severity mail.info

severity notice
    イベントをログに記録する severity("激しさ") のレベルを変更する。 Facility names (供される利便の項目、たとえば mail) は任意であり、 古い syslog の実装ではサポートされていない。severity オプション は、指示されたイベントを強調するか、あるいは無視するために有意で ある。

ACCESS CONTROL (アクセスの可否)

allow

deny
    サービスの可否。これらのオプションは、ルールの最後に記述しなけれ ばならない。

allow と deny は、すべてのアクセスコントロールのルー ルを、ただひとつのファイル、たとえばhosts.allow に納める事 を可能にしている。

明示されたホストだけにアクセスを許可するには:

ALL: .friendly.domain: ALLOW
ALL: ALL: DENY

トラブルメイカーとなる、いくつかのホストを除いて、すべてのホスト からのアクセスを許可するには:

ALL: .bad.domain: DENY
ALL: ALL: ALLOW

ドメイン名のパターンの最初にはドットがついている事に注目されたい。

RUNNING OTHER COMMANDS (外部コマンドの実行)

spawn shell_command
    hosts_access(5) のマニュアルで解説される %<letter> の置き換えが 実行されたのちに、子プロセスで、指定のシェルコマンドを実行する。 コマンドは標準入力、標準出力、そして標準エラー出力を null デバイ スに繋げた状態で実行される。したがって、これによってクライアント ホストとの会話が混乱するようなことはない。例えば:

    spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) &

    これは、%h を リモートホストの名前またはアドレスに置き換えたのち に、バックグラウンドの子プロセスで、シェルコマンド "safe_finger -l @%h | mail root" を実行する。

    この例では、(リモートの) finger サーバーから送られてくるデータに よって、ダメージがもたらされる可能性を抑えるため、標準の "finger" コマンドに代わって "safe_finger" コマンドを利用している。 この "safe_finger" コマンドは、daemon wrapper package に含まれて いる。これは、標準の finger の露払いとして、リモートホストから送 られるデータをフィルタリングする。

twist shell_command
    hosts_access(5) のマニュアルで解説される %<letter> の置き換えが 実行されたのちに、現在のプロセスを、要求されたシェルコマンドで置 き換える。標準入力、標準出力そして標準エラー出力は、クライアント のプロセスに接続される。このオプションはルールの最後に記述する必 要がある。

    実際の ftp デーモンに代わって、メッセージを変更してクライアント に返すには:

    in.ftpd : ... : twist /bin/echo 421 Some bounce message

    クライアントプロセスと会話する別の方法として、後述する banners オプションを参照されたい。

    /some/other/in.telnetd を、コマンドラインの引数やプロセスの環境 変数によって汚染されることなく実行するには:

    in.telnetd : ... : twist PATH=/some/other; exec in.telnetd

    警告: UDP サービスにおいては、standard I/O の利用、またはクライ アントプロセスとの交信のための read(2)/write(2) ルーチンと、 command を混同しないように; UCP は、また別の基本的な I/O を必要 とする。

NETWORK OPTIONS (ネットワークに関するオプション)

keepalive
    定期的にサーバーはクライアントにメッセージを送るようになる。もし、 クライアントからの応答がない場合、接続は切断されたものと見なされ る。この keepalive オプションは、ユーザーがサーバーに継っている 間に、マシンの電源を切った時に有用である。keepalive オプションは datagram (UDP) services には役に立たない。

linger number_of_seconds
    サーバーのプロセスが接続を切断したのち、カーネルが未配送データの 再送を試みる時間を指示する。

USERNAME LOOKUP (ユーザー名の問い合わせ)

rfc931 [ timeout_in_seconds ]
    RFC 931 (TAP, IDENT, RFC 1413) にしたがう形で、クライアントユー ザー名を問い合わせる。サービスが TCP 以外の転送方法に基づいてい る場合は、このオプションは黙って無視される。この方法はクライアン トのシステムが RFC 931 と互換性のあるデーモン (IDENT など) を走 らせていることが条件で、non-UNIX のクライアントからの接続に対し ては、著しく遅くなるだろう。timeout までの秒数は任意である。 timeout が指示されない場合、コンパイル時に決められた初期値が使わ れる。

MISCELLANEOUS (その他の事項)

banners /some/directory
    `/some/directory' の中で、デーモンプロセスの名前と一致するファイ ル (たとえば、telnet サービスなら in.tenletd)を探し、その内容を クライアントに対してコピーする。改行文字は、CR(carriage-return) 改行文字に置き換えられ、%<letter> は展開される (hosts_access(5) のマニュアルを参照)。

    tcp wrapper の配布ソースには、手際よく banner を保守するための、 サンプルの makefile (Banners.Makefile) が含まれている。

    警告: banners は connection-oriented (TCP) network (コネクション に指向の高いサービス)でのみ利用する事ができる。

nice [ number ]
    プロセスの nice 値を変更する(初期値は 10)。他のプロセスに、より 多くの CPU 資源を割り当てるには、正の値を指示する。

setenv name value
    (name, value) のペアをプロセスの環境変数に設定する。value は %<letter> への展開があるものと仮定され、ホワイトスペースの利用は 自制する必要があるだろう(ただし、前後の空白は切り捨てられる)。

    警告: 多くのネットワークデーモンは login または shell プロセスを 再起動する前に、その環境変数をリセットする。

umask 022
    シェルのビルトインコマンド umask と似た機能。022 の umask は、 group と world による書き込み禁止措置によって、ファイルの作成を 予防する。umask の引数は 8 進数でなければならない。

user nobody

user nobody.kmem
    ユーザー "nobody" (またはユーザー "nobody", グループ "kmem")は、 特別な扱いとみなす。最初の形式は、root 権限で全てのサービスを実 行するような inetdの実装で有用である。二番目の形式は、グループの 権限のみが必要なサービスのために有用である。

DIAGNOSTICS
アクセスコントロールルールに文法エラーが発見された場合、エラーは syslog デーモンへ報告される。余計なオプションは無視され、サービ スは拒否される。

SEE ALSO
hosts_access(5), 基本的なアクセスコントロール書式

AUTHOR
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

翻訳者
FUKUSHIMA Osamu/福島於修 <fuku@amorph.rim.or.jp>