翻訳者: 鈴木 雄(すずき ひろし)setter AT i-red DOT info
翻訳開始日:2001/8/23(v7.5) (1997/11-v4.3)
最終更新日:2002/12/28(v8.2.5)
翻訳者コメント:
"翻訳のドラフト"です。
翻訳の正確さなどは、一切保証しません(できません(^^;)。
必ず、原文(http://www.delegate.org/)を併用して下さい。
誤訳や欠落などに関するご指摘は謹んでお受けいたしますm(__)m
----------------------------- 以下本文 ------------------------------
Permission to use this material for evaluation, copy this material for your own use, and distribute the copies via publically accessible on-line media, without fee, is hereby granted provided that the above copyright notice and this permission notice appear in all copies. AIST makes no representations about the accuracy or suitability of this material for any purpose. it is provided "as is", without any express or implied warranties.
上記部分(著作権と使用許諾に関する記述)は、
そのままつける必要があるので、訳さないでおきます。(訳者)
参考のための訳:
著作権 (c) 1994-2000 Yutaka Sato
<ysato AT etl DOT go DOT jp>
<y DOT sato AT delegate DOT org>
著作権 (c) 1994-2000 Electrotechnical Laboratry (ETL), AIST, MITI
著作権 (c) 2001-2002 National Institute of Advanced Industrial Science and Technology (AIST)
本マテリアルの、
・評価のための使用
・自らが使用するための複製
・誰もがアクセス可能なオンラインメディアを経由した複製の無料配布
許可は、
上記の著作権通知、および、この認可通知を、全ての複製中で、
閲覧可能なことを条件として、認めます。
AISTは、本マテリアルのあらゆる目的に対する、正確さや、適合性に関する表示をしません。
それは、いかなる、明示、または、暗示された保証がともなわないまま、提供されています。
目次
--------- --------- --------- --------- --------- --------- --------- --------- DELEGATED(8) メンテナンス コマンド DELEGATED(8)
名称
DeleGateは、アプリケーションレベルプロキシとして動作し、 クライアント・サーバ間で中継するプロトコル(制御シーケンスと、データ構造)を解釈し、 認知されたプロトコルに対し、さまざまな付加価値を実現します。また、 DeleGateは、サーキットレベルプロキシのように動作し、 TCP や UDP 上で、 クライアント・サーバ間の任意プロトコル通信を、正確に伝達します。
DeleGateは、アクセス制御 を強制でき、 プロトコル免除/到達サーバ/受容クライアントを制限します。 DeleGateは、禁止アクセスの繰返しに対し、 ペナルティとしてディレイを加えたり、 アタックの疑いに対し、自動的にレポートを管理者に送信し、 また、サービスをシャットダウンし、防御します。 任意のプロトコルと、プロトコルによるログインに対する、 普通のサーキットレベルで基本的なロギングは、 いくつかのプロトコルに対して、いくつかの一般的なフォーマットがサポートされます。
DeleGateは、一種のアプリケーションレベルルータ の役割をし、 上流プロキシや、Socksサーバによって選択される、 目的サーバに向ける直接/間接ルートを制御します。 サーバに向けた利用可能なルートのひとつは、アプリケーションプロトコル、 目的ホスト、ソースクライアント、の順序で試され、選択されます。
アプリケーションレベルプロキシの場合、 DeleGateは、さまざまなアプリケーションプロトコルを解釈しつつリレーし、 リレーデータ(それぞれのアプリケーションプロトコルの構造による)の キャッシュ や、 変換 など、さまざまな付加価値のあるサービスを提供します。 アプリケーションプロトコルの通訳の基本は、 DeleGate を、プロトコルゲートウェイ として使い、 クライアントサイドプロトコル・サーバサイドプロトコル間を翻訳します。
サーキットレベルプロキシの場合、DeleGate サーバは、 TCP やUDP 上の指定したアプリケーションプロトコルの指定したサーバへの通信を、 または、Socks プロトコルを基本とした任意のサーバへ向け、正しく伝送します。
アプリケーションレベルプロキシの場合、 DeleGate は、 他サーバのリソースの仮想ビューをエイリアス/マージや、 実サーバの実名を隠す(リソースやサービスを同一に見立てたURL)ことで、提供します。 それは、NFS ファイルマウントの一般化されたメカニズムに似ていますが、 異なったもので、データの内容を書きかえることで実現しています。 言いかえれば、これは、クライアントへ/からの仮想名を、 サーバの実名にマッピング(書換え)しています。 ここでの名前は、サーバ・クライアント間での要求/応答メッセージ中の、 プロトコルに依存したデータストラクチャに埋め込まれます。 この機能を、マウントと呼び、 例えば、リソース http://hostiN/ を http://hostx/iN/ として、 クライアントに見せたい場合に使います。 MOUNT においても、DeleGate のカスタマイズ ビルトインアイコンとメッセージを利用できます。
クライアント・DeleGate 間および、 DeleGate ・サーバ間の通信は、 CFI (Common Filter Interface)と呼ばれるシンプルな仕組みを利用し、DeleGate に関連づけされた、 ユーザ定義フィルタプログラムによって、 フィルタ/変換できます。標準入力からデータを受け取り、標準出力に書き出す既存プログラムは、 そのまま、CFI プログラムとして利用できます。
全ての DeleGate のローカルファイル は、 ログファイルと、キャッシュファイルを含み、 それらは、単一のルートディレクトリ (DGROOT) に、 デフォルトで、DeleGateのオーナ所有のプライベートファイルとなります。 しかし、それらは、異なったユーザ間で共有でき、 パス名、オーナ、アクセスパーミッションをそれぞれのファイルでカスタマイズできます。 ログファイル名は、 エージングのため、日付値で、パラメータ化でき、 また、キャッシュファイル名は、分散キャッシュディスクのため、 ハッシュ値で、パラメータ化できます。
DeleGateは、たくさんのオプションで制御されますが、 -Pport オプションと、 SERVER=protocol パラメータは、 大抵の場合、動作させる上で、必須となります。 -P オプションは、DeleGateが、どのポートで、 クライアントからの要求を受けるかを指定します。 SERVER パラメータは、 DeleGateが、どのプロトコルで、クライアントと通信するかと、 どのサーバに通信を中継するかを、任意で指定します。
オプションは、"+=URL" の記述により、ローカル/リモートリソースから読込めます。 通常、"+=/path/of/parameters" のように、 ローカルファイルを使用します。 (パラメータ置換参照)
-P option -- DeleGateの入り口ポート番号
== -Pport[,port]*
port == [host:]portNum[/udp]
portNum == number[-number]
入り口ポートは、デフォルトで、SERVER=protocol パラメータにより、 UDP ベースアプリケーションプロトコル (dns, icp, cuseeme, udprelay) が指定された場合を除き、TCPポートが作成されます。 また、-Pport/udp のように "/udp" ポストフィックスを伴う場合、 SERVER で指定したプロトコルとは無関係なものとなります。
このオプションは、以下のケースを除き、指定する必要があります。 DeleGateが、inetd(8) から、呼び出される場合や、 -Ffunction オプションを利用する大抵の場合、 または、SERVER="tunnel1" により、トンネルサーバ として動作している場合には、無視されます。
-f option -- フォアグラウンドで実行
-v option -- ログレベルを制御
== -v[vdtsau]
-d option -- サブコンポーネントのデバッグ
== -d[hs]
-S option -- SIGCHLD シグナルを監視します
-T option -- システムコールトレース
== -T[xsdt]*
-F option -- 拡張機能
== -Ffunction
-- option -- コマンドライン引数を隠す
parameter == name=value
conditional parameter == (condition)parameter
-e option == -ename=value
下記リストにおいて、パラメータに'*'マークがあるものは、 nameX=value1 nameX=value2 nameX=value3 ... nameX=valueNのように、コマンドライン上で繰り返すことができます。 同じ名前のパラメータが、環境変数とコマンドラインで指定されている場合は、 コマンドラインが環境変数に優先します。 他の、繰返しできない名前が繰返された場合、最後に与えられた値が取得されます。 '+' マークのついているものは、"+=parameter"スクリプトで与えることはできません。
| 名称 | 値の書式 | 機能
| |
| -- | ---------- | ------------------ | ----------------------------------
|
| SERVER | proto://host:port | クライアントサイドプロトコルとデフォルトサーバ
| |
| ADMIN | user@host.domain | このDeleGateの管理者E-Mailアドレス
| |
| + | OWNER | user[/group] | このDeleGateに与えるアクセス権を持つユーザ
|
| * | CRON | crontab-spec | cron コンパチブルスケジューラの機能
|
| * | INETD | inetd-conf | inetd ライクサーバの構成の表記法
|
| * | HOSTLIST | name:hostlist | 名前付 HostList を定義する
|
| * | CMAP | map-spec | 現在の接続に関するマッピングテーブル
|
| LIBPATH | dir:dir:... | ライブラリファイルのサーチパス | |
| DATAPATH | dir:dir:... | データファイルのサーチパス | |
| DGPATH | dir:dir:... | 入替えリソースのサーチパス | |
| DGOPTS | option;option;... | コマンドラインオプションリスト | |
| PORT | portList | -P オプションのような入り口ポートの予約
|
| -- | ---------- | ------------------ | ---------------------------------- |
| * | FORWARD | proxy-_-proto:dst:src | srcからdistで、protoの場合、proxyに転送します |
| * | ROUTE | proxy-_-dst:src | srcからdistの場合、proxyに転送します |
| * | MASTER | host:port | 上流 DeleGate経由で接続します |
| MASTERP | [host:port] | この DeleGate のプライベート MASTER を呼出します | |
| * | PROXY | host:port | 上流プロキシ経由で接続します |
| * | SOCKS | host[:port] | socksサーバ経由で接続します |
| SSLTUNNEL | host:port | HTTPSにSSLトンネル経由で接続します | |
| VSAP | host:port | リモートホスト経由で、受信/接続します | |
| * | CONNECT | ca,ma,di,so,... | 接続タイプの試行順序 |
| * | SRCIF | host[:port] | サーバ接続時のソースアドレス |
| TUNNEL | type:scriptPath | シリアルライン上のトンネル経由で接続 | |
| RPORT | {tcp|udp}[:host] | MASTER-DeleGateからの戻りポート |
| -- | ---------- | ------------------ | ------------------------------------ |
| * | PERMIT | proto:dst:src | 許可するプロトコル/サーバ/クライアント |
| REMITTABLE | ProtoList | サーバに対して、容認するプロトコル | |
| * | REACHABLE | dstHostList | 設定したサーバホストのみ到達可能です |
| * | RELIABLE | srcHostList | 指定したクライアントホストのみ受け入れます |
| * | RELAY | proxy|delegate|no | プロキシモードを制限します |
| * | AUTH | what:aproto:users | リモート管理のための権限をもつユーザ |
| * | AUTHORIZER | serv:proto:dst:src | 認証サーバ |
| * | MYAUTH | user:pass:proto:dst:src | 認証クライアント |
| RIDENT | client|server | 上流DeleGateへの転送ソケットアドレス |
| -- | ---------- | ------------------ | ---------------------------------- |
| * | MAXIMA | what:number | 同時セッション数などの最大値 |
| * | TIMEOUT | what:seconds | 接続などの、タイムアウト値 |
| * | DELAY | what:seconds | ペナルティ用のディレイ値 |
| -- | ---------- | ------------------ | ---------------------------------- |
| CACHE | do|no|ro | キャッシュ有無の制御 | |
| * | EXPIRE | days|hours|secs | キャッシュの期限 |
| CACHEFILE | fileNameSpec | キャッシュデータの保存場所 | |
| * | ICP | icpClientConfig | ICP クライアント型の構成 |
| -- | ---------- | ------------------ | ---------------------------------- |
| * | MOUNT | "vURL rURL opt" | 仮想URLから/へ、実URLのマップ |
| * | URICONV | convList:attrList | MOUNTとともに、URI書換えを制御 |
| BASEURL | URL | このサーバのベース(仮想)URL | |
| DELEGATE | host:port | BASEURLの簡易型 |
| -- | ---------- | ------------------ | ------------------------------------- |
| * | CHARCODE | JIS|EUC|SJIS|UTF8 | 日本語テキストのキャラクタ変換 |
| HTMLCONV | deent|enent|pre | HTML・プレーンテキスト間のエンコード/デコード | |
| MIMECONV | thru|charcode | MIMEエンコーダ/デコーダを制御 |
| -- | ---------- | ------------------ | ---------------------------------- |
| FCL | filterCommand | DeleGate <-> クライアントのフィルタ | |
| FTOCL | filterCommand | DeleGate -> クライアントのフィルタ | |
| FFROMCL | filterCommand | クライアント -> DeleGateのフィルタ | |
| FSV | filterCommand | サーバ <-> DeleGateのフィルタ | |
| FTOSV | filterCommand | DeleGate -> サーバのフィルタ | |
| FFROMSV | filterCommand | サーバ -> DeleGateのフィルタ | |
| FMD | filterCommand | MASTER <-> このDeleGateのフィルタ | |
| FTOMD | filterCommand | このDeleGate -> MASTERのフィルタ | |
| FFROMMD | filterCommand | MASTER -> このDeleGateのフィルタ | |
| XCOM | filterCommand | サーバとしてコマンドを実行する | |
| XFIL | filterCommand | サーバとしてフィルタを実行する |
| -- | ---------- | ------------------ | ---------------------------------- |
| + | CHROOT | dirPath | 起動時にファイルシステムのルートを変更 |
| + | DGROOT | dirPath | 全DeleGateファイルのルートディレクトリ |
| *+ | SHARE | dirPatternList | ユーザ間で共有するファイル |
| + | UMASK | mask | umask のオクタル値 |
| VARDIR | dirPath | ログとキャッシュのデフォルトベース | |
| CACHEDIR | dirPath | キャッシュファイルの場所 | |
| ETCDIR | dirPath | 持続的管理ファイルの場所 | |
| LOGDIR | dirPath | DeleGate ログの場所 | |
| LOGFILE | LogFilename | DeleGate ログファイル | |
| PROTOLOG | LogFilename | httpd / wu-ftp コンパチブルログファイル | |
| ERRORLOG | LogFilename | DeleGate エラーログファイル | |
| TRACELOG | LogFilename | シグナルトレース(-T)書出しファイル | |
| EXPIRELOG | LogFilename | エクスパイアログファイル | |
| WORKDIR | dirPath | DeleGate がコアダンプする場所 (-_-; | |
| ACTDIR | dirPath | テンポラリファイルの場所 | |
| TMPDIR | dirPath | 不可視テンポラリファイルの場所 | |
| PIDFILE | fileName | DeleGate の PID ファイル |
| -- | ---------- | ------------------ | ---------------------------------- |
| * | HOSTS | host/addr,... | プライベート ホスト/アドレス マップ |
| RESOLV | file,nis,dns,sys | レゾルバの使用順序 | |
| RES_CONF | URL | resolv.conf の場所 | |
| RES_NS | host[:port] | 使用する DNS サーバ | |
| RES_RR | HostList | IP アドレスラウンドロビン有効 | |
| RES_VRFY | "" | 逆引きの2重チェック有効 | |
| RES_DEBUG | number | 名前解決のデバッグレベル |
| -- | ---------- | ------------------ | ---------------------------------- |
| * | HTTPCONF | what:conf | HTTP 詳細設定 |
| FILETYPE | suffix:fileType | ファイル名からデータタイプなどへのマッピング | |
| CGIENV | nam,name,... | CGI の渡す環境変数 | |
| * | ICPCONF | icpServerConfig | ICP サーバとして構成 |
| * | FTPCONF | what[:conf] | FTP 詳細設定 |
| * | NNTPCONF | what:conf | NNTP 詳細設定 |
| SMTPCONF | what:conf | SMTP 詳細設定 | |
| SMTPGATE | dirPath | SMTP -> SMTP/NNTP ゲートウェイ設定 | |
| * | DNSCONF | what:conf | DNS サーバとして構成 |
SERVER parameter* == SERVER=protocol[://host[:portNum]][:-:MountOptions] portNum == [+|-]number -- default: SERVER=delegate
例) 拘束を受けない、Telnet-DeleGate SERVER パラメータ
対象サーバ(host)を指定しない場合、それは、プロトコルに依存した方法で、 クライアントにより、実行時に、どうにか取得します。
SERVER=protocol://host:portNum は、対象サーバのURLを指定します。 ":portNum" の部分は、通常、URL中の番号が、プロトコルにおいて スタンダードなポート番号の場合省略可能です。 DeleGateによって、認知される、プロトコルリストと、標準ポート番号は、 "http://delegate/-/builtin/mssgs/config.dhtml"で、入手できます。 portNum が "-" または "+"でプリフィックスされる場合、 入り口ポート番号に指定したオフセットを加えマップします。 また、"-"(portNumなし)の場合、同じポート番号を使用します。
例) 複数ポートを他の単一サーバに転送する
SERVER パラメータが ":-:MountOptions" を伴う場合、 MountOptionsに指定された条件を評価した結果が真の場合、 動的にSERVERパラメータを選択します。特殊なケースとして、 ":-:via=HostList"は、":-:HostList"で、省略できます。
例) クライアントに適切なNNTPサーバを選択する。
ADMIN parameter == ADMIN=user@host.domain -- default: コンパイル時に指定のもの
| - このDeleGateの管理者名を、クライアントに(エラー)メッセージ中で表示する(HTTPなど)。 |
| - クライアントに対する開始メッセージやヘルプメッセージ中で、管理者名として表示する(FTP, NNTP, Telnet)。 |
| - 匿名アクセスFTPサーバへ、デフォルトユーザ名として送信する(PASSコマンド中)。 |
| - リモートSMTPサーバへのアクセスで、AUTH=anonftp:smtp-vrfy 認証 行う際の送信者名として送信する(FROMコマンド中)。 |
| - 致命的なシグナルが発生したときにレポートメッセージを送信するアドレス。 |
OWNER parameter* == OWNER=user[/group][:srcHostList] -- default: OWNER="nobody/nogroup" -- 制約: ほとんどのUnixでスーパーユーザのみ
例) クライアントのユーザ名と一致したユーザIDで動作する
CRON parameter* == CRON="crontab-spec" crontab-spec == minute hour day month dayOfWeek action -- default: none
| -suspend N | -- N 秒間停止する |
| -restart | -- DeleGate再起動 |
| -exit | -- DeleGate終了 |
| -expire N | -- "-atime +Nd"で、$CACHEDIR のエクスパイアを実行 |
| -system command | -- シェルコマンドのような、コマンドを実行する |
| /dir/command args | -- "-system /dir/command args" と同じ |
| - args | -- "/dir/delegated args"と同じ |
| -Ffunc args | -- "/dir/delegated -Ffunc args"と同じ |
例)
INETD parameter* == INETD="inetd-conf"
inetd-conf == port sockType proto waitStat uid execPath argList
port == [host:]portNum
sockType == stream|dgram
proto == tcp|udp
waitStat == nowait ("wait" は、まだサポートされていません。)
-- default: none
例)
INETD="8080 stream tcp nowait nobody - SERVER=http"
INETD="8080 - - - nobody - SERVER=http" (上と同じ)
INETD="8119 - - - - - SERVER=nntp://nntpserver/"
INETD="8888 - - - - /bin/date date" (以下と同じ)
INETD="8888 - - - - - SERVER=exec XCOM="/bin/date date"'
INETD="8888 dgram udp - - /bin/date date"
INETD="localhost:8888 - - - - - /bin/sh sh"
INETD=+=/path/of/inetd.conf (構成をファイルから読みこむ)
HOSTLIST parameter* == HOSTLIST=listName:HostList
例)
// .localnet を再定義する
HOSTLIST=".localnet:localhost,./32,192.168.*"
// 定義済み、.localnet から localhost を除外する
HOSTLIST=".localnet:+,!localhost"
CMAP parameter* == CMAP=resultStr:mapName:connMap connMap == ProtoList:dstHostList:srcHostList -- default: none
LIBPATH parameter == LIBPATH=dirPath[:dirPath]*
-- default: LIBPATH=LIBPATH='.:${STARTDIR}:${LIBDIR}:${EXECDIR}'
DATAPATH parameter == DATAPATH=dirPath[:dirPath]*
-- default: DATAPATH='.:${DGROOT}:${STARTDIR}
DGPATH parameter == DGPATH=dirPath[:dirPath]*
-- default: DGPATH='+:.:${HOME}/delegate'
DGOPTS parameter == DGOPTS=opt[,opt]* -- default: none
SOCKOPT parameter == SOCKOPT=[no]name[:value]
-- default: reuse
PORT parameter == PORT=port[,port]*
port == [host:]portNum[/udp]
portNum == number[-number]
-- default: none
FORWARD parameter* == FORWARD=gatewayURL[-_-connMap]
gatewayURL == gwproto://gwhost[:gwport]
connMap == protoList:dstHostList:srcHostList
-- default: none
特別な用途で、gwproto で、FORWARD は、以下のように一般化された表記、 MASTER, PROXY、および SOCKS と同等の動作をします。
対象サーバに対し複数のルートが利用可能な場合、 FORWARD により指定されたルートは、CONNECT で、 "proxy" または、"master" により指定された優先順位で試行されます。
ROUTE parameter* == ROUTE=proto://host:port/-_-dstHostList:srcHostList -- default: none
stHostList 中のホスト指定は、フォワードするプロトコルを"proto://"プリフィックスで、 制限することができます。 例)ROUTE="http://host:port/-_-{ftp://*}:*"は、 FTPサーバへのアクセス全ては、"http://host:port/"のHTTP-プロキシへ フォワードされることを意味します。
dstHostList中のホスト指定は、ポート番号で、さらに制限できます。 例)ROUTE="http://host:port/-_-{*:21}:*"は、 ポート番号21(FTPサービス)でのみアクセスでき、プロキシへ転送されます。
MASTER parameter* == MASTER=host:port[/masterControl][:dstHostList] -- default: none
オプション "/masterControl" :
MASTERP parameter == MASTERP=[host:port] -- default: none
RPORT parameter == RPORT={tcp|udp}[:host]
-- default: none
PROXY parameter* == PROXY=host:port[:dstHostList] -- default: none
例)
SOCKS parameter* == SOCKS=host[:[port][/socksOpt][:dstHostList[:srcHostList]]]
socksOpt == [ -4 | -r ]*
-- default: none
例)
SSLTUNNEL parameter == SSLTUNNEL=host:port -- default: none
VSAP parameter == VSAP=host:port -- default: none
例)
CONNECT parameter* == CONNECT=connSeq[:connMap] connSeq == connType[,connType]* connType == cache|icp|master|https|vsap|direct|socks|udp connMap == ProtoList[:dstHostList[:srcHostList]] -- default: CONNECT="c,i,m,h,v,s,d:*:*:*"
| cache | -- CACHE を検索 (接続なし) |
| icp | -- ICPサーバをヒントとしたPROXY経由 |
| proxy | -- PROXY サーバ経由 |
| master | -- PROXY または MASTER-DeleGate サーバ経由 |
| https | -- SSLTUNNEL (SSL tunnel on HTTP)経由 |
| vsap | -- VSAP サーバ経由 |
| direct | -- 目的サーバへ直接接続 |
| socks | -- SOCKS サーバ経由 |
| udp | -- UDPによる |
注記) 現実装では、"cache" が、connSeq 中に含まれる場合、まず最初に試行されます。
SRCIF parameter* == SRCIF=host[:[port][:connMap]]
connMap == ProtoList:dstHostList:srcHostList
-- default: SRCIF="*:*:*:*:*"
このパラメータで、それぞれのサーバへ接続する際のソースアドレス(ネットワークインターフェースの) を指定します。 これは、DeleGate ホストが複数のネットワークインターフェースを持つ場合に有効です。 それは、SOCKS-DeleDate または、FTP-DeleGate により受容される クライアント接続で使用するポートの指定にも利用可能です。
ほとんどの場合、特殊パターン "*" は、host または、portとして、 IP アドレスまたは、ポート番号のワイルドカードを指定します。 いくつかの場合、特殊パターン "*" は、 FTP データ接続 (PORT または、PASVによる) 用ポート、または、 SOCKS (BIND および、UDP-ASSOCIATE)用ポート のように、 指定されたプロトコルによって要望されたアドレスおよび、番号として使用します。 ワイルドカードを IP アドレスと、ポート番号で明示的に指定する場合、 それぞれ、host に、"0.0.0.0" および、port に、"0" を使用します。
例)
要求に応じて割り当てられ、ピアに通知された "ftp-data" 接続用のポート ( PORT により クライアントからサーバ、PASV によりサーバからクライアントに向けられた) は、"ftp-data-port" または、"ftp-data-pasv" により それぞれ分離して制御できます。 PORT のためにサーバからクライアント、または、PASV のためのクライアントからサーバへ 確立されるデータ接続用のソースポートは、"ftp-data-src" によって制御できます。
TUNNEL parameter == TUNNEL=tunnelType:script
tunnelType == tty7
-- default: none
現状、tunnelType は、"tty7"でなければならず、それは、 DeleGate間の伝送が 7bitストリームで行われることを意味します。 タイプが"tty7"の場合、トンネルを確立するには、SHIO-スクリプトファイルに指定を書きこみます。 パッケージに含まれる、"src/sample.shio"を参照して下さい。 スクリプトファイル名は、絶対パスまたは、相対パス(LIBPATH 中で検索できるファイル名) のどちらかで指定する必要があります。 上流のトンネル用DeleGateは、SERVER="tunnel1"を伴なって呼出さなければなりません。
例) ログインダイアログなしで、トンネルを形成する。
PERMIT parameter* == PERMIT=connMap connMap == ProtoList:dstHostList:srcHostList -- default: none
複数の PERMIT パラメータが与えられる場合、アクセスは、少なくとも1つの PERMIT で指定された許可により許可されます。 PERMIT パラメータがない場合、アクセス許可は、REMITTABLE,REACHABLE,RELIABLE パラメータによって明示されるか、 SERVER パラメータによる暗黙の指定によって、制御されます。
例) 無制限許可をローカルネット上のホストに与え、同時に、その他は、http://www のみとします
dstHostList 中で指定したホストは、"host:portNumList"のように ポート番号をつけることで、更に制限できます。 例)PERMIT="telnet:{*:23}:*"は、ホストに対するテルネットを 標準ポート番号(23)でのみ許可することを意味します。
ProtoList 中のプロトコル名は、"protocolName/portNumList/methodList" のようにポート番号と手段を使って修飾でき、プロトコルにおけるアクセス可能なポートと手段を制限できます。 例)一連のPERMITパラメータ PERMIT="ftp//readonly:Servers:Clients" PERMIT="ftp:*:*" は、Serversに対するClientからのアップロードを禁止し、 他のサーバ・クライアントの組み合わせで、アップロードを許可することを意味します。
複数のDeleGateサーバが、MASTERやPROXYによって連結されている場合、元クライアントの識別情報は、 最初(連結の入り口)のDeleGateサーバによって取得され、 上流 DeleGate サーバへRIDENT パラメータを使用し、 また、PERMITパラメータにより調査し、転送されます。
REMITTABLE parameter == REMITTABLE=ProtoList -- default: REMITTABLE="*" for generalist -- default: REMITTABLE="." for specialist
プロトコル名の後ろに"/portNumList"がある場合、PortList中に列挙されたポートのみが許可されます。 PortList は "/methodList"を付けることができ、プロトコル上で可能な手段を制限できます。 現在、手段として、"readonly"のみがサポートされます。 例)REMITTABLE="ftp//readonly" は、FTPサーバへのアップロードを禁止する、"read only" FTP-DeleGateを生成します。
プロトコルに関するデフォルトの設定:
REACHABLE parameter* == REACHABLE=dstHostList -- default: REACHABLE="*" (全てのホストに到達可能)
RELIABLE parameter* == RELIABLE=srcHostList -- default: RELIABLE=".localnet"
これは、RELIABLE=Hosts1 RELIABLE=Hosts2 のような、 複数のRELIABLEパラメータを、単一の RELIABLE="Hosts1,Hosts2" へ、単純に、結合したものへ解釈しますが、 Hosts1 または、Hosts2 が、 否定 または、 合成演算子に含まれる場合、 "Hosts1 または Hosts2" を意味するものではありません。 もし、この文章の意味が理解できない場合は、かわりに、複数のPERMITパラメータを使用することを推奨します。
RELAY parameter* == RELAY=relayTypeList[:connMap]
relayTypeList == relayType[,relayType]*
relayType == proxy | delegate | vhost | no | nojava | noapplet
connMap == ProtoList:dstHostList:srcHostList
-- default: RELAY="delegate,nojava:*:*:.localnet"
RELAY="proxy:*:*:*"
RELAY="no" は、リレーを行わない、元 HTTP サーバとして動作することを意味します。 元 HTTP サーバは、プロキシ用のフォーマット(要求中のURLが、絶対フォーマットであるが、 フルフォーマットや、"/-_-" フォーマット)ではない、通常フォーマットの要求を受け付ける、通常のサーバ。 RELAY="vhost" は、任意の仮想ホストにリレーする、元 HTTP サーバとして使用できます。 このオプションは、明示された MOUNT を伴わない、要求ヘッダ中の "Host:" フィールドで指し示された 任意の対象サーバに、 HTTP 要求を転送可能にします。 この自動転送は、要求された URL が MOUNT されていない場合のみ実行されますが、 ほとんどの DeleGate は ルート URL ("/*") 用の MOUNT パラメータもつ元サーバとして動作しているため、 それほど、ありそうにありません。
他の relayType と連結した "nojava" は、<APPLET>, <EMBED> および、<OBJECT> タグ を、relayType によって、 使用不能にします(<killed-TagName> に置き換えられます)。 "noapplet" をともなう場合、<APPLET> タグのみが使用不能になります。 RERAY パラメータにより、relayType "delegate" を使用可能にした場合、 上記、デフォルトである "nojava" の使用を強く推奨します。
例)
RELAY=no ... プロキシとして動作しない (元サーバのみ)
RELAY=proxy ... CERN準拠モードのみ
RELAY=delegate ... DeleGateモードのみ (/-_-URL)
RELAY=proxy,delegate ... CERN と DeleGate モードの両方
RELAY=proxy,noapplet ... プロキシによってリレーされる <APPLET> タグを抑制する
デフォルト:
AUTH parameter* == AUTH=what:authProto:who -- default: none
HTTP-DeleGateの場合、(要求メッセージ中の)認証ヘッダにあるUsername:Password で、 "私は誰”かを宣言します。ここでのUsernameは、User@Hostとも、できます。 User, Host, Password のセットを得た後、DeleGateは、 Host 中の(FTP)サーバに、User と Password でログインを試みます。 成功した場合、クライアントは、User@Host で、認証されます。
現在、以下のカテゴリでの、認証/認可がサポートされます。
-- 何らかのプロトコルのDeleGateの場合 --
| ident | -- 識別プロトコル [default] |
| pauth | -- Proxy-Authorization フィールド "user@host:password"を使用 |
| auth | -- Authorization フィールド "user@host:password"を使用 |
AUTHORIZER parameter* == AUTHORIZER=authServList[:connMap]
authServList == authServ[,authServ]* | & | *
authServ == authHost[/portNum]
authHost == hostName | hostAddr
connMap == ProtoList:dstHostList:srcHostList
-- default: none
-- 制限: Telnet, FTP, NNTP, SMTP, Socks および、HTTP に、適用可能
現在、リモート確認/認証サーバ のプロトコルは、FTP プロトコルの USER/PASS コマンドです。 このように、DeleGate の確認/認証 サーバには、任意の実在 FTP サーバを使用できます。 他の方法として、DeleGate 自らが持つ 確認/認証 のためのリストは、 -Fauth 機能により使用できます。
認証されたユーザに権限が不要な場合のみ、authServList として、以下の特別な名前が有効です。
MYAUTH parameter* == MYAUTH=username:password[:connMap]
-- default: none
-- 制限: Socks, VSAP, SMTP, および HTTP のみに適用可能
例)
RIDENT parameter == RIDENT=ridentType[,ridentType]*
ridentType == client|server
-- default: none
例)
MAXIMA parameter* == MAXIMA=what:number,... -- default: MAXIMA=listen:20,ftpcc:2,...
| randstack | -- | セキュリティ用スタックベースのランダマイズレンジ [32] |
| randenv | -- | 環境変数ベースのランダマイズレンジ [1024] |
| randfd | -- | クライアントソケットファイルディスクリプタのランダマイズレンジ [32] |
| listen | -- | 入り口 ポートキューの最大サイズ [20] |
| delegated | -- | 一度に実行できるDeleGateプロセス数の最大値 [64] |
| service | -- | delegatedプロセス単位の最大サービス数 [無制限] |
| standby | -- | スタンバイプロセスの最大数 [16] |
| conpch | -- | クライアントホスト単位の最大同時接続数 [無制限] |
| ftpcc | -- | サーバからホストに対する、FTP接続キャッシュの最大数 [16] |
| nntpcc | -- | サーバからホストに対する、NNTP接続キャッシュの最大数[16] |
| http-cka | -- | (HTTPCONF=max-ckaに置き換えられました) |
| http-ckapch | -- | (HTTPCONF=max-ckapchに置き換えられました) |
| udprelay | -- | 並列 UDPrelay クライアントの最大数[256] |
| winmtu | -- | Win32 における、send() 単位の最大値[1024] |
TIMEOUT parameter* == TIMEOUT=what:seconds,... -- default: TIMEOUT=dns:10,acc:10,con:10,lin:30,...
| shutout | -- | 致命的エラーでセットされた、シャットアウトを解除する [1800] | ||||||||||||||||||||||||||||||||||||
| dns | -- | DNS 参照 [10] | ||||||||||||||||||||||||||||||||||||
| dnsinv | -- | DNS 逆引き参照 [6] | ||||||||||||||||||||||||||||||||||||
| acc | -- | クライアントの受入れ (FTP データ接続含む) [10] | ||||||||||||||||||||||||||||||||||||
| con | -- | サーバへの接続 [10] | ||||||||||||||||||||||||||||||||||||
| lin | -- | 出力のための LINGER [30] | ||||||||||||||||||||||||||||||||||||
| ident | -- | Ident サーバへの接続 [10] | ||||||||||||||||||||||||||||||||||||
| rident | -- | RIDENT=client 情報の受取り [1.0]
| io | -- | 一般入出力 (データ転送ではない) [600]
| silence | -- | クライアント・サーバどちらからもデータ送信無し [0]
(tcprelay のみに適用)
| hello | -- | MASTERとのHELLOネゴシエーション [30]
| login | -- | プロキシログイン (Telnet,FTP) [60]
| daemon | -- | delegated [無制限]
| restart | -- | 指定した期間毎に再起動 [無制限]
| standby | -- | 次のクライアントのため、delegatedが待機する時間 [30]
| takeover | -- | クライアント切断後、ダウンロード内容をキャッシュに書込むまで [5]
| (ダウンロードを開始した、クライアントの切断後) ftpcc | -- | FTP接続キャッシュのキープアライブ [120]
| nntpcc | -- | NNTP接続キャッシュのキープアライブ [300]
| http-cka | -- | (HTTPCONF=tout-cka に置き換えられました)
| cfistat | -- | -s,filter からの状態情報用
| |
DELAY parameter* == DELAY=what:seconds -- default: DELAY=reject:60,unknown:60,...
| reject | -- | 自分もしくは、マウントしたサーバからの連続的、拒否(Reject)応答 [60] |
| unknown | -- | 自分もしくは、マウントしたサーバからの連続的、不明(Unknown)応答 [60] |
| reject_p | -- | 元サーバからの、連続的、拒否(Reject)応答 [0] |
| unknown_p | -- | 元サーバからの、連続的、不明(Unknown)応答[0] |
MOUNT parameter* == MOUNT="vURL rURL [MountOptions]" -- default: MOUNT="/* SERVER_URL*"
例) HTTP-DeleGateのMOUNT
vURL か rURL に "=" を指定した場合、
マウントは、リクエスト中のvURLを書換えない、
または、応答中のrURLを書換えるのと同じことを意味します。
対象サーバのポート番号(rURL において)は、"-"か"+"でプリフィックスでき、 これは、SERVER パラメータにおける入り口ポート番号に対し、動的に決定したオフセットを与えます。
rURL が "file:path" を含み、かつ、path が相対の場合、
データファイルは、
DGROOT ディレクトリまたは、
ディレクトリリスト DATAPATH 以下から検索されます。
省略
設定を簡単かつ再使用するために、URLも特別な省略形を MOUNT パラメータで使用できます。
protocol-name://host-name:port-number/url-path
からなる rURL 中の
protocol-name, host-name, port-number に "=" を指定した場合、
それは、DeleGate 自身をあらわします。(例:vURL中のそれ)
URLが "//" で始まる場合、更なる省略を意味します。
"///path" は "=://=:=/path" を意味し
(プロトコル,ホスト,ポートが同じ)、また、
"//serv..." は "=://serv..." を意味します
(同じプロトコル)。
例) MOUNT パラメータ中の rURL の省略
// DeleGate のパラメータ: SERVER=http -Pdhost:9080 ...
// 要求された URL: http://dhost:9080/x/
MOUNT="/x/* =://=:=/y/*" -> http://dhost:9080/y/
MOUNT="/x/* ///y/*" -> (上記の省略)
MOUNT="/x/* =://serv/y/*" -> http://serv:80/y/
MOUNT="/x/* //serv/y/*" -> (上記の省略)
MOUNT="/x/* //serv:=/y/*" -> http://serv:9080/y/
MOUNT="/x/* //=:9088/y/*" -> http://dhost:9088/y/
MOUNT="/x/* https://=/y/*" -> https://dhost:443/y/
マッチングと書き換えの複合
vURL と、rURL のパターンの後に "*%" がつく場合、 scanf(3) のそれと似た書式で指定した複合マッチングのためのパターンを表します。 それぞれの書式指定は、"%" に続く指定("%c","%[a-z]" など)からなります。 拡張書式 "%S" は、隣接したキャラクタにより決定される変数を意味します。 例えば、"%Sx" は "%[^x]x" を意味します。 例)"%S." は "%[^.]." および "%S/" は "%[^/]/" rURL 中の "%(N)" は、vURL 中のN番目の 要素の複製を意味します。 vURL パターンが "$" キャラクタで終わる場合、 URL 文字全体に対する完全なマッチングを要求します。
例) 複合マッチングと書き換え
MountOptions == option[,option]*
条件:最初のオプショングループはソースと対象(クライアント・サーバ)によって、条件的に MOUNT します。 MOUNT パラメータが、1つ以上の条件を含むMountOptionを持つ場合、 全ての条件が真にならない場合、MOUNT は無視されます。
これらHostList は、host:portのリストでなければならず、
この、 :port 部分は、特に気にしない場合、省略できます。
host 部は、"*"で、置換えられ、その場合、異なったネットワークインターフェースを気にしません。
例)
URICONV parameter* == URICONV={convSpec|defElem|defAttr}
convSpec == convList:attrList
defElem == defelem:+,elemnameList
defAttr == defattr:+,attrnameList
-- default: URICONV=dump で見れます。
| mount | -- | MOUNTにより書換え |
| normal | -- | URLパス中に"../"を含むMOUNTされたURLを正常化する |
| partial | -- | 可能な場合、(MOUNTされた)URLを部分URLで表現する。 |
| full | -- | 全てのURLをフルURLに変換 |
例)
URICONV=mount,normal,partial:+ -- Ver.6以降、デフォルト。
URICONV=full:+,-HREF/BASE -- HREF/BASE 以外ずべて書き換える。
URICONV=dump -- 現在の URICONV 設定を見る。
URICONV=+ URICONV=mount:-SRC/IMG URICONV=full:SRC/IMG
BASEURL parameter == BASEURL=URL -- default: none
例)
DELEGATE parameter == DELEGATE=gwHost:Port[:ProtoList] -- default: DELEGATE=currentHost:currentPort
元々、このパラメータは、gateway-_-URLをともなうURL(または、ポインタ)や、
proto://gwHost:Port/-_-URL
(このgwHost:Port部は、DeleGateによって生成され、埋め込まれたものです)表記によって書換えられた、
CERN HTTP タイプではないプロキシ(gopherプロキシ含む)のための、プロキシモードを制御するために取り入れられました。
このパラメータは、gwHost:Port 部の表現をカスタマイズするために取り入れられました。
これは、このDeleGateの入り口ポートを表し、クライアントから、解決可能かつ、到達可能でなければなりません。
もっとも一般的な作り方は、gwHostのデフォルト値は、このDeleGateホストの現ネットワークインターフェースで、
現クライアントはこれを経由し、このDeleGateに到達させ、また、生のIPアドレスで、表現します。
これにより、クライアントがDeleGateのホスト名解決法を知らなくても、DeleGateに到達可能になります。
例外的に、入り口ポートが、"-Phost:port”のようにネットワークインターフェースを明示して指定された場合、
DELEGATEのデフォルト値は、host:port にセットされます。
オプションの ProtoList を指定することで、このプロキシでのプロトコルに制限をかけることができます。
応答メッセージ中のURL(ポインタ)は、"proto://gwHost:Port/-_-"をプリフィックスして、書換えられます。
そのため、ProtoList中にプロトコルが含まれる場合、要求は再びこのDeleGate(gwHost:Portの)に向けられます。
DELEGATE="-:0:-all"のように、存在しない入り口ポートと、空の ProtoList を指定することで、プロキシモードを使用不能にできます。 RELAY パラメータを使用することで、もっと、簡単に実現できます。 これは、最近のバージョンでは、デフォルトで、使用不能になっています。
CACHE parameter* == CACHE=cacheControl[,cacheControl]*
cacheControl == do | no | ro
-- default: none
-- 制限: HTTP, FTP, NNTP, Gopher に適用されます。
do -- CACHEDIR がない場合、作成します。(キャッシュを使用可能にする)
no -- キャッシュ禁止
ro -- キャッシュを読込のみにするキャッシュはデフォルトで使用可能です。キャッシュは、CACHEDIRディレクトリが存在しないか、DeleGateが、読込できない、書込みできない、または、CACHE="no"が指定されている、または、"cache"が、CONNECTに含まれない場合、使用不可となります。
EXPIRE parameter* == EXPIRE=validity[/custody][:connMap] connMap == ProtoList:dstHostList:srcHostList validity == period custody == period period == Num[d|h|m|s] -- default: EXPIRE=1h
CACHEFILE parameter == CACHEFILE=fileNameSpec -- default: CACHEFILE='$[server:%P/%L/%p]'
| %P | -- | scheme | プロトコル名部 |
| %L | -- | host.d2.d1:port | ログイン(またはサイト)部 |
| %H | -- | host.d2.d1 | ホスト名 |
| %T | -- | port | ポート番号 |
| %h | -- | d1/d2/host | 階層ホスト名ディレクトリ |
| %d | -- | d1/d2 | 階層ドメイン名ディレクトリ |
| %1 | -- | d1 | 最上位ドメイン |
| %2 | -- | d2 | 第2ドメイン |
| %p | -- | path | URL-パス部 |
| %Q | -- | host.d2.d1.d0 | FQDN なホスト名を使用 (%Q%L または %Q%H 同様) |
他のフォーマットパターンは、"$[hash:format]" で、このハッシュは、format
により生成された文字列を、"00"から"1f"の範囲の16進の値になります。
これは、全てのサーバを含む、1つの巨大なディレクトリを32の小さなディレクトリ
(分散した物理ディスク)に分割します。
例)
ICP parameter* == ICP=icpServerList[:icpServerSpec[:connMap]]
icpServerList == icpServer[,icpServer]*
icpServer == icpHost[/icpType/proxyPort/icpPort]
icpServerSpec == icpOptions:proxyPort:icpPort
connMap == ProtoList:dstHostList:srcHostList
-- default: none
-- 制限: {HTTP,FTP}-DeleGate に対し適用
| s | -- ICP サーバは、"sibling"(兄弟) [default] |
| p | -- ICP サーバは、"parent"(親) |
| l | -- ICP サーバは、応答しない"listener"(リスナ) |
| n | -- ICP サーバは、ナビゲーションプロキシ |
| o | -- HIT_OBJ 応答が必要 |
| H | -- 対象サーバは、HTTP プロキシ [default] |
| D | -- 対象サーバは、MASTER-DeleGate. |
| O | -- 対象サーバは、元サーバ |
| timeout/N | -- ICPクライアントとしての応答待ち時間(秒)[2.0] |
| parent | -- icpServers のデフォルトタイプが"parent"の印 |
| listener | -- icpServers のデフォルトタイプが"listener"の印 |
| hitobj | -- デフォルトで 全icpServers にHIT_OBJ を許可 |
| Origin | -- 対象サーバは、元サーバ |
| DeleGate | -- 対象サーバは、DeleGate |
ICP="host0"
ICP="host0//8080/3130"
ICP="host0::8080:3130"
ICP="host1:timeout/1.0:::http,ftp:!*.my.domain:*.my.domain"
ICP="host1,host2/O/80/13130:timeout/2.0:8080:3130"
CHARCODE parameter == CHARCODE=[inputCode/]outputCode outputCode == charCode charCode == iso-2022-jp | euc-jp | shift_jis | JIS | EUC | SJIS | UTF8 -- default: none
このパラメータをインターネットメール/ニュースプロトコル(SMTP, POP, NNTP)で有効にする場合、 キャラクタ変換を有効(デフォルトで有効)にするように MIMECONV パラメータも指定する必要があります。
HTTPクライアントは、要求メッセージ中の "Accept-Language"フィールドで選択して (それぞれのクライアント(WWWブラウザ)で、指定できるかもしれません)送信することで、 この指定を無視できます。 例)クライアントの要求で"Accept-Language: (charcode=EUC)"が送られた場合、 応答テキストは、DeleGateのCHARCODE指定を無視して、EUCに変換されます。 "Accept-Language: (charcode=THRU)"が指定された場合、管理者がこの DeleGate に指定した全ての変換は、無効になります。
HTMLCONV parameter == HTMLCONV=convList convList == conv[,conv]* conv == deent|enent|fullurl -- default: HTMLCONV=deent
| deent | -- | decode entity symbol |
| enent | -- | encode entity symbol |
| fullurl | -- | convert all of URLs to full URLs (equals to URICONV="full:+,-HREF/BASE") |
"enent"が指定された場合、実シンボルがマルチバイトキャラクタセット以外のテキスト中に現れた場合、エンコードします。 これは、WWW クライアントによってアクセスされる NNTP-DeleGate の場合、便利です。 空リストが指定された場合、全ての変換は停止します。
MIMECONV parameter == MIMECONV=mimeConv[,mimeConv] mimeConv == thru | charcode -- default: none -- MIMECONV="" CHARCODE パラメータが与えられた場合
FCL parameter == FCL=filterCommand FTOCL parameter == FTOCL=filterCommand FFROMCL parameter == FFROMCL=filterCommand FSV parameter == FSV=filterCommand FTOSV parameter == FTOSV=filterCommand FFROMSV parameter == FFROMSV=filterCommand FMD parameter == FMD=filterCommand FTOMD parameter == FTOMD=filterCommand FFROMMD parameter == FFROMMD=filterCommand filterCommand == [-s,][-p,][-w,]command -- default: none
フィルタは、サーキットレベル情報では、CMAP で、 アプリケーションレベル情報では、CFI script を使うことで、 条件付で利かせることができます。
フィルタ制御オプション: オプションは、フィルタプログラムから状態情報を受取る、または、 制御を同期します。
ビルトインフィルタ: filterCommand が"-"でプリフィックスされる場合、DeleGateのビルトインフィルタです。
XCOM parameter == XCOM=filterCommand XFIL parameter == XFIL=filterCommand -- default: none
WindowsNTとOS/2上では、XCOMで実行されたコマンドには、クライアントに接続したソケットを受継いだハンドル値を持つ、 環境変数 "SOCKHANDLE_CLIENT"が、提供されます。
CHROOT parameter == CHROOT=dirPath -- default: none -- 制限: 大抵のUnixで、super-user のみ
DGROOT parameter == DGROOT=dirPath
-- default: on Unix: '${HOME}/delegate' or '/var/spool/delegate-${OWNER}' or '/tmp/delegate-${OWNER}' on Windows: '/Program Files/DeleGate'
SHARE parameter == SHARE=dirPatternList -- default: empty
例)
UMASK parameter == UMASK=mask -- default: the value of umask(2)
VARDIR parameter == VARDIR=dirPath
-- default: VARDIR='${DGROOT?&:/var/spool/delegate}'
CACHEDIR parameter == CACHEDIR=dirPath
-- default: CACHEDIR='${VARDIR}/cache'
ETCDIR parameter == ETCDIR=dirPath
-- default: ETCDIR='${VARDIR}/etc'
LOGDIR parameter == LOGDIR=dirPath
-- default: LOGDIR='${VARDIR}/log'
LOGFILE parameter == LOGFILE=[LogFilename]
PROTOLOG parameter == PROTOLOG=[LogFilename][:logFormat]
ERRORLOG parameter == ERRORLOG=LogFilename
TRACELOG parameter == TRACELOG=LogFilename
-- default: LOGFILE='${LOGDIR}/${PORT}'
-- default: PROTOLOG='${LOGDIR}/${PORT}.${PROTO}'
-- default: ERRORLOG='${LOGDIR}/errors.log'
-- default: TRACELOG='${LOGDIR}/ptrace.log'
パターン ${PROTO} と ${PORT} は、それぞれ、このDeleGateのプロトコル名と、ポート番号に置換えられます。 これらファイルとディレクトリは、可能な場合、DeleGateにより自動生成されます。 LOGFILE=""や、PROTOLOG=""のように、空ファイル名を指定することで、ログを停止できます。
HTTP 用の PROTOLOG 書式は、コモンログファイル書式とコンパチブルで、カスタマイズ可能です。 FTP 用の PROTOLOG 書式は、xferlog コンパチブルです。
エージングのためのLogFilenameとdirPathの置換え
他のエージングパターン"[start+format]"は、同様に評価され、"date+"を除いた、 DeleGateが開始しした時間(SIGHUPまたは、TIMEOUT=restartによる再起動)に置換えられます。
EXPIRELOG parameter == EXPIRELOG=LogFilename
-- default: EXPIRELOG='${LOGDIR}/expire.log'
WORKDIR parameter == WORKDIR=dirPath
-- default: WORKDIR='${VARDIR}/work/${PORT}'
ACTDIR parameter == ACTDIR=dirPath
TMPDIR parameter == TMPDIR=dirPath
PIDFILE parameter == PIDFILE=fileName
-- default: ACTDIR='${ACTDIR}/act'
-- default: TMPDIR=system dependent
-- default: PIDFILE='${ACTDIR}/pid/${PORT}'
HOSTS parameter* == HOSTS=nameList[/addrList]
nameList == name | {name[,name]*}
addrList == addr | {addr[,addr]*}
-- default: HOSTS=localhost/127.0.0.1
RESOLV parameter == RESOLV=[resolver[,resolver]*] resolver == cache | file | nis | dns | sys -- default: RESOLV=cache,file,nis,dns,sys
| cache | -- 以下のレゾルバによる結果のキャッシュ |
| file | -- ローカルの hosts(5) ファイル(一般的に /etc/hosts に配置) |
| nis | -- NIS または YP(4) サービスのホストマップ |
| dns | -- DNS サービス |
| sys | -- gethostbyname() と gethostbyaddr() を使用する。(大抵、ホストのシステム標準レゾルバをコール) |