HOSTS_OPTIONS(5) | FreeBSD File Formats Manual | HOSTS_OPTIONS(5) |
名称
hosts_options -ホストアクセス制御言語の拡張解説
この文書は、hosts_access(5) 文書で解説した言語に対するオプション拡張を解説します。この拡張は、プログラム構築時に有効にされます。例えば、 Makefile を編集し、コンパイル時オプション PROCESS_OPTIONS を有効にします。この拡張可能な言語は、次の書式を使用します。
daemon_list : client_list : option : option ...
最初の 2 つのフィールドは、hosts_access(5) マニュアルページで解説しています。ルールの残りは、0 個以上のオプションです。オプション中の ":"文字は、バックスラッシュで保護する必要があります。
オプションの形式は、"keyword"または "keyword value"です。オプションは、指定した順番で処理されます。オプションによっては、%<letter>置換の対象となります。以前のバージョンとの後方互換性のために、 keyword と value の間に "="を入れることが許されています。
記録
- severity mail.info
- severity notice
- どの重要度のイベントを記録するかを変更します。ファシリティ名 (mail など) はオプションです。これは、古い syslog の実装のシステムでは、サポートされていないでしょう。固有のイベントを強調したり無視したりするために、 severity オプションを使用します。
アクセス制御
- allow
- deny
- サービスを許可 (拒否) します。これらのオプションは、ルールの最後に登場する必要があります。
allow と deny のキーワードにより、すべてのアクセス制御ルールを単一のファイルに、例えば hosts.allow ファイルに、置くことが可能となります。
特定のホストだけからのアクセスを許可するには、次のようにします。
ALL: .friendly.domain: ALLOW ALL: ALL: DENY
少数のトラブルメーカ以外からのアクセスをすべて許可するには、次のようにします。
ALL: .bad.domain: DENY ALL: ALL: ALLOW
ドメイン名のパターンの前のドットに注意してください。
他のコマンドの実行
- spawn shell_command
-
hosts_access(5) マニュアルページで解説される %<letter>展開を行った後、指定したシェルコマンドを子プロセスで実行します。コマンドの実行は、stdin, stdout, stderr を null デバイスに接続して行われますので、クライアントホストとの会話が混乱することはありません。例えば、
spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) &
- twist shell_command
-
hosts_access(5) マニュアルページで解説される %<letter>展開を行った後、現在のプロセスを、指定したシェルコマンドで置き換えます。 stdin, stdout, stderr は、クライアントプロセスに接続されます。このオプションは、ルールの最後に登場する必要があります。
in.ftpd : ... : twist /bin/echo 421 Some bounce message
in.telnetd : ... : twist PATH=/some/other; exec in.telnetd
ネットワークオプション
- keepalive
- サーバがクライアントに対して定期的にメッセージを送るようにします。クライアントが応答しないとき、接続が断たれたものとみなされます。ユーザが、サーバに接続したままマシンの電源を落す場合に、 keepalive オプションが有用です。 keepalive オプションは、データグラム (UDP) サービスには使えません。
- linger number_of_seconds
- サーバプロセスが接続を閉じた後のどれだけの期間、未配送のデータをカーネルが配送しようとするかを指定します。
ユーザ名検索
- rfc931 [ timeout_in_seconds ]
- RFC 931 (TAP, IDENT, RFC 1413) を使用して、クライアントのユーザ名を検索します。サービスが TCP 以外の配送をベースにしている場合には、このオプションはとくに断りなく無視されます。このオプションを指定することにより、クライアントシステムが RFC 931 (IDENT など) 準拠のデーモンを実行することを必要とし、非 UNIX クライアントからの接続に対しては大きな遅延を生じさせ得ます。タイムアウト期間の指定は、省略可能です。タイムアウト値を指定しないと、コンパイル時に定義されたデフォルト値が使用されます。
その他
- banners /some/directory
-
`/some/directory' 内で、デーモンプロセスと同じ名前のファイルを探し (例えば telnet サービスでは、in.telnetd です)、その内容をクライアントに対してコピーします。改行文字は復改と改行へ置換され、 %<letter>シーケンスは展開されます (hosts_access(5) マニュアルページを参照してください)。
- nice [ number ]
- プロセスの nice 値 (デフォルトは、10 です) を変更します。他のプロセスにより多くの CPU 資源を使うには、正の値を指定してください。
- setenv name value
-
(name, value) のペアを、プロセスの環境に挿入します。 value は、 %<letter>展開の対象となり、空白文字を含んでもかまいません (先頭と末尾の空白は取り除かれます)。
- umask 022
- シェル組み込みの umask コマンドに似ています。 022 という umask は、グループおよび全世界の書き込み権限を持つファイルの生成を防ぎます。 umask 引数は、8 進数である必要があります。
- user nobody
- user nobody.kmem
- "nobody"のユーザ id (またはユーザ "nobody"でグループ "kmem") の権限をプロセスに設定します。最初の形式は、全サービスを root 権限で実行する inetd の実装において有用です。 2 番目の形式は、特殊なグループ権限のみを必要とするサービスに有用です。
診断
アクセス制御ルールに文法エラーがあるとき、エラーは、syslog デーモンに報告されます。このとき、その後のオプションは無視され、サービスは拒否されます。関連項目
hosts_access(5), デフォルトのアクセス制御言語作者
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