HOSTS_OPTIONS(5) | FreeBSD File Formats Manual | 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) &
- twist shell_command
-
hosts_access(5) のマニュアルで解説される %<letter>の置き換えが実行されたのちに、現在のプロセスを、要求されたシェルコマンドで置き換える。標準入力、標準出力そして標準エラー出力は、クライアントのプロセスに接続される。このオプションはルールの最後に記述する必要がある。
in.ftpd : ... : twist /bin/echo 421 Some bounce message
in.telnetd : ... : twist PATH=/some/other; exec in.telnetd
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) のマニュアルを参照)。
- nice [ number ]
- プロセスの nice 値を変更する(初期値は 10)。他のプロセスに、より多くの CPU 資源を割り当てるには、正の値を指示する。
- setenv name value
-
(name, value) のペアをプロセスの環境変数に設定する。value は %<letter>への展開があるものと仮定され、ホワイトスペースの利用は自制する必要があるだろう(ただし、前後の空白は切り捨てられる)。
- 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>