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) & は、%h をリモートホストの名前またはアドレスに置換した後、シェル コマンド "safe_finger -l @%h | mail root" を、バックグラウン ド の子プロセスで実行します。 この例では、通常の "finger" コマンドではなく、 "safe_finger" コ マンドを使用しています。これにより、 finger サーバから送られ る デー タに起因して発生し得るダメージを限定します。 "safe_finger" コマンドは、デーモンラッパパッケージの一部です。これは、通常 の finger コマンドを包んで、リモートホストから送られるデータをフィ ルタします。 |
twist shell_command |
hosts_access(5) マニュアルページで解説される %<letter> 展 開 を 行っ た後、現在のプロセスを、指定したシェルコマンドで置き換えま す。 stdin, stdout, stderr は クライアントプロセスに接続され ま す。このオプションは、ルールの最後に登場する必要があります。 実 際 に ftp デーモンを実行する代わりに、カスタマイズした中継 (bounce) メッセージを送るには、次のようにします: in.ftpd : ... : twist /bin/echo 421 Some bounce message クライアントプロセスと対話する別の方法としては、後述の banners オプションを参照してください。 コ マ ン ド ラ イ ン 配 列 や プ ロ セ ス の 環境を汚染せずに、 /some/other/in.telnetd を実行するには、次のようにします: in.telnetd : ... : twist PATH=/some/other; exec in.telnetd 警告: UDP サービスでは、標準 I/O や read(2)/write(2) ルーチンを 使 用してクライアントプロセスと通信するプログラムを、twist の対 象としてはなりません。 UDP では、他の I/O プリミティブを必要 と するからです。 |
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) マニュ アルページを参照してください)。 tcp ラッパのソースコード配布では、 banners の管理に有用なサンプ ル makefile (Banners.Makefile) を提供しています。 警告: banners は、コネクション指向 (TCP) ネットワークサービスの みでサポートされます。 |
nice [ number ] |
プ ロセスの nice 値 (デフォルトは 10 です) を変更します。他のプ ロセスにより多くの CPU 資源を使うには、正の値を指定してく だ さ い。 |
setenv name value |
(name, value) のペアを、プロセスの環境に挿入します。 value は %<letter> 展開の対象となり、空白文字を含んでもかまいません ( 先 頭と末尾の空白は取り除かれます)。 警告: 多くのネットワークデーモンは、 login やシェルプロセスを生 成する前に、自己の環境をリセットします。 |
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 スポンサーリンク
|