>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>HALF DONE (^_^; <<<<<<<<<<<<<<<<<<<<<<<<<<<<< DELEGATED(8) メンテナンスコマンド DELEGATED(8) NAME delegated - DeleGate server 概要 delegated [-F] -P [-v[t|v]] [name=value]* 説明 Delegatedは、TCP/IPプロトコル HTTP、Gopher、whois、FTP、Telnet、NNTP、SM TP、POP、その他をリレーする、DeleGateのサーバープロセスです。 DeleGateは、セキュリティ上ファイアウォールによってに分離されたサーバとク ライアント間の通信を取り次ぎます。必要に応じて、DeleGateは、クライアント のため、キャッシュ、ドメイン名解決、プロクシによるJIS文字符号変換を成し ます。DeleGateは、一種の実装をサポートし、それは、リモートホスト上に分散 されたサービスに統合した視野を与えます(それらリモートホストはファイアウ ォールの中に隠されるかもしれません)。トンネルを形づくるため、一対のDele Gateサーバを連結することができます。それは、非TCP/IPプロトコル(TTY I/ Oのような電話回線)経由し、TCP/IP通信を伝えます。DeleGate間の通信では、 TCP/IPに依存しません。 SOCKSやPROXY_HTTPのような他プロクシサーバと違い、DeleGateで対処するため のHTTPとGopherクライアントでの変更は必然ではありません。このように、いろ いろなプラットフォームの上の現行クライアントプログラムは、すぐにDeleGate (欠点を見てください)の恩恵受けることができます。 クライアントからその要求をDeleGateのためにリダイレクトするとき、それは、 応答メッセージ中のHTTPのURLとGopherディレクトリエンティティー(DirEnt) を書換えます。それにより、URLあるいはDirEntによって照会される要求は、Del eGateのポートに再び誘導されます。 本来のホストとポートの組み合わせは、特別なフォーマットでURLあるいはDirEn tなセレクタ部分にエンコードされます。この双方向書き換えメカニズムが、'MO UNTing'を実現します。マウント 手法例リソースhttp://hosti/を、ユーザーにhttp://hostx/iiiとしてみせる場 合。これを実現するためは、応答メッセージの中ののよう な連結情報を、に書き換えます。 この時、"SPECIALIST"と"GENERALIST"の2種類のdelegatedが存在します。クライ アントから見ると、SPECIALISTのdelegatedは、指定したホストの指定したプロ トコルのサーバに見えます; それは、httpdやgopherdのようにリモートホスト の上でふるまいます。 それは、サーバ応答をクライアントにリレーするときURLとDirEntを書き直すSPE CIALISTです。SPECIALISTが直接宛て先のサーバに接続できないときや、キャッ シュサーバに接続を望む場合、GENERALIST delegatedに要求を転送して、その応 答を受け取ります。GENERALISTは、'DeleGateプロトコル'の要求受けて、サーバ にリレーするとともに、応答データをキャッシュに保存します。以下に、DeleGa teサーバーチェーンの典型的なコンフィギュレーションを示します。 # # # # P client -> SPECIALIST -+ [A] # [B] # +-> P server *protocol P +-> GENERALIST --+-> GENERALIST -+-+ | *without DNS # *with DNS # | Q client -> SPECIALIST -+ *with cache # *accept [A] # +-> Q server *protocol Q # only # *JIS code conv. # # 内部ホストの上のGENERALIST[A]は要求をホストから受けます。ファイアウォー ル上のGENERALIST[B]は要求だけをGENERALIST[A]から受けます。このコンフィ ギュレーションでは、GENERALIST[B]はProxy_httpdで代替されるかもしれませ ん。他のコンフィギュレーションでは、SPECIALISTは直接GENERALIST[B]に接続 するもしれません。 GENERALISTは何ホップでも連結することができます。したがって、あなたは複数 ファイアウォールを克服することができ、複数ホストに異なるエクスパイアを指 定した複数のキャッシュ等を設置できます。 オプション -Pオプションでは、にサーバのポート番号を指定します。 delegatedがinetd(8)から起動されるとき、このオプションは無視されます。 'nowait'と'wait'ステータスは、inetd.confの中で指定されます。 'nowait'ステータスで、delegatedは一つだけサービスを処理し終了します。 'wait'ステータスで、そのdelegatedは、"MAXIMA=service:N"のNによって制限さ れた数の複数サービスを処理します。 そのホストマシンが複数のネットワークインターフェースや物理的なネットワ ークインターフェースに結合した複数のIPアドレスを持つとき、 あなたは、そのうちの一つを-Pのフォーマッ トで定義して選び、delegatedに連結することができます。delegatedは、複数 のポート、または、-P、...で指定した(限られた)複 数のネットワークインターフェースで受信することができます。(ここでの、< port>は、あるいはのどちらか です。) -vvオプションが指定される場合、delegatedはフォアグランドで実行し、ログ は制御しているTTY上に表示されます。-vtオプションが指定される場合、deleg atedのログは簡潔になります。 -Fオプションが指定される場合、delegatedは、delegatedとしてで はなく、のプログラムとして動作します。有効な機能は、'teleport d'と'cgi'です。このオプションは、最初の引数として指定しなければなりませ ん。(Delegateを、HTTPサーバから起動されるcgiプログラムとして、使用する ことができます) 他のオプションは、name=valueの組み合わせで指定することにより選択でき、 また、環境変数としてのセットすることができます。 オプションは、外部の資源からロードすることができます。置換えを見てください 。 識別名 値の書式 ------- ------------------ SERVER proto://host:port − 何のSPECIALISTであるか *ROUTE gateway-_-dst:src − srcからdstまでのゲートウェーに向けるルート *MASTER host:port − MASTER GENERALIST DeleGateを指定 MASTERP host:port − delegatedのプライベートマスター PROXY host:port − プロクシサーバが動いているところ *CONNECT {ca,ma,di}* − 接続をトライしなければならない順序 TUNNEL type:script-name − DeleGateトンネリングのためのSHIO-スクリプトファイル DELEGATE host:port − URLとDirEntがリダイレクトしなければならないところ *HOSTS host/addr,... − プライベートホスト/アドレス解決リスト RESOLV {file,nis,dns}* − 使用するホストファイルとDNS をコントロールする RES_CONF URL − resolv.confの場所 SOCKS socks-host − 使用するSOCKSをコントロール *MOUNT "path URL opt" − URLを//${DELEGATE}/path にマウントします *RELIABLE HostList − 指定されたホストからだけ許可します *REACHABLE HostList − 指定されたホストにだけ、届きます *PERMIT ProtoList − 許可されるプロトコル *CHARCODE {JIS,EUC,SJIS,II} − 応答中の日本語コードの変換 *CIIFONT URL − URLからCIIフォントをロードする CIISERVER URL − CIIフォントサーバのURL VARDIR dir-name − LOGDIR、CACHEDIR、WORKDIR、のdefault基点 CACHEDIR dir-name − HTTP/Gopherキャッシュディレクトリ CACHEFILE file-name-spec − データをストアする、キャッシュファイル CACHE cache-condition − キャッシュ可否を決定する条件 *EXPIRE {days,hours,secs} − キャッシュデータの満期 EXPIRELOG file-name − エクスパイアログファイル ETCDIR dir-name − 持続性のマネジメントファイルの場所 LOGDIR dir-name − DeleGateログの場所 LOGFILE file-name − DeleGateがロギングを作る場所 PROTOLOG file-name − httpdあるいはwu-ftp互換ログファイルを指定 COUNTER field:dir-name − その項目用カウンターファイルが存在するところ WORKDIR dir-name − DeleGateがcore dump するところ(-_-; ACTDIR dir-name − テンポラリーファイルの場所 TMPDIR dir-name − 見えないテンポラリーファイルの場所 PIDFILE file-name − delegatedのPIDを記録する場所 OWNER user-name − delegatedが、誰のプロセスでなければならないか MANAGER user-address − DeleGateのマネージャの電子メールアドレス PUBLIC proto://host:port − delegatedを公の一つにしておいてください HTMLCONV deent,enent,pre − HTMLとプレーンテキストの間のデコード/エンコード *DELAY what:seconds − 休止 *TIMEOUT what:seconds − 接続タイムアウト *MAXIMA what:number − サーバ等の最大数 OVERRIDE master:paramlist − マスターの制限を無視 *AUTH what:aproto:users − リモート管理権限を持つユーザー DGPATH dir1:dir2:... − 置換え資源のサーチパス FFROMCL filter-command − クライアントからdelegatedへのデータのフィルター FTOCL filter-command − delegatedからクライアントへのデータのフィルター FCL filter-command − クライアントとdelegatedの間のデータのフィルター FFROMMD filter-command − サーバからdelegatedへのデータのフィルター RPORT {tcp,udp}:host − サーバからdelegatedへの接続 HTTPMAIL server:relay − HTTP経由のメールアクセス SMTPSERVER mailserver − delegatedからメールをポストするのためのSMTPサーバ FILETYPE suffix:type-spec − 型変換するためのファイル名 *CMAP mapspec − 現行の接続についてのマッピング表 *NNTPCONF spec-list − nntp特定のコンフィギュレーション *CRON cron-spec − 予定されたアクション VSAP VSAP-server − リモートソケットマッパー経由の許可/接続 PORT port-list − リザーブポート *HTTPCONF config-script − httpコンフィギュレーション SMTPGATE config-dir − SMTP - SMTP/NNTPゲートウェー設定ディレクトリ CGIENV list-of-env-vars − CGIに渡される環境変数 -------- ------------------ -HostList host,net/mask,... − ホスト/マスク指定ネットのリスト ProtoList [-]protocol,... − プロトコルのリスト 上記の表の中で、'*'付きの名前は、コマンド引数でnameX=value1 nameX=value2 .. . nameX=valueNというように繰り返せます。他の名前が繰り返された場合、最後の 値が使用されます。 '#'がつくものは、その関数は現在用いられておらず、近い将来、除去されます。 SERVER proto://host:port (default: none) SERVER proto (means proto://-/) *SERVER proto://host:port:-:MountOptions 指定される場合、そのdelegatedは『host:port』で『proto』プロトコル サーバのようにふるまうSPECIALIST DeleGateになります。指定しない場 合、delegatedは、SPECIALIST、他のGENERALIST、DeleGateプロトコルを 話すクライアントから要求を受けるGENERALIST DeleGateになります。 mountOptionListをもつ3番めのパラメータ書式は、サーバが動的に選ばれ ることを示します(MountOptionsで真が指定された場合)。 例題: SERVER="nntp://newsserver1:-:from={*.dom1}" SERVER="nntp://newsserver2:-:from={*.dom2}" *ROUTE proto://host:port/-_-{dstHostList}:{srcHostList} (default: none) ホスト(srcHostListで指定)からリソース(dstHostListで指定)へのリク エストを'proto'プロトコルサーバの'host:port'にフォワードします。 ROUTEは、MASTER, PROXYのための一般化された表記法です。 HostListの中のホスト指定は、転送されるプロトコルを限定するために、 "proto://"で始める事もできます。 例題 ROUTE="http://h:p/-_-{ftp://*}:*" FTPにサーバにアクセスするだけの手段は、そのプロキシに"http://h:p/"で 転送されます。HostListの中のホスト指定は、ポート番号でよりrestracted することができます。 例題: ROUTE="http://h:p/-_-{*:21}:*" ポート番号21(FTPサービス)にアクセス するだけの手段は、そのプロキシにルートされます。注記:その表記 法が、'gateway-_-/Modifier/dst:src'として拡張することができま す。モディファイアーは、そのルートに従ってキャッシュあるいはコ ード変換をコントロールします。 *MASTER host:port (default: none) *MASTER host:port:HostList *MASTER host:port/master_control:HostList MASTERは、ROUTE="delegate://host:port/-_-HostList:*"の省略形です。 GENERALIST delegatedのポートは、ここで指定されなければなりません。 指定する場合、接続先ホストに届かないあるいは、名前解決できない、あるい は、"MASTER"がCONNECTパラメータの中で現行のプロトコルとホストのために 指定ているとき、delegatedはクライアントの要求を指定されたMASTER delegatedに転送します。 MASTERへのフォワーディングは、HostList(ホストとネットアドレスのリスト )でのポストフィックスによりフィルタできます。この場合、リストされた接 続先ホスト/ネットだけ、MASTERに転送されます。HostListの書き方は、以下 を見てください。 複数MASTERが与えられる時、最初のものから最後のものまでMASTERに接続でき るまでトライします。 3番目の中で、マスターの形態は、そのポート番号の後'/master_control'を持 ちます。 cache − MASTERにおける読取り専用キャッシュ teleport−MASTERに持続的'Teleport'接続を確立する MASTERP host:port (default: "" for HTTP Specialists) このパラメータは、HTTP Specialist delegatedのために与えられることがで きます。 HTTP Specialistsは、非HTTPプロトコルデータキャッシュとFTPとNNTPの接続 キャッシュのためMASTER delegatedを必要とします。MASTERもMASTERPも与え られないとき、デフォルト値としてMASTERP=""が使用されます。これは、自動 的に動的に割り当てられたポート番号でプライベートMASTERを作ることを意味 します。 MASTERがリモートホストで実行していて、MASTERとMASTERP=""の両方とも、指 定されると、ローカルホストでキャッシュを強制します。 PROXY host:port (default: none) *PROXYホスト:ポート:HostList HTTP SPECIALISTとFTP SPECIALISTだけが、この変数を指定することがで きます。 HTTP SPECIALIST、PROXYのための省略形です ROUTE="http://host:port/-_-HostList:*"。 別のHTTP SPECLIALISTあるいはProxy_httpdのポートは、ここで指定する ことができます。(Proxy_httpdは、充分に指定されたURLを要求メッセー ジの手順引数の中で受けるHTTPサーバです)。このパラメータが指定され る場合、delegatedはプロクシサーバに要求をフォワードします。 プロキシFTPは、以下のようにプロキシパラメータで連結することができ ます; SERVER=ftp PROXY=proxyhost:proxyport。 *CONNECT {cache,master,vsap,direct,socks} *:ProtoList:dstHostList (default: c,m,d,r,s:*:*) このパラメータは、以下のように、目的のサーバへの接続オーダーに対す るいくつかの接続方法を制御します: cache−キャッシュサーチ(接続なし) master−MASTER Delegateサーバー経由 vsap−VSAPサーバを経由 direct−目標サーバへ直結 socks−SOCKSサーバ経由 protoListとdstHostListが与えられる場合、このコントロールはその表に含 められたそのプロトコルとホストに適用されます。 各接続型はそれぞれ、その頭文字{c,m,d,s}で略記することができます。 例えば、外部のネットワークに接続されないホストで、キャッシュデータを 使用するには、CONNECT="cache:*:!./@"として明記します。 注記:現行のインプリメンテーションでは、`cache'が、表に含められる 場合、常に最初にためされます。ProtoListは、"*"でなければな りません。PROXYは、コントロールすることができません。 将来、キャッシュ型の後に、タイムアウト周期を続けられるでしょう ('direct/10s'あるいは'cache/5d'のように)。 TUNNEL type:script (default: none) 指定される場合、MASTERでの通信は、コマンドの標準入出力を経て 'tunneled'されます。そのトンネルは、TCP/IP処理なしのシリアルライン でできているかもしれません。ほかに、それはinetdから起動される delegatedへのチャンネルであるかもしれません。 タイプ部分はトンネル型を指定します、現在、'tty7'と'proc'だけ有効 です。その型がtty7であるとき、トンネルが確立される方法は指定され た'SHIO script'ファイルの中で記述されます。 配布ファイル中のsrc/sample.shioを見てください。その型がprocである とき、スクリプト部分はシェルコマンドで指定しなければなりません。 *HOSTS name/addr (default: localhost/127.0.0.1) domain-names/IP-addressesの組み合わせ表で、DNS(または、NISあるいは /etc/hostsテーブル)データを無視します。これは、頻繁に参照されるホス トの名前解決、エイリアスあるいは未知のホストの救済のスピードアップの ために、公のdelegateの中で使用できます。複数の名前あるいはアドレスを 、書式{name1,name2,...}/{addr1,addr2,...}で指定できます RESOLV {cache,file,nis,dns}* (default: file,nis,dns) 要求に対し、どの名前レゾルバーが使用するか指定します。 'file'は/etc/hostsのようなローカルホストファイルを意味し、'nis'はNIS サービスの上のホストマップを意味し、そして、'dns'は、DNSサービスを意 味します。 空の値が"RESOLV="として指定される場合、HOSTSパラメータの中でリスト されたホストだけを(あなたがホスト表をセキュリティのために隠さなけ ればならないときに役立つでしょう)解決することができます。 各レゾルバーは、任意の引数で指定することができます。 このように: cache:/path−キャッシュディレクトリ[/tmp/resolvy ]のパス名 file:/path − パスワードファイル[/etc/hosts ]のパス名 nis:nis-domain − NISドメイン名 dns:dns-host − DNSサーバとデフォルトドメイン デフォルトによって、複数IPアドレスを持つホストへの接続は、各アドレ スのため各レゾルバーの中で定義された順序でためされます。特別なパラメ ータHOSTS="*/*/RR"は、「『ラウンドロビン』」を指定するために加えるこ とができます。それらのIPアドレスが存在するところは、ラウンドロビン の順番を試みます。 RES_CONF URL (default: /etc/resolv.conf) 「『resolv.conf』」ファイルがどこにあるか指定してください。そのファ イルは、「『Resolvy』」という名前をつけられたDeleGateオリジナルのレ ゾルバーによって解読されます。 Resolvyは、"nameserver"、"domain"、"ndots"、"search"と"sortlist"を 認知します。 SOCKS sockd-host/dns-host/dflt-domain (default: none) SOCKSを使用するために、'sockd-host'でサーバを指定してください。あな たがコンパイル時に指定しSOCKS_デフォルト_SERVERを使用する場合、空の指定 "SOCKS="で十分です。複数のSOCKSパラメータを指定することができます。 直接または、Socks経由での接続の試行順序は、CONNECTパラメータでコント ロールすることができます。 *MOUNT "path-pattern URL" (default: "/ ${SERVER}") *MOUNT "path-pattern URL MountOptions"URL-パス 間をリダイレクトします。 また、パス-パターンが'*'で終了する場合、部分的に一致したパスは書き換え られます。URLが'*'で終了する場合、部分的に一致したパスはそのまま、URLの 後コピーされます。例題 HTTP/DeleGate の指定 MOUNT="/abc/* http://H:P/*" は、URL "/abc/def"を"http://H:P/def"に書き直します。このパターンマッチ ングが、MOUNT="/abc/[a-z]* http://H:P/*"のような'*'の前に前に置かれた表 記「[a-set-of-characters]」で限定されることができます。そしてそれは 「[set-of-characters]」の中でリストされたキャラクターで始まっている任意の文 字列でマッチします。。 '='がパス-パターンあるいはURLとして指定される場合、それはマウントと同等 です。すなわち、リクエスト中のパス-パターンの書き換え、または、応答URL 書き直し、によって制御されます。 MOUNTはNNTP/DeleGateで、ニュースグループのフィルタリングとエイリアシン グ、および、複数のNNTPサーバを結合するために使用できます。例えば、 MOUNT="alias-group. nntp://server/group."といった設定は、ニュースグループ `group.*'を通過させるとともに、`aias-group.*'のエイリアスを与えます。 単純なフィルタリング指定は、SERVER="nntp://server/group"で、 MOUNT="= nntp://server/group."に同等です。 複数のNNTPサーバのために、複数のMOUNTを使用する場合、delegatedはサーバ 上で、ニュースグループをマージし、クライアントに対して、まるで一つのサ ーバの上にニュースグループが存在するかのように提供します。 MountOptions MountOptionsは、`,'キャラクターによって切り離してリストされたオ プションリストです。 ro − ポストコマンドを妨げnntpプロトコルに対して読取り専用にします。 moved − HTTPの'302 Moved'の応答をリレーしない。 indirect− 例題:MOUNT="URL1/* URL2/* indirect"が与えられ、"URL1/name1/path" がリクエストされるとき、"URL2/name1/indirect.cfi"に"Base:URL3"が 含まれると、"URL3/path"がアクセスされます。 これは、MOUNT="URL1/name/* URL3/*"を生成することによってなされます。 robots={no,ok} − ロボットからのアクセスを禁止/許可します。 NNTPとFTPのためのデフォルト値は、"no"であり、他プロトコ ルでは、"ok"である。 from={HostList} − クライアント指定。 クライアントがHostListに含まれるとき、マウントの指定が適 用されます。 via={HostList} − 経由ホスト。 マウント指定は、HostListに追加された少なくとも1つのホスト の通過が終了した時のみ適用されます。 path={HostList} − ホストとみなされます マウント指定は、HostListに追加されたすべてのホストの通過が 終了した時のみ適用されます。 host={HostList}− クライアントをもつインターフェイスホスト。 クライアントがHostListに含められる指定されたネットワークイン ターフェースを通してdelegatedに接続した時のみ、マウント指定 が、適用されます。 HostListは"host:port"形式のリストでなければなりませんが、ケアしない 場合、":port"部分は省略することができます。ネットワークインターフェ ースの相違点をケアしない場合、"host"部分は"*"で置き換えることができ ます。 例題: 1) MOUNT="* URL1 host=this-host" MOUNT="* URL2 host=localhost" 2) -P70,80 MOUNT="* URL1 host=*:70" MOUNT="* URL2 host=*:80" ?AUTOMOUNT where:URLList((まだ実行されない)) URLList(`where/${URL}')にリストされたURLをマウントする。`where'が 省略される場合、HTTPとFTPでは、`http://${DELEGATE}/'、Gopherでは `http://${DELEGATE}/${GTYPE}/'にマウントされます。 DELEGATE host:port(default:current-host:current-port:all) DELEGATE host:port:ProtoList このパラメータは、URL/DirEnt が、`Gateway-_-URL' または、`proto://host :port/-_-URL'が書き換えられることによるnon-Proxy HTTP/Gopherアクセスの リレー機能を制御しますURL/DirEntにエンコードされるdelegatedのホストと ポートは、ここで確定しなければなりません。 デフォルトで、現行のホストは未加工のIPアドレス番号がエンコードされま す。そのため、delegatedのホスト名を解決する方法を知らなくても、クライ アントはdelegatedに接続できます。 2番目の指定書式では、DELEGATEの後にProtoList(プロトコルの表)が続き ます。この表で、どのプロトコルがDELEGATEにコールバックまたは、保留され なければならないかを指定します。プロトコルがこの変数中にリストされる場 合、応答メッセージ中のURLとDirEntsはDELEGATEにリダイレクトされます。中 継機能を制御するためには、このパラメータに"DELEGATE=-:0:-all"を指定し てください。 *PERMIT ProtoList (default:GENERALIST では、"*"、SPECIALISTでは、".") *PERMIT ProtoList:dstHostList:srcHostList どのプロトコルがRELIABLEホストに許可されるか指定してください。プロト コルがこの表に含まれない場合、プロトコルはRELIABLE指定に関係なく禁止 されます。 GENERALIST(SERVER指定のないdelegated)では、どんなプロトコルでもデフ ォルトで許可します。SPECIALISTでは、SERVERパラメータで指定したプロト コルだけ("."によってrepresendedすることができます)デフォルトで許可 します。 プロトコル名の後に`/{PortList}'が続く場合、PortListにリストアップした ポートだけが許可されます。 特例として、SERVER=telnet://host:port/のようにSERVERパラメータで指定 される時を除いて、非標準のテルネットポートのためのTelnetが、禁止され ます。 HTTP-SPECIALISTでは、"PREMIT=http,https/{443,563},gopher,ftp,wais" が デフォルトです。 2番目の指定書式は、dstHostListに含められたサーバホストに、ProtoList に含められたプロトコルでsrcHostListに含められたクライアントホストから アクセスを許可する事を意味します。ProtoList `*'は、許されたプロトコル の全てを意味します。 各々のフィールドのデフォルト値は、PERMIT、REACHABLEとRELIABLEに、それ ぞれイコールです。 dstHostListのホスト指定は、ポート番号で限定することができます。例えば 、PERMIT="telnet:{*:23}:*"は標準のポート番号(23)でだけテルネットを許 可することを意味します。 *RELIABLE HostList(default:localhost,./@,-/@ − delegatedの、ローカル ネットワークです) 指定した場合、HostListにリストしたホスト(あるいはネットワーク)から 送出された要求だけdelegatedで受けられます。HostListの書き方は下を見て ください。 *REACHABLE HostList(default:none =すべてのホストが接続) 指定する場合、HostListにリストしたホスト(あるいはネットワーク) に向けられた要求だけがdelegateで受けられます。 CHARCODE{JIS,EUC,SJIS,II}(default:none) *CHARCODE input-code/output-code指定した場合、HTTPとGopher SPECIALI STはJISコードテキスト型応答を指定された文字コードに変換します。 クライアントは、リクエスト中に`Accept-Language'フィールドにに選択し た項目を送り出すことによってこの指定を無視することができます。例え ば、クライアントからリクエストに`Accept-Language:(charcode=JIS)'を 含めて送信する時、delegatedのCHARCODE指定に関係なく応答テキストはJI Sに変換されます。 パラメーター値の完全な指定は、input-code/output-codeです。CHARCODE=JI Sは、CHARCODE=JP/JISの省略形です。ここで、JPは、日本語テキストエンコ ード{JIS,EUC,SJIS}を意味します。 あなたは、CHARCODE=CN/JISを指定することができます。これは、中国語テキ ストエンコーディング{Big5,GB,HZ}からJISに変換することを意味します。 `II' は 'inline image' を意味します。応答メッセージ中の各日本語文字コ ードは、HTMLのインラインイメージである''に変換されます。 これは、日本語フォントを持たないHTTPクライアントで役立ちます。IIは、 日本語以外でも使用することができます。表記`charset/II'は、IIに`charse t'のコードをエンコードすることを指示します。 CHARCODE=「II」は、CHARCODE=「JISX0208/II」の省略形です `(charcode=THRU)'がAccept-Languageで指定される場合、変換は使用禁止に なります。Accept-Languagesセットは、クライアントによってそのメニュー あるいはコンフィギュレーションファイル中で指定されるかもしれません。 CIISERVER URL(default:http://wall.etl.go.jp/-/fonts/cii/) *CIIFONT URL(default:none) CIIフォントは、外部資源から次のようにロードすることができます: CIIFONT="*" ... CIISERVERから全部のフォントデータを取り寄 せる。 CIIFONT=http://wall.etl.go.jp/-/fonts/cii/JISX0208/16x16 CIIFONT=ftp://wall.etl.go.jp/pub/fonts/cii/JISX0208/16x16 CIIFONT=file:///usr/local/lib/fonts/cii/JISX0208/16x16 CCIFONTの部分的URL は、CIISERVER URLの相対とみなされます。 CHARCODEの中で指定されたCIIフォントが作成時にCIIFONTによってロードさ れずにはめ込まれない場合、それは、CIISERVERからロードされます。 VARDIR dir-name (default:/var/spool/delegate) CACHEDIR dir-名 (default:${VARDIR}/cache) CACHEFILE file-name-spec (default:$[server:%P/%L/%p]) ディレクトリCACHEDIRが存在し、delegatedが読み書きできる時、キャッシュ 可能です。現在、HTTP、Gopher、NNTPとFTPのキャッシュが、サポートされて います。 CACHEFILEには、キャッシュファイルのファイル名の形式を指定します。 その名は、主にサーバホストとリクエストされたURLに関する情報に由来しま す。それらの情報が、書式"$[server:format]"の中で指定されます。この書式 はフォローする順序です。 リソースのURL:scheme://host.d2.d1:port/path %P − プロトコル名部 scheme %L − ログイン部分 host.d2.d1:port %H − ホスト名 host.d2.d1 %T − ポート番号 port %h − ホスト名ディレクトリ d1/d2/host %d − ドメイン名ディレクトリ d1/d2 %1 − トップレベルドメイン d1 %2 − セカンドレベルドメイン d2 %p − URL-パス部 path %Q − FQDNを使用したホスト名 host.d2.d1.d0 (like %Q%L or %Q%H) *CACHEキャッシュ-状態(default:none) キャッシュの取扱いを指定してください。与えられた条件が満たさ れる場合、キャッシュが使用されます。 ro − キャッシュは、読取り専用 [ 未定義 ] ## bintext − 同様にバナリーテキストが、キャッシュされる [ 未定義 ] ## mtime/Days − オリジナルのデータが、Days以内に変更される[無制限] ## dsize/Num − データ量が、Numバイトより小さくする [無制限] ## xrate/Num − 伝送を、Numバイト/秒より遅くする [無制限] EXPIRE N{d,h,s}(default:1d) *EXPIRE validity/custody(default:1d/forever) *EXPIRE N{d,h,s}:protoList:dstHostList:srcHostList(default:none) EXPIREは日、時、分のうちの1つでキャッシュデータの有効期間を指定し ます。有効性は、delegatedによるキャッシュデータのアクティブな再移動を 意味しません;指定された期間より古い場合、delegateは単にキャッシュデ ータを無視するだけです。 ETCDIR dir-name (default:${VARDIR}/etc) LOGDIR dir-名 (default:${VARDIR}/log) LOGFILE file-name (default:${LOGDIR}/${PORT}) PROTOLOG file-name ( デフォルト:${LOGDIR}/${PORT}.${PROTO}) WORKDIR dir-name (default:${VARDIR}/work/${PORT}) COUNTER field:dir-name(default:none)((まだされない)) EXPIRELOG file-name (default:${LOGDIR}/expire.log) パターン${PROTO}と${PORT}は、delegatedのプロトコル名とポート番号でそ れぞれ代替されます。 これらのファイルとディレクトリは、可能な場合自動的にdelegatedによって つくられます。あなたは、空の"PROTOLOG="のようなファイル名を指定するこ とによってロギングを停止することができます。 HTTPプロトコルのためのPROTOLOGの書式は、file-nameの後ポストフィックスさ れた任意の書式仕様で(PROTOLOG="file-name:format")変更することができま す。この場合、デフォルトファイル名を、制御することができます。例えば、PR OTOLOG=「:%X」は、NCSAライクの拡張共通のログファイルフォーマットに することを指示します。デフォルト書式は、PROTOLOG=":%C %D"です。 %C − CERN-HTTPDの共通のログファイル書式 %c − 日付以外、%Cと同じものが、ミリ秒精度で記録されます %D − DeleGateによる拡張(conn-time + relay-time : status) %X − 参照者とユーザーエージェントが含まれる'%C "%r" "%u"'共通のログファイルフォーマット %r − 要求メッセージの中の参照者フィールド %u − 要求メッセージの中のユーザーエージェント項目 %S − サーバへの接続のステータス(c,m,p,d,s,v) -vvオプションが与えられるときや、WORKDIRがアクセス可能でない、 あるいはWORKDIRが明示的に指定されない場合、カレントディレクトリー (delegatedを呼ぶものの)がWORKDIRとして使用されます。 `file-name'sが相対パスで指定される場合、それは${LOGDIR}の下に置かれま す。それらの名前が"./"で始まる場合、${WORKDIR}の下に置かれます。 エージング:パターン`[date+format]'がファイル名に含められる場合、それ はstrftime(3)互換機能によって評価されて、求められた文字列で代用されま す。例題、書式`%d'は月の日[01-31]を意味します、したがって、LOFILEがLOG FILE='${PORT}[date+.%d]'のように指定される時は、ファイルは日々古くなっ て、1ヵ月でローテーションします。年の週番号[01-52]を意味する書式`%W'は 、週ごとのエージングに有効です。別の例題;LOGDIR='/var/log/delegate/[d ate+aged/%y/%m/%d]'は、階層的なログを作ります。 最近のログファイルは、別のファイル名(`[date+format]'部分をログファイ ルの指定から省略して作られます)(それへのハードリンク)で示されます。 あなたは、エージングのために別のパターン`[start+format]'を使用すること ができます。`start+'パターンは、delegatedが始動した(あるいは、SIGHUP による再開、TIMEOUT=restartによる指定)時刻が適用されることを除いては 、`date+'と同じ手段で評価されます。 ACTDIR dir-name (default: /tmp/delegate } TMPDIR dir-name (default: none) PIDFILE file-name (default: ${ACTDIR}/ pid/${PORT}) FTPGETS file-name (default: ${ACTDIR}/ftpget/${SERVERNAME })現在アクティブなサーバについての情報が、${ACTDIR}で置かれます。それ らは、サーバの呼出しで作られ、終了で削除されるテンポラリーファイルです 。 OWNER user(default:rootの時`nobody'、その他は呼び出し元) OWNER user/group(default:rootの時`nobody/nogroup'。その他の場合呼び 出し元)*OWNER user:srcHostList指定する場合、delegatedは指定されたユーザ ー、呼出しsetuid()とsetgid()システムコールの権限で、実行します。ユーザー とグループは、シンボリック名あるいは`#'が前置されたID-番号で指定すること ができます。 srcHostListが指定指定された場合、クライアントホストがリストに含められる とき、delegatedのオーナーはユーザーにセットされます。それがIdentサーバ( identd)から得られることができるとき、ユーザー名`*'はクライアントのユー ザー名によって代用されます。単純な例題は、OWNER="*:*@*"です。 呼び出し元がスーパーユーザーであるときのみ、この変数は有効です。 MANAGER user-address(default:DeleGateMaster@etl.go.jp) ファイアウォールあるいは直接インターネットに届くホストの上でdeleg atedを呼び出すとき、このパラメータを指定しなければなりません。 この電子メールアドレスは、ユーザー名(パスコマンドの中で)として 匿名FTPアクセスでリモートFTPサーバに送り出されます。 *PUBLIC proto://host:port(default:none) 指定した場合、delegatedは公開のDeleGateとして登録されます。 登録は、起動するときに、`proto://host:port'で指定されたdelegatedにメ ッセージを送り出すことによって行われます。delegatedが終わるとき、登録 は除去されます。 あなたのdelegateをインターネットの中の誰にでも公開することを宣言する ためにPUBLIC=""(PUBLIC="http://wall.etl.go.jp/"と同じ)を指定してく ださい。 HTMLCONV conv-list(default:deent) HTTP応答メッセージの中のHTMLテキストのための変換をコントロール するためスイッチリストを指定してください。 deent − デコードエンティティーシンボル enent − エンコードエンティティーシンボルfullurl − 全てのURLを省略な しのURLに変換Deentとenentは、HTMLとプレーンテキストの間で特殊文字の エンコードとデコーディングをコントロールします。`deent'が指定される場 合、エンコードされたISO-2022-JPテキストの中の`<'のようなエンティティ ーシンボルは`<'にデコードされます。 これは、PROXYでゲートウェイしているGopherで有効です。`enent'が指定され る場合、ISO-2022-JPテキストからのエンティティーシンボルはエンコードさ れます。 これは、NNTP/DeleGateの場合にはWWWクライアントのために有効です。空リス トが指定される場合、変換は行われません。 *DELAY what:seconds `what'をする前に指定されたsecondsのディレイ。 reject − 自己あるいはマウントされたサーバからの連続の拒否応答 [60] unknown − 自己あるいはマウントされたサーバからの連続の未知の応答 [60] reject_p − 基点サーバからの連続の拒否応答 [0] unknown_p − 基点サーバからの連続の未知の応答 [0] *TIMEOUT what:seconds,... (default:dns:60,acc:30,con:30,lin:30) `what'のタイムアウト周期(デフォルトによる秒数)指定します。 含まれるもの: dns − DNSルックアップ [60] acc − クライアントからの受理(FTPデータ接続を含む)[30] con − サーバへの接続 [30] lin − 出力のためのLINGER [30] io − 一般のI/O [600] hello − MASTERによるHELLOネゴシエーション [30] login − proxy telnet/ftpへのログイン [60] ftpcc − FTP接続キャッシュのキープアライブ [900] daemon − delegated [無制限] restart − あらゆる指定された期間で再開始の原因 [無制限] (期間のユニットは、1d, 1h, 1mのように変えることができます) standby − 次のクライアントのためにdelegatedをスタンバイ状態にしておく[30] http-cka − クライアントとの接続を生かしておく [5] (タイムアウトは、各クライアントホストからの最初の接続のために10倍長い) タイムアウト値`0'は、`never timeout'(無制限)を意味します。 *MAXIMA what:number,...(default:listen:20,ftpcc:2) 指定されたサーバの最大数を指定してください。 listen − サーバのキューサイズ [20] delegated − 一度に実行できるdelegatedsの数 [64] ftpcc − ホストへのFTPコネクションキャッシュサーバの数 [2] service − delegatedプロセスごとのサービス数 [無制限] mailsplit − 各々の部分的メール最大サイズ [50000] standby −待機処理の最大数 [16] http-cka − 接続キープアライブ [10](maximumは、各クライアントホストからの最初の接続のために十倍大きい) http-ckapch − 各クライアントホストに対する一時のキープアライブコネクション数 [4] OVERRIDE master:port:ParamList(default:none) MASTERの制限を無視する。現在、OVERRIDE="*:*:TIMEOUT=timeoutList"と OVERRIDE="*:*:CONNECT=cache"だけが、サポートされます。 *AUTH what:authProto:who(default:none) `who'に`what'をする権限を与えます。ユーザーの確認は、authProtoの中で 指定されたプロトコルが使用されます。クライアントが識別プロトコルをサ ポートする場合``who is the client's user''についての識別は識別プロト コルに基づきます。別な方法で、FTP-サーバは、承認サーバとして使用さ れるかもしれません。与えられた承認情報は、Username:Passwordから成りま す。ユーザー名がUser@Hostとなり得、User と Passwordによるログインの試 行が成功する時、クライアントはUser@Hostとして認証されます。 承認は現在以下の3つのカテゴリーがサポートされます: manager:*:user@host delegatedのサーバ再起動と、ロギングコントロールを含むリモートマ ネジメントを`user@host'に許可する。 第二項目は、現行のインプリメンテーションでは`*'でなければなりま せん。 を見てください anonftp:*:password このパラメータは、FTP/HTTPリレーから委託されます。指定した場合、 delegatedは、http承認体系において、anonymous-ftpユーザーに彼/彼 女の電子メールアドレスをログイン名として通知するよう依頼します。 `password'項目が`*'として指定される場合、どんなパスワードも認証 を受け入れられます。 第二項目は、現行のインプリメンテーションでは`*'でなければなりま せん。 proxy:{ident,auth,pauth}(default:proxy:ident) http proxyサーバとしてのdelegatedのため識別/承認プロトコルを指定 してください。 ユーザーアクセスコントロールがPERMITあるいはRELIABLEの中で指定さ れるとき、このパラメータはチェックされます。 ident − 識別プロトコル pauth − プロキシ-承認項目`user@host:password'を使用auth − 承認 項目`user@host:password'を 使用例題:AUTH=proxy:auth PERMIT="*:*:{*,!?}@*" 彼/彼女が識別される限り、どんなホストのどんなユーザーも許さ れます。 注記:クライアントがプロキシ-確認をサポートしないとき、あなたは 確認のために`auth'を使用する義務があります。そのようなケー スでは、クライアントが認証を必要とする資源にアクセスするこ とができない点に注意してください。 forward:{by,for,ver,*} 接続先ホストがdstHostListに含まれ、かつ、ソースホストがsrcHostLi stに含まれる場合、http要求ヘッダー項目のソースホストの識別情報を ``Forwarded: by Me (Ver) for Client''項目に入れます。 現在、これが指定される場合、二番目の項目に関係なく、AUTH="forwar d:*:"とみなされます。 これは、外部へ内部のhttpサーバをリレーするファイアウォールの上の 、delegatedのために有効です。 authgen:basic:authString それがオリジナルの承認項目を持たない場合、http要求ヘッダーに ``Authorization: Basic authString''を生成します。 authStringは、"userName:passWord"でなければなりません。 以下の特別な文字列が、クライアント属性のためにあります。 %u − Identを使用して取得したユーザー名 %h − ソケットから着いたクライアントのホスト名 %i − クライアントに届くネットワークインターフェース上のホスト名 %a − クライアントのホストアドレス %n − クライアントのネットワークアドレス %H − delegatedのホスト名 %M − delegatedのMANAGER %A − "CMAP=string:authgen:mapSpec"により生成された文字列 例題: ファイアウォールが2つのネットワークインターフェースを持ち、内 外の異なるインターフェイスのホストからアクセスがある時、それら はインターフェイス名で識別することができます。 AUTH="authgen:basic:%i:%h" 一方、内部ネットワークは、次のようにCMAPを使用して、明示 的に定義されなければなりません。 AUTH="authgen:basic:%A" CMAP="{internal:passWord}:authgen:*:*:{IntenalNetList}" CMAP="{external:passWord}:authgen:*:*:*" 生成されたパスワードは、"passWord/%i"としてフォーマットされ、 delegatedは、そのようなパターンの承認項目で、着信要求を拒否し ます。したがって、偽物のパスワードは、ホスト上のdelegatedsを パスできません。 fromgen:fromString 指定する場合、オリジナルの見出しがオリジナルのFrom項目を持た ない場合、"From: fromString"をHTTP要求に入れます。fromString が省略される場合、デフォルト値は"%u@%h"です。 log:remoteHost:Ident:authUser HTTTPサーバの共通のログファイル書式の中で、クライアント情報要 素の内容を指定。デフォルト値は、AUTH="log:%h:%u:%U"です。 %F − From項目の中の電子メールアドレス %L − From: local@domain項目のローカル部分 %D − From: local@domain項目のドメイン部分 %U − Authorization: userame:passwordのユーザー名部分 %P − Authorization: userame:passwordのパスワード部分 %Q − Forwarded:fieldの`for FQDN'部分 例題: ファイアウォールdelegatedから転送される内部delegatedで、オリジナル のクライアントについて情報を記録する。(ファイアウォールdelegated でFrom項目を生成し、そして、内部delegatedでそれを記録する。) firewall% delegated AUTH="fromgen:%u@%h" ... internal% delegated AUTH="log:%D/%h:%L/%u:%U" ...FTP-サーバベース の認証が使用される場合、推薦される承認情報のユーザー名は、`user@h ost.domain'のような電子メールアドレスです。それは、`anonftp'と`pr oxy'で一般的に使用することができます。 DGPATH dir1:dir2:... (default:+:.:${HOME}/delegate) FCL filter-command FFROMCL filter-command FTOCL filter-command FTOSV filter-command FFROMSV filter-command FFROMMD filter-command delegatedとクライアントの間で送られるデータの、フィルターコマンドを指定してください。 フィルターは、FCLを除いて、標準入力からのインプットを得て、出力を標出力にプットします。 FCLのためのフィルターコマンドが、クライアントのために連結されたファイル記述子0を与えられます そして、delegatedのために連結されたファイル記述子1を与えられます。 RPORT {tcp,udp} RPORT {tcp,udp}:hostこのパラメータは、MASTERパラメータと共に使用さ れなければなりません。 指定される場合、MASTER delegateからこのdelegateへの接続(応答デー タ転送のために)は、別に接続(要求データ転送のために)がdelegated からそのMASTER delegatedまで確立されます。指定された種類の応答接続 は、MASTERから指定されたホストのdelegateへ作られます。 ?RPASV((まだ有効でない)) ... RPORTに同様です、しかし、接続はdelegatedからMASTER delegated に確立されます... HTTPMAIL server:relay HTTPMAIL server:relay:mailsplit指定される場合、delegatedは、電子メール 経由でリモートHTTPサービスにアクセスします。 `server'は、HTTPMAILサーバの電子メールアドレスです、そして、`relay'がHT TPMAIL クライアントの電子メールアドレスです(delegatedにあるかもしれま せん)、そしてそれは、サーバからの応答受け取り、delegatedへリレーします 。 `mailsplit'は、サーバから応答メッセージの各切り離されたメッセージの妥当な最 大サイズを示します。FILETYPE suffix:gopher-type:alt:icon:content-type content-typeマッピングにファイル名を定義してください。 gopher-type: 0 - text, 1 - directry, 4 - BinHex, 6 - uuencode, 9 - binary, g - gif, I - image, ... alt: アイコンイメージのためにテキストオンリーディスプレイ上で表示 されなければならない代替テキスト icon: binary,binhex,compressed,directory,document,ftp,gzip, image, index,index2,movie,sound,tar,telnet,text,unknown,uu (HTTP/DeleGateのhttp://-.-/-/builtin/icons/を見てください)内容のタ イプ:text/plain, image/gif, ...(RFC1521を見てください) 例題: FILETYPE=「.txt:0:TXT:text:text/plain」 FILETYPE=「.gif:g:GIF:image:image/GIF」 *CMAP result:mapname:protoList:dstHostList:srcHostList *NNTPCONF spec-list(default:upact:600/300/60) server:host [ :port ] [ /grouplist ] 要求のためにURL で、(nntp://*/...または、news:...)nntp サーバ をセットします。 pathhost:Server/PathHost − サーバ-ホストのPathHost名を定義してください。 例題:NNTPCONF="etlinn.etl.go.jp/etl.go.jp" upact:Invoke/Reload/Posted − アクティブリストキャッシュの更新をコントロールする。 InvokeとReloadは、キャッシュのエクスパイア時間を秒で指定します。 記事がdelegatedを通して掲示されたあと、ポストで明記された期間内で 、クライアントが(LISTコマンドによって)チェックしたときはいつでも 、キャッシュはアップデートされます。 *CRON cron-spec(default:none) cron-spec中で指定された時間に起因してアクションを起こす。Cron-spec は、Unixシステムの"cron"サーバと互換性を持つ以下の構文で書かれます。 minute hour day month dayofweek action アクションが'/'でプリフィックスされる場合、それはsystem()機能によっ て実行される外部のアクションです。アクションが'-'でプリフィックスさ れる場合、それはDeleGate内蔵の内部アクションです。 -suspend − N 秒静止する -restart − delegatedを再起動する -exit − delegatedを終了する -expire N − "-atime +Nd" で$CACHEDIRのエクスパイアを執行する) -system command − シェルコマンドとして`command'の実行 #-fetch URL #-refresh URL/path/of/com args − "-system/path/of/com args" と同等 -args − "/path/of/delegated args" と同等 -Ffunc args − "/path/of/delegated -Ffunc args"と同等 例題: CRON="0 0 * * * -restart" CRON="0 3 * * * -expire 3"(これは、以下に同等です) CRON="0 3 * * * -Fexpire /path/of/cache -rm -atime +3 -sum" CRON="0 3 * * */path/of/delegated -Fexpire /path/of/cache -rm -atime +3 -sum" VSAP vsap-host:port(default:none) クライアントから受けるまたは、クライアントへの接続のためのVSAPサー バを指定します。VSAPは、サーバーがリモートホスト経由TCP接続を受け る事を可能(リモートホストを通して接続するのと同様)とする、リモー トソケットマッピングサーバです。 例題: firewall% delegated -P8000 SERVER=vsap PORT=8080-8090 − VSAPサーバ internal% delegated -P8080@firewall:8000 ... − VSAPを通して受ける、外部のクラ イアントのための内部サーバ internal% delegated -P8080 CONNECT="{vsap/firewall:8000}" ... − VSAPを経た結合、 内部クライアントのためのproxyサーバ internal% delegated -P8080 VSAP=firewall:8000 ... − 受けて、VSAPを通してサーバを接続 *HTTPCONF conf-script(default:welcome:welcome.html,welcome.cgi,index.html,index.cgi,-dir.html) welcome:listOfWelcomeFilesインデックスファイルのリストあるいはCGIスク リプトは、"/path/"ように"/"で終わるディレクトリのURLなければなりませ ん。これは、cancidateなファイル名の表です。内蔵インデックスジェネレ ーターを意味するリストは、"-dir.html"で終わる事ができます。リストが 空の場合、空のデータがインデックスデータのために代用されます。 search:pathOfSearchScript(default:none)"/path?search"のようなサー チ部分をもつURLを処理するためのCGIスクリプトのパス。これは、全てのURL のために適用されたグロ―バルな仕様です。同様に、あなたが各マウントポ イントのためにMOUNT="/path2/* /root/of/path2/* search:srcipt2"のよう なローカルサーチスクリプトを指定することができます。このローカル仕様 は、グロ―バルものに先立ち存在します。特別なローカル仕様"search:-"は 、マウントポイントのため、グロ―バル仕様を無視するために使用できます。 例題: HTTPCONF=search:/path/of/searchScript MOUNT="/* file:/path/of/data/*" MOONT="/bin/* cgi:/path/of/cgi-bin/* search:-" SMTPGATE config-dir(default:${ETCDIR}/smtpgate) SMTP <->{SMTP,NNTP,FTP}ゲートウェー用コンフィギュレーションディレクトリ を指定してください。 ProtoList [!]protocol,... ProtoListは、`,'で切り離されたプロトコル名のリストです。 予備名前`*'は、プロトコルの全てを意味します。`!'が前に置かれる場合、その プロトコルはプロトコルリストから除外されます。 特別なプロトコル名`tcprelay'は、TCP/IPプロトコルのために一般的な全二重通 信路を提供します。 HostList [!]host,host/mask,... HostListが、ホスト名とIP-addressのリストです。オプションとして、マスク値 あるいはIP-addressレンジ指定が続きます。このリストは、リスト中ににホスト 名あるいはIP-addressが含まれるかどうか突き合わせて調べる際に使用されます 。`*.ac.jp'または`*.etl.go.jp'のようにホスト名に、ワイルドカードキャラク ター`*'をポスト/プリフィックスできます。IP-addressレンジを192.168.[0-25 5]、192.168.1.[32-64]ように、指定することができます。 特別なホスト名`.'は、delegatedが実行しているホストを意味します。 ホストがユニークなIPアドレスを持つとき、特別なホスト名`-'が`.'をもつ同 じものが存在し、それが複数IPアドレスを持つ場合、それは、delegatedにつ ながったクライアントからのIPアドレスです。 特別なホスト名`?'は、名前あるいはアドレスがRESOLVの中でリストされたレゾ ルバーが知らないすべての`unknown hosts'を突き合わせます。 マスク値を指定すると、あなたは、アドレス(典型的にネットワークアドレス)の 部分だけをチェックすることができます。マスク値は、4つの書式の一つの中で指 定されることができます; ヘキサ-デシメル、ドット表記インターネットアドレス、`@'あるいは`@A'、`@B'と `@C'のうちの1つ。`@'は、マスキングされたホストのIPアドレスのための、デフ ォルトネットワークマスクを意味します。@A、@B、@Cはそれぞれ255.0.0.0、255.2 55.0.0、255.255.255.0を意味します。subnetsのために`@X'表記の後に、ビットの 番号を続けることができます;例えば、`@B4'は16のsubnetsに分割されたクラスB ネットワークを意味します。 `!'がホストの前に置かれる場合、ホストがリストから除外されることを意味しま す。リストの中の要素の全ては、最初のものから最後のものまでスキャンされます 。したがって、一度含まれた(除外された)名前が、リストから除外される(含ま れる)かもしれません。 HostListはソースホストに関して、ユーザー名(UserList)のリストは、{user1,u ser2,...}@hostのようなプリフィックスしたホスト名とすることができます。否定 シンボル`!'が、HostListの中でも同じ意味を持ちます。!user@hostが{user}@ho stと異なる点に関する注記;前者が、user@hostを排除します、しかし、したがっ て、後の手段{*,!user}@hostは、user@hostを除いた*@hostを含みます。 特別なユーザー名`?'は、identdによって名前が識別されないユーザーを突き合わ せます。あなたは、未知のホストあるいは未知のユーザーから"RELIABLE={!?,!?@* }"でアクセスを禁止することができます。 置換え オプションと値は、外部の`substitution resources'からロードすることができ ます。 `+=file'のようなオプションが、`file'という名前をつけられたリソースの中で 列挙されたオプションリストによる置換えで存在します。`name=+=file'のよう なオプションは、`value'が`file'の中で列挙される`name=value'のリストによ る置換えで存在します。 置換えは、再帰的にすることができます。この場合、相対リソース名は、DGPATH の中で探索されます。デフォルトによって、DGPATH="+:.:${HOME}/delegate"で 、`caller'リソースの存在場所のために、`+'があります。 例えば、`+=file2'が存在する場合、ファイル`/usr/etc/file1'から参照され、` file2'は、最初に`/usr/etc/file2'として探索されます。リソース名は、`+={ht tp://host/file}'のようなURLの中で指定することができます。 置換えリソースは、オプションリスト(あるいは値)で、各ラインはオプション (あるいは値)のためにあります。各ラインで、シャープキャラクター(#)の 後の文字列は、コメントとして無視されます。各ラインの始まりと終りの空白文 字(SPACE, TAB, LF and CR)は、無視されます。一重引用符(')と二重引用符(" )は、取り除かれます。バックスラッシュキャラクター(\) 続くキャラクターは 、そのまま使われます。 delegatedがSIGHUPシグナルを受け取ったとき、置換えリソースは再ロードされ ます。 URL書換規則 URLの規約が、HTTP proxyでゲートウェイされる場合の一般書換規則は、次 のようになります: ORIGINAL REDIRECTED URL -------------------------------------------------P://OH:OP/F -> http://DH:DP/-_-P://OH:OP/F DHとDPはそれぞれdelegatedのホストとポートを意味します。 リダイレクトされたURLは、3つの部分から成ります: proxy part: http://DH:DP/ de limiter: -_-original URL: P: //OH:OP/F PがHTTPの場合、それは省略できます。Gopherを除いて、この書換規則は、 他プロトコルのプロキシのために適用します。Gopherプロキシでの書換えは 、次のようでなければなりません: ORIGINAL REDIRECTED URL -------------------------------------------------gopher ://H:P/GS -> gopher://DH:DP/G-_-gopher://H:P/GS `G'と`S'はそれぞれ`gtype'と`selector'を意味します。ディレクトリエ ンティティーの書換規則は、URLのそれと互換性を持ちます: G User_Name Tab S Tab Host Tab Port -> G User_Name Tab -_-gopher://Host/Port/GS Tab DH Tab DP − DELEGATEスイッチングテーブル − Delegatedは、すでにリダイレクトされた要求に書換規則を適用しません。 したがって、あなたはHTMLでdelegateスイッチテーブルを書き込むことができ ます。あなたが互いに異なるネットワークに接続された二つのファイアウォー ルホストを持つと思います: firewall1 -> NTT firewall2 -> NTT 10080と20080の上のHTTP SPECIALIST delegatedが存在し、例えば、firewall1と firewall2の上でそれぞれProxy_httpdに接続しています。 − モディファイアー − -_-マークの後正しく、任意の`/Modifier/'書式は、次のように挿入するこ とができます: http://delegate/-_-/Modifier/URL モディファイアーは、コンマ(,)キャラクターによってお互いを切り離された 複数モディファイアーのリストであることができます。 cc − ``cc.OutCode.InCode''として指定されたクライアントの文字コード Fは、(obsoletedされた)``=flags=''拡張と互換性を持つフラ グキャラクターのリストです。 # 変更子による # OBSOLETED # #(URLの中のエンコードステート) # # -_-マークの後正しく、任意の`=flags='書式は、次のように挿入されることができます。 # # -_-=JN=gopher:H:P=G # #委任された意志への要求の中のフラグは、URLあるいはDirEntの中でその応答の中でコ #ピーされます。Thusフラグが、いくらかの`state'をHTTPとGopherのようなstatelessな #プロトコルの中で代表するために使用することができます。現在サポートされたフラグ #は: # # N DELEGATE指定を無視しているインターネットアドレス番号を使用します # E CHARCODE変数を無視してEUC出力を強制します # S CHARCODE変数を無視してSJIS出力を強制します # J CHARCODE変数を無視してJIS(ISO-2022-JP)出力を強制します # I II出力を強制します # c 日本語JIS変換にCN(中国語BIG5,GB,HZ)インプットを強制します # C キャッシュを無効にします。 # #これらの書き直すことは、いくらかのスクリプトコマンドによってユーザーのために 成し遂げられることができます 彼ら現実のクライアント起動します。 あなたは、DeleGateのbin/ディレクトリで`dmosaic'と`go-far'スクリプトが配布ファイルを見つけ るでしょう。 −欠点− この書換メカニズムは、クライアントのユーザーに、DeleGateを使用している事 を注意することが強制されます。URLに似たロケーターを指定することによって 、何かを直接開く場合、彼らは、URLの特別なエンコード書式をDeleGateを使用 するために知っていなければなりません。彼らがDeleGateを通して得られたHTML テキストを保存するとき、彼らはオリジナルの書式をそれの含まれたURLに書き 直さなければなりません。しかし、PROXY_HTTP機能をもつクライアントがあれば 、DeleGateはユーザーから見えない存在になり、これらの欠点はキャンセルされ ます。それらのクライアントはProxy_httpdのためにDeleGateを使用する、ある いは、JISコード変換のためだけにDeleGateを使用することができます。 DeleGate-TUNNEL -Pオプションが指定されない場合、その標準入出力は固定された通信回線として クライアントに使用されます。このケースは、チャンネルは、`DeleGate-TUNNEL' として呼ばれます。そして、接続優先のDeleGateプロトコルは、チャンネルの上 で行われます。TUNNELは、delegatedがinetdから起動されて使用される場合や、 シリアルラインのようなnon-IP通信回線に接続されるとき、あるいは、プロトコ ル-フィルターをかけられたルーターを使用して許可されたプロトコルを使用しな ければならない場合。 例題 − HTTP/DeleGate− HTTPクライアントのためのdelgatedの単純な使用法は、あなたの`firewall' ホストの上でProxy-HTTPサーバとして、以下のようにそれを実行することで す。 firewall% delegated -P8080 SERVER=http://-/-/ RELIABLE=internal そして、あなたのクライアントから`internal'ホストの上でそれを使用します: internal% setenv http_proxy http://firewall:8080/ internal% setenv ftp_proxy http://firewall:8080/ internal% setenv gopher_proxy http://firewall:8080/ internal% setenv wais_proxy http://firewall:8080/ internal% mosaic http://info.cern.ch/ ホスト`firewall'上のProxy_httpdがポート8080で有効な場合、 あなたは`internal'ホストで、以下のように、それを利用することができます。 internal% delegated -P10080 PROXY=firewall:8080 \ SERVER=http://www.ntt.jp:80 一方、あなたがファイアウォールの上でGENERALIST DeleGateを実行しなけれ ばなりません、ファイアウォールのGENERALISTを使用する`internal'ホスト の上で、SPECIALISTを実行してください: firewall% delegate -P19999 RELIABLE=internal internal% delegate -P10080 MASTER=firewall:19999 \ SERVER=http://www.ntt.jp:80 あなたがdelegatedを起動したあと、次のようにそれを使用しようとして ください。あなたのWWWクライアントがプロキシをサポートする場合: localhost% setenv http_proxy http://internal:10080/ localhost% mosaiclocalhost% mosaic http://info.cern.ch/ 他の例: localhost% w3client http://internal:10080/ localhost% w3client http://internal:10080/-_-://info.cern.ch/ 最初の例題の中の各ケース中で、mosaic(w3client)が接続される、デフォルトサーバ は、delegatedのコマンドライン(この場合、www.ntt.jp)で指定されたもの です。第二例題の中で、コマンドライン(info.cern.ch)中で指定したサーバが、接続されます。 − HTTP基点サーバとしてのDeleGate − host# delegated -P80 SERVER=http PERMIT=file,cgi \ MOUNT="/* /path/of/root/*"".cgi"でextensionedされた名前をもつファイル は、CGIスクリプトとみなされます。 同様に、あなたが指定されたディレクトリで、以下のように、CGIスクリプト のarbitralyな名前を使用することができます MOUNT="/xxx/* cgi:/path/of/cgi-bin/*" −CGIプログラムとしてのDeleGate− あなたは、CGIプログラムとしてHTTPサーバからDeleGateを使用することがで きます。例えば、``httpd.conf''の中で次のようにHTTP server(A)のファイル を指定してください。 Exec /other/* /path/of/cgi-delegate それで次のようにファイル/path/of/cgi-delegateの内容を書き込んでください: #!/bin/sh delegated -Fcgi MOUNT="/-* =" \ MOUNT="/www2/* http://www-server2/*" \ MOUNT="/news/* nntp://nntp-server/*" これは、HTTPサーバ``www-server2'' の内容である/other/www2/とnntpサーバ``news-server''の内容である/other /news/を含むserver(A)の上で、疑似下位ツリー``/other/''を加えます。 −Gopher/DeleGate− firewall% delegated -P19999 RELIABLE=internal internal% delegated -P10070 MASTER=firewall:19999 CHARCODE=JIS \ SERVER=gopher://gopher.ncc.go.jp:70 localhost% gopher internal 10070 localhost% gopher -p -_-gopher://gopher.tc.umn.edu internal 10070 localhost% gopher -p -_-=E=gopher://gopher.tc.umn.edu internal 10070 `-_-'マークの後の`=E='含むクライアント呼出しの第三例題では、EUCへのコード変換 がサーバでサーバのCHARCODE値を無視して行わなければならないことを示します。 注記:GENERALIST delegatedは、HTTP、Gopherと他のためにSPECIALIST delega tedsの間で分けることができます。 −FTP/DeleGate− あなたは、クライアントはSOCKSificationなしのノーマルFTPクライアントで 、ファイアウォールを通過させることができます。`FTP-Proxy'として次のよ うにdelegatedを実行します: filewall% delegated -P8021 SERVER=ftp RELIABLE=internal これで、あなたは外界のFTPサーバにFTP-Proxy経由で接続することができま す。 偽りのディレクトリ`//server'に移動することによりFTPサーバに接続されま す。 internal% ftp ftp> open firewall 8021 220-- firewall PROXY-FTP server (DeleGate2.3.0) ready. 220-- @ @ 220-- ( - ) { DeleGate2.3.0 by ysato@etl.go.jp } 220- You can connect to a SERVER by `cd' command as: 220- ftp> cd //SERVER 220 Name (ysato:ysato):ftp 331 Guest login ok, enter your E-mail addre ss as password. Password: ysato@etl.go.jp 230- Guest login ok, your E-mail address is 230-Now you can select a FTP SERVER by cd //SERVER 230ftp> cd //host1.domain1/ 220 host1.domain2 FTP server ready. ftp> cd //host2.domain2/ 220 host2.domain2 FTP server ready.ftp>注記 :UNIXの上のクライアントがコマンドラインでのFTPのポート番号が好きであ るように指定するために許すことができるFTPのmajoriyは、あとに続きま す: internal% ftp firewall 8021 - Cascaded FTP-Proxy - firewall# delegated -P21 SERVER=ftp PERMIT="ftp:*:internal" internal# delegated -P21 SERVER=ftp PROXY=firewall:21 同様に、Wu-ftpdはプロキシとして指定されることができます。 - FTP MOUNT - フィルタリング、組み合わせとエイリアス filewall# delegated -P21 SERVER=ftp://serv1/ \ MOUNT="/pub2/* ftp://serv2/pub/*" \ MOUNT="/pub3/* ftp://serv3/pub/*" このdelegatedは、主にserv1のために中継しますが、/pub2/*をserv2 のそれと取り替えます。 −DeleGate as a FTP origin server− host# delegated -P21 SERVER=ftp MOUNT="/* /path/of/root/*" −Telnet/DeleGate− firewall% delegated -P8023 SERVER=telnet RELIABLE=internal internal% telnet firewall 8023 -- @ @ PROXY-TELNET server on DeleGate2.3.0 by ysato@etl.go.jp -- ( - ) { Enter empty host name if you won't continue. } Host name: ysato SunOS UNIX (ysato) login: −POP/DeleGate− firewall# delegated -P110 SERVER=pop external% telnet firewall pop +OK Proxy-POP server (DeleGate2.4.4) at firewall starting. USER username@servername ... 同様に、ユーザー名`username%servername'は、有効です。 −POP MOUNT− ``//server/user''とそれがマウントによって次のように内部にコントロ ールされることができるように、``user@server'は代表されます: MOUNT="//* =" ... ユーザーがサーバを指定するばあい再書込みしません MOUNT="*pop://defaulthost/*" ... デフォルトPOPサーバを指定します MOUNT="user1 pop://host/*" ... pophostをuser1のサーバにします MOUNT="//pop1/* pop://host1/*" ... ホスト名host1を隠します −NNTP/DeleGate− Filterling firewall# delegated -P119 SERVER=nntp://news-server/group. 名前パターン`group.*'を持つニュースグループだけリレーします。 グループのリストが、`nntp://news-server/group1.,group2.,. ..'のようにニュースサーバーのために指定することができます マージ firewall# delegated -P119 SERVER=nntp \ MOUNT="= nntp://server1/" \ MOUNT="= nntp://server2/" 2つのnntpサーバの上でニュースグループをマージする。 エイリアス MOUNT="= nntp://server1/group." オリジナル名にgroup.*を持つグループのマウント。 MOUNT="alias-group. nntp://server1/group." グループ group.* をエイリアス名`alias-group.*'としてマウント POPからNNTPへのリレー MOUNT="= pop://user:pass@host/" メールスプールに、`+pop.user.host.'という名前のニュースグループをマウント −NNTP/HTTP gateway DeleGate− firewall# delegated -P80 MOUNT="/net/news/* nntp://nntp-server/*" −DeleGate as a NNTP origin server− % delegated -P119 SERVER=nntp://-.-/ 新規のニュースグループを``NewsGroup''という名前で作る → 空ファイル${ETCDIR}/news/groups/NewsGroupを作ってください ``NewsGroup''として現行の``/MH/folder''をリレーします→ 内容をもつ${ETCDIR}/news/groups/NewsGroupのようなファイルを作ります。 0 0 0 0 /MH/folder (4つのゼロの後にMH-folderのパス名が続きます) −SMTP/DeleGate− エイリアスとフィルタリング firewall# delegated -P25 SERVER=smtp://mail-server/ \ MOUNT="foo@bar smtp://foo2@bar2" \ MOUNT="* smtp://-" (バグ:ターゲットは、mailto:user2@bar2でなければなりません...) −HTTP via mail− HTTPMAILサーバ メールをから"|delegated FUNC=hmserver"に転 送するようにセットアップします。 HTTPMAILクライアント メールをから"|delegated FUNC=hmrelay"に転送 するようにセットアップします。。 HostA% delegated -P8080 \ HTTPMAIL=hmserver@serverhost.domain:hmrelay@yourhost.domain HostAは、yourhost.domainのメールサーバーからIP-接続可能でなければなり ません。 典型的に、HostAはyourhost.domainをもつ同じホストです。 テストのために、あなたはサーバとして`hmserver@wall.etl.go.jp'を使用で きます。 −Whois/DeleGate− firewall% delegated -P19999 RELIABLE=INTERNAL INTERNAL# delegated -P43 SERVER=whois MASTER=firewall:19999 internal% whois -h INTERNAL whois://whois.nic.ad.jp/help −CU-SeeMe/DeleGate− firewall% delegated -P7648 SERVER=cuseeme://Reflector/ RELIABLE=INTERNAL INTERNAL# delegated -P7648 SERVER=cuseeme://firewall/ internal% {proxy-reflecterとしてReflectorのためにファイアウォールあるいはINTERNALを使用してください} 予備名 特殊名`-'と`-.-'は、それがURLの`host:port'部分の中で使用されるとき、 そのdelegate自体のホストとポートを意味します。そして、URL `http://-.-/-/'は、 delegatedのコントロールページのエントリーポイントのために予約されています。 ファイル /var/spool/delegate/etc − 主にコンフィギュレーションのための持続性のファイル /var/spool/delegate/log − 増大するログファイル /var/spool/delegate/work − コアダンプ用 /var/spool/delegate/cache − キャッシュデータ用 /tmp/delegate − シャットダウンで消去されなければならない揮発性ファイル $HOME/.rhosts.delegate − rsh経由でdelegatedを起動できるホスト 著者 Yutaka Sato Electrotechnical Laboratory (AIST,MITI), Tsukuba, Ibaraki 305, JAPAN コメント:私は、ftp、telnetとwhoisのクライアントを持ち、DeleGateのサ ポートで、直接GENERALISTとコミュニケーションします。私は、あ なたが彼らのためによりきちんとしたプロクシサーバを使用するこ とができるので(SOCKS)彼らがあなたのためにそれほど有効でな いとみなします。 配布 DeleGateの最新バージョンは、tar+gzipフォーマットのファイル``delegate*. tar.gz''として、にあります 。 訳者 Suzuki Hiroshi Columbia Information System., inc. Kawasaki, minato-cho 5-1, JAPAN Release 4.3 Last change:September 30, 1997