Provided by: xmanpages-ja_4.1.0.20011224-6_all bug

名前

       xfwp - X のファイアウォールプロキシ

書式

       xfwp [option ...]

オプション

       に指定できるコマンド行オプションを以下に示す:

       -cdt num_secs
               アクティブでない xfwp クライアントに対するデータ接続(xfwp が既に X プ ロトコルを中
               継している接続)を閉じるまでのデフォルトの時間(604800秒)を 上書き指定する。

       -clt num_secs
               xfwp クライアント待ちのポートを閉じるまでのデフォルトの時間(86400秒)を  上書き指定
               する(このポートは、X  クライアントが X サーバに接続しようとす るときに最初に接続す
               るxfwp のポートである)。

       -pdt num_secs
               プロキシマネージャに対するアクティブでない接続を閉じるまでのデフォルト        の時
               間(3600秒)を上書き指定する。

       -config file_name
               設定ファイルの名前を指定する。

       -pmport port_number
               プロキシマネージャが接続するデフォルトのポート番号(4444)を上書き指定す る。

       -verify それぞれのサービスリクエストにマッチする設定ファイル規則を表示する。

       -logfile file_name
               監査情報がログとして記録するファイルの名前を指定する。 ログの書式は 「時刻; イベン
               トコード; IP の始点アドレス; IP  の終点アドレス;設定規則番号」  である。  イベント
               コードは接続成功時に "0", 設定規則によって接続が拒否された場合に "1", 認証失敗によ
               り接続が拒否された場合に "2" となる。 イベントコードが "1"  であり、かつ設定ファイ
               ルが使われている場合、 規則がマッチした設定ファイルの行番号が設定規則番号となる(詳
               しく は「設定ファイル」のセクションを参照すること)。 イベントコードが  "1"  でない
               か、設定ファイルが使われていなければ、 設定規則番号は "-1" となる。 となる。

       -loglevel {0,1}
               ログに記録する監査情報の詳しさを指定する。   "0"  の場合は全ての接続が記録される。
               "1" の場合は失敗した接続が記録される。

       -max_pm_conns num_connections
               プロキシマネージャの最大接続数を指定する。 デフォルト値は 10 である。

       -max_pm_conns num_connections
               X サーバの最大接続数を指定する。 デフォルト値は 100 である。

説明

       X ファイアウォールプロキシ(xfwp)は、ファイアウォール越しに X の通信を 転送するために、ネッ
       トワークのファイアウォールホスト上で動作させるアプ  リケーション層のゲートウェイプロキシで
       ある。 X サーバセキュリティ機能拡張および認証チェックと共に用いると、xfp は 内部ネットワー
       ク上に設置した X サーバのアドレスの隠蔽とサーバの 接続ポリシーの強制の両方を行うための、安
       全かつシンプルで信頼できる機構 を作ることができる。xfwp は、内部で起きた悪意  を持った行為
       に対する防御は行うことができない。しかし、適切に設定すれば、  認証を受けたインターネット上
       の外部ホストで実行された信頼できるクライア ントしかローカルの X サーバへのアクセスを許され
       ないことが保証できる。

       xfwp を使用するためには、起動時に xfwp の位置がわかるように設定されて おり、ローカルの環境
       で動作している X プロキシマネージャが必要である。 [注意: ローカルの環境で複数の xfwp  を動
       かすことができる。詳しくは後述         のロードバランシングについての説明を参照すること。]
       xfindproxy    ユーティ     リティを使って(これはリクエストをプロキシマネージャ経由で中継す
       る)、ユー ザは xfwp に特定の X サーバに対するクライアントの監視ポートを割り当て ることがで
       きる。これは、内部的にはそのサーバに対する将来の接続リクエス  トに関連づけられる。プロキシ
       マネージャは、このクライアント待ちのポート 番号を xfindproxy 経由で返す。その後、xfwp のホ
       スト名とポート番号はバ ンド外のツールによって(つまりウェブブラウザ経由で)リモートの X クラ
       イ アントに渡される。これにより、目的の X サーバではなく xfwp に接続する ことができる。

       X  クライアントの接続リクエストが  xfwp の待ちポートのひとつに届いたとき、 xfwp はこの待ち
       ポートに対応する X サーバに接続して認証チェックを行う。 この認証チェックはサーバおよび、リ
       クエストしてくるクライアントに対して xfwp が持っている設定可能なアクセス制御リストについて
       行われる。 チェックに失敗した場合や、リクエストを受けたサーバが X セキュリティ機能拡張に対
       応していない場合には、クライアント接続は失敗 する。 そうでない場合には接続は認められ、それ
       以降のクライアントとサーバ間の通 信は xfwp によって中継される。 この中継はクライアントが接
       続を閉じるか、クライアント接続のアクティブで  ない状態が指定されたタイムアウト期限を超える
       まで行われる。 システムサイクルへの負担を最小限にするため、xfwp は接続上で通信を待つ  間は
       ブロックするように設計されている。

       設定ファイルなし、つまりサイトポリシーを定義せずに  xfwp  が実行されてい る場合で、xhost +
       が実行されてホストベースの認証チェックが無効になって いる X サーバを使って xfwp が動作して
       いる場合には、クライアントが  xfwp 経由でこの X サーバに接続しようとすると、X サーバはその
       接続を拒否する。 xfwp がサイトポリシーを定義していない場合は、クライアントが xfwp 経由  で
       X サーバに接続するためにはホストベースの認証が有効でなければならない。

IP パケットフィルタリングルータを使った通信

       xfwp の目的は、ファイアウォールの外の X クライアントから内部ネットワー クの X サーバへのア
       クセスに対して、信頼できる制御をできるようにするこ  とである。現時点では、このようなアクセ
       ス制御は、通常は   IP   パケットフィ  ルタリングルータを含むファイアウォールの設定で実現す
       る。多くの場合、こ のようなフィルタの規則では、内部ネットワークのホストに対する  X  サーバ
       のポート(範囲 6000-6xxx)へのアクセスは禁止される。

       xfwp を動作させるためには、IP パケットフィルタリングルータの規則から、 ポート 6000-6xxx に
       対するアクセス制限を取り除かなければならない。[注意: xfwp は 6001 から始まる範囲のポートだ
       けを割り当てる。したがって、全て  の内部ネットワーク上のホストに対するポート 6000 番へのア
       クセスは禁止し たままでよい。] これは、内部ネットワークののファイアウォールを X クラ  イア
       ントによる無差別アクセスに対してオープンにするということではない。  xfwp  は、IP  パケット
       フィルタリングルータそのものと同様の、完全に設定可  能な規則ベースのアクセス制御システムを
       サポートしている。  xfwp  は実際には、完全に設定可能かつX の通信専用で適用される、ルータと
       は別のレベルのパケットフィルタリング制御を追加する。詳しくは、  「設定ファイル」のセクショ
       ンを参照すること。

インストール、設定、トラブルへの対処

       xfwp は通常は内部ネットワークのファイアウォールホスト上でバックグラウ ンドプロセスとして実
       行される。 xfwp は前述の任意のコマンド行オプションを指定して起動することができる。 to xfwp
       whether  or not it supports the particular policy.  Consult the man 先に述べたように、xfwp
       はプロキシマネージャおよび xfindproxy ユーティリティと組み合わせないと利用できない。  xfwp
       はユーザが定義した X サーバのサイトセキュリティポリシーに対応する ように設定できるが、この
       ポリシーにおいては、X サーバは特定のポリシーを サポートしているかどうかを xfwp  に示す必要
       がある。  これらの要素に関する詳しい情報については、オンラインマニュアルを参照す  ること。
       xfwp は、-DDEBUG オプションを付けて再コンパイルすることによって、 デバッグ出力を出すように
       できる。

性能、ロードバランシング、リソース管理

       xfwp  は4種類の異なる接続を管理する。これは、プロキシマネージャ(PM)デー タ、X クライアント
       待機、X クライアントデータ、X サーバ接続である。xfwp を使うシステム管理者は、xfwp のサービ
       スの性能を最適化するために、これ  らの接続タイプに対するリソースの割り当てと再利用の方法を
       理解すべきであ る。

       それぞれの接続タイプはデフォルト数の割り当てスロットとデフォルトの  タイムアウト値を持って
       いる。 PM 接続と X サーバ接続に対する割り当てスロットの数はコマンド行オプション で設定でき
       る。 接続タイムアウトもコマンド行オプションで設定できる。 タイムアウト値とは、データが流れ
       ないままでオープンした接続状態が許され る時間である。接続上にデータが流れると、 接続を閉じ
       るまでの時間は自動的にリセットされる。4つの接続タイプにおけ プロセスの接続スロット全体のデ
       フォルトの配分と、それぞれの接続タイプに 対するデフォルトのタイムアウト値の選択は、xfwp の
       利用モデルが含んでい る多くの仮定に基づいて決まる。

       PM 接続のデフォルト値は 10 であり、PM 接続のデフォルトの持続時間は、  それぞれの接続につい
       て最後にデータが流れてから  3,600  秒(1時間)である。  起動時には、xfwp  は任意の非予約ポー
       ト(xfwp のコマンド行で指定しな ければ、デフォルト値の 4444 が使われる)において PM 接続リク
       エストを待  つ。PM は通常、xfindproxy を使って PM の呼び出しが行われたときしか xfwp に接続
       しない。 以降は、両者のメッセージ交換が終わった後でも、デフォルトの接続有効期間 の間は  PM
       は xfwp に接続したままである。場合によっては、これが原因で PM 接続スロットが枯渇してしまう
       こともある。 システム管理者は、多くの PM から1つの xfwp に接続が行われることを予想  した場
       合には、-pdt コマンド行オプションを用い、アクティブでない接 続がオープン状態であることが許
       される範囲で望ましい有効期間を反映させた  タイムアウト値を指定して  xfwp  を起動すべきであ
       る。

       xfwp  クライアントリスナは、xfindproxy を呼び出して設定することができる。 最後のデータが流
       れた時点から86,400秒(24時間) の有効期間の間は、X  クラ  イアントの接続リクエストを待ち続け
       る。この期間を過ぎると、リスナは自動  的にクローズされ、その fd は後で割り当てられるために
       回収される。 クライアントの待ちポートが利用可能であることを保証するような別のタイム アウト
       値をどうやって選べばよいかという問題に対しては、システム管理者は (xfindproxy を使って)リス
       ナが割り当てられた時間とクライアントが実際に xfwp への接続を試みる時間との間に予想されるず
       れを考慮しなければならな  い。また、最初のクライアントデータ接続が閉じた後にクライアントの
       リスナ が再利用される見込みも考慮しなければならない。

       それぞれのクライアント接続には、最後にデータが流れてから 604,800 秒 (7* 24 時間)の存続時間
       がデフォルトで割り当てられる。  この期間が過ぎると、接続は自動的にクローズされ、その fd は
       将来の 割り当てのために回収される。 実際には、サーバ接続はリモートの X  クライアントからの
       接続リクエストが fwp のクライアント待ちポートのいずれかに届くまでは確立されないので、 クラ
       イアントデータのタイムアウトはクライアント-xfwp および xfwp-サーバ  の両方の接続に対して適
       用される。xfwp を通じて多くのクライアントデータ 接続が生じることが予想される場合、システム
       管理者はデフォルトのタイムア ウト値を変更することを考えるべきである。

設定ファイル

       xfwp の設定ファイルは xfwp のホストマシン上にあり、X クライアントのデー タ接続を許可するか
       拒否するかを指定する。ファイルのパス名は起動時に指定  する。設定ファイルが指定されていなけ
       れば、xfwp を通過する全ての X クラ  イアントのデータ接続リクエストは、デフォルトで許可され
       る。ただし、この  場合にも他の X サーバ認証チェックには成功しているものとする。設定ファ イ
       ルが与えられているが、そのエントリのいずれも接続リクエストにマッチ  しない場合には、デフォ
       ルトでは接続は拒否される。

       設定ファイルのある行が '#' で始まる場合や空行の場合は、その行は 無視されて評価ルーチンは次
       の行へと進む。

       設定ファイルでは、全く独立の2つの認証チェックがサポートされている。1つ は xfwp  自身が実行
       するものであり、もう1つは   xfwp  の目的のサーバへの問  い合わせの結果である。前者において
       は、設定ファイルでは IP パケットフィ  ルタリングルータに似た記法やセマンティックが使われて
       いる。これは以下の 形式の、0個以上の「始点アドレス-終点アドレス」の規則からなる。

       {permit | deny} <src> <src mask> [<dest> <dest mask> [<operator> <service>]]

       permit/deny キーワード  ``permit'' はアクセス許可を示し、キーワード ``deny'' はアク セス拒
                   否を示す。

       src         接続リクエストを出したホストとマッチさせる  IP  アドレス。この値は  IP  フォー
                   マットで記述する。

       src mask    サブネットマスクであり、これも  IP フォーマットで記述する。この値はさら に始点
                   アドレスのマスクを調べるために使われる。マスク内でセットされてい      るビット
                   は、入ってくるアドレスのビットで、指定された src と比較すると きに無視するもの
                   を示す。

       dest        入ってくる接続リクエストの終点アドレス(つまり、クライアントが接続しよ うとして
                   いる X サーバの IP アドレス)とマッチさせる IP アドレス。

       dest mask   サブネットマスクであり、これも  IP フォーマットで記述する。この値はさら に終点
                   アドレスのマスクを調べるために使われる。マスク内でセットされてい      るビット
                   は、入ってくるアドレスのビットの内、指定された destination と 比較するときに
                   視するものを示す。

       operator    (service フィールドが NULL でなければ)常に ``eq'' である。

       service     ``pm'', ``fp'', ``cd'' いずれかの文字列である。これらはそれぞれプロキ シマネー
                   ジャ、xfindproxy, クライアントデータに対応する。

       後者の認証チェックの場合には、設定ファイルは次の形式のサイトのポリシー 規則を0個以上含む:

       {require | disallow} sitepolicy <site_policy>

       require     対応するサイトポリシーの少なくとも1つが  X  サーバに  設定されていなければなら
                   、そうでない場合には接続を拒否しなけれ ばならないことを指定する。

       disallow    対応するサイトポリシーのいずれもが X サーバに設定されて いてはならず、そうでな
                   い場合には接続を拒否しなければならないこと を指定する。

       sitepolicy  これは必須のキーワードである。

       <site_policy>
                   ポリシー文字列を指定する。この文字列は英数字を任意に組み合わせたもので      あ
                   り、対象とする X サーバだけが解釈できればよい。

XFWP の設定ファイルのエントリの評価規則

       最初のタイプの設定可能な認証チェックの場合には、始点アドレスに基づいて (オプションとして終
       点アドレスとタイプも使用できる)それぞれの接続タイプ に対して接続の許可および拒否を行うこと
       ができる。 それぞれのファイルエントリでは、``permit'' または  ``deny''  であるキー  ワード
       と2つの始点アドレスフィールドは最低限指定しなければならない。    必要ならば    destination
       フィールドと service フィールドを使って、非常に 細かいアクセス制御を行うことができる。

       規則マッチングのアルゴリズムは以下である:

            while (チェックするエントリが残っている)
            {
              if ((<originator IP> AND (NOT <src mask>)) == src)
                [if ((<dest X server IP> AND (NOT <dest mask>)) == dest)]
                  [if (service fields が存在し、かつマッチしている)]
                    キーワードに応じて、接続の許可または拒否を行う
              else
                continue
            }
            if (マッチする規則がない)
              接続を拒否する

       許可と拒否の規則でサービスや操作が指定されていない場合、その規則は  全てのサービスに適用さ
       れる。設定ファイルが指定されており、その中に  有効な許可か拒否の規則がひとつでも含まれる場
       合は、許可が明示的に与えら れていないホストは接続を拒否されるようになる。

       サイトのポリシー設定のチェックは、入ってくる接続リクエストに対する別の (そして X  サーバだ
       けの)認証で構成される。require(満たさなければならな い)の規則と disallow(接続禁止)の規則を
       任意の数だけ指定することができる が、全ての規則は同じタイプでなければならない。つまり、1つ
       のファイルに ``require'' と ``disallow'' のキーワードをどちらも記述するとはできない。 この
       チェックのためのアルゴリズムは以下である:

            if (X サーバがサイトポリシー文字列のいずれかを認識する)
              if (keyword == require)
                接続を許可する
              else
                接続を拒否する
            else
              if (keyword == require)
                接続を拒否する
              else
                接続を許可する

       xfwp がサイトのポリシーのチェックを行うのは、始点アドレス-終点アドレス  のチェックで接続を
       認められた場合だけである。


       # サーバがこれらのポリシーの1つをサポートしている場合に限り、接続が許可
       # されるが、それでも適用可能な規則にマッチしていなければならない
       #
       require sitepolicy policy1
       require sitepolicy policy2
       #
       # 8.7.6.5 が送ってきた pm 接続を拒否する。[注意: pm サービスを明示的に
       # 許可している場合、以下に示すように destination フィールドがなければ
       # ならない。]
       #
       deny  8.7.6.5  0.0.0.0  0.0.0.0  255.255.255.255  eq  pm
       #
       # xfindproxy の X サーバがどこにでも接続できるように許可する [注意: fp
       # サービスを明示的に許可している場合、以下に示すように source フィール
       # ドがなければならない。]
       #
       permit  0.0.0.0  255.255.255.255   0.0.0.0  255.255.255.255  eq  fp
       #
       # IP ドメイン 192.0.0.0 から送られた全ての接続タイプだけを許可する
       #
       permit  192.0.0.0   0.255.255.255

       最初にマッチした規則が適用されるので、始点アドレス-終点アドレスの規則 は正しい順で記述しな
       ければならない点に注意すること。解析器の文法チェッ  クに加え、システム管理者が実際にマッチ
       する規則を調べる際の補助を行うた めの特別なコマンド行オプション(-verify)が用意されている。

バグ

       xfwp は待ちポートを割り当てる前にサーバのサイトポリシーとセキュリティ 機能拡張を確認すべき
       である。

関連項目

       xfindproxy (1), Proxy Management Protocol spec V1.0, proxymngr(1), Xserver(1)

著者

       Reed Augliere, consulting to X Consortium, Inc.