翻訳者: 鈴木 雄(すずき ひろし)<setter at i-red dot info>
翻訳開始日:2001/8/23(v7.5) (1997/11-v4.3)
最終更新日:2008/4/4 (v9.8.2-pre21)
翻訳者コメント:
翻訳の正確さなどは、一切保証しません (できません(^^;;;)。
ですから、この文書をお読みになる方は、*必ず*原文
(http://www.delegate.org/delegate/)
を併用して下さい。
誤訳などのご指摘は大歓迎です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 佐藤 豊
<ysato AT etl DOT go DOT jp>
<y DOT sato AT delegate DOT org>
著作権 (c) 1994-2000 電子技術総合研究所 (ETL), AIST, MITI
著作権 (c) 2001-2007 独立行政法人 産業技術総合研究所 (AIST)
AIST-Product-ID: 2000-ETL-198715-01, H14PRO-049, H15PRO-165, H18PRO-443
本マテリアルの、
・評価のための使用
・自らが使用するための複製
・誰もがアクセス可能なオンラインメディアを経由した複製の無料配布
は、
上記の著作権通知、および、この認可通知を、全ての複製中で、
閲覧可能なことを条件として許可します。
AISTは、本マテリアルのあらゆる目的に対する、正確さや、適合性に関する表示をしません。
それは、いかなる、明示、または、暗示された保証がともなわないまま、提供されています。
順列目次
CFI
CU-SeeMe
DGAuth
DNS
FTP
Gopher
HostList
HTTP
ICP
IMAP
LDAP
NNTP
POP
ProtoList
SMTP
SockMux
Socks
SSI.shtml
SSL
TCPrelay
Telnet
UDPrelay
Whois
X
目次
-F
-P
-f
-r
-v
-d
-D
ADMIN
AF_LOCAL
Aging
AUTH
AUTHORIZER
BASEURL
CACHE
CACHEFILE
CERTDIR
CGIENV
CHARCODE
CHARMAP
CHROOT
CLUSTER
CMAP
CONNECT
COUNTER
CRON
DATAPATH
DELAY
DELEGATE
DGCONF
DGOPTS
DGPATH
DGROOT
DGSIGN
DNSCONF
DYLIB
EXPIRE
FCL
FFROMCL
FFROMMD
FFROMSV
FMD
FSV
FTOMD
FTOSV
FILETYPE
FORWARD
FTOCL
FTPCONF
HOSTLIST
HOSTS
HTMLCONV
HTTPCONF
ICP
ICPCONF
INETD
LDPATH
LIBPATH
LOGDIR
LOGFILE
MASTER
MASTERP
MAXIMA
MIMECONV
MOUNT
MountOptions
MYAUTH
NNTPCONF
OWNER
PERMIT
PORT
PROTOLOG
PROXY
REACHABLE
REJECT
RELAY
RELIABLE
REMITTABLE
RESOLV
RES_AF
RES_CONF
RES_DEBUG
RES_NS
RES_RR
RES_VRFY
RES_WAIT
RIDENT
ROUTE
RPORT
SERVER
SHARE
SMTPCONF
SMTPGATE
SockMux
SOCKOPT
SOCKS
SOCKSTAP
SOXCONF
SOCKMUX
SRCIF
SSLTUNNEL
STLS
SYSLOG
TIMEOUT
TLSCONF
TUNNEL
UMASK
URICONV
VSAP
XCOM
XFIL
TCPrelay
UDPrelay
SockMux
Socks
DGAuth
PAM
HTTP
SSI.shtml
ICP
FTP
Telnet
POP
IMAP
SMTP
NNTP
LDAP
Whois
X
Gopher
SSL
DNS
CU-SeeMe
--------- --------- --------- --------- --------- --------- --------- --------- 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 プログラムとして利用できます。
さらに、外部プログラムによるフィルタリングで、
HTTP ヘッダ削除
/生成を含むいくつかの
くり返し使用される機能は、DeleGate に組み込まれています。
ログファイルと、キャッシュファイルを含む、
全ての DeleGate のローカルファイル は、
単一のルートディレクトリ (DGROOT) に置かれ、
デフォルトで、DeleGate (プロセス) 所有者のプライベートファイルとなります。
しかし、それらは、異なったユーザ間で共有でき、
それぞれのファイルのパス名、所有者、アクセス権限をカスタマイズできます。
ログファイル名は、
エージングのため、日付値でパラメータ化でき、
また、キャッシュファイル名は、分散キャッシュディスクのため、
ハッシュ値でパラメータ化できます。
DeleGateは、たくさんのオプションで制御されますが、
-Pport オプションと、
SERVER=protocol パラメータだけは、
ほとんどの場合、動作させる上で必須となります。
-P オプションは、DeleGate がどのポートで
クライアントからの要求を受けるかを指定します。
SERVER パラメータは、
DeleGateが、どのプロトコルでクライアントと通信するか、
また、任意で、どのサーバに通信を中継するかを指定できます。
オプションは、"+=URL" の記述により、ローカル/リモートリソースから読込めます。
通常、"+=/path/of/parameters" のように、
ローカルファイルを使用します。
(パラメータ置換を見てください)
(DGCONF も見てください)
オプション
入り口ポートは、デフォルトで、SERVER=protocol パラメータにより、
UDP ベースアプリケーションプロトコル (dns, icp, cuseeme, udprelay)
が指定された場合を除き、TCP ポートが作成されます。
また、-Pport/udp のように "/udp" が後置される場合、
SERVER で指定したプロトコルとは無関係なものとなります。
このオプションは、以下の場合を除き、*必ず* 指定しなければなりません。
DeleGate が、inetd(8) から、起動される場合や、
ほとんどの、-Ffunction オプションを利用する場合、
または、SERVER="tunnel1" により、トンネルサーバ
として動作している場合には、無視されます。
-P option -- DeleGateの入り口ポート番号
== -Pport[,port]*
port == [host:]portNum[/udp][/admin]
portNum == number[-number]
このオプションは、DeleGateが、
クライアントからの要求を受ける、入り口ポート番号を指定します。
一般的な例として、"-P8080" は、ホストマシンが持っている、
どのネットワークインターフェースでも、8080番の TCP ポートで、
要求を受けることを意味します。ホストが、複数のインターフェースや複数の
IPアドレスを割り当てた、ひとつの物理インターフェースを持つ場合、
例えば "-Plocalhost:8080" のように、書式 -Phost:portNum で、
それらのひとつを選択できます。
DeleGate サーバは、-Pport,port,... により、
複数のポートや、(有限の) 複数ネットワークインターフェースで受けることができます。
host を指定しない場合、IPv4 アドレスのみが受理されます。
-P8080 は、 "-P0.0.0.0:8080" の省略形です。
ここに IPv6 アドレスを指定するには、IPv6 アドレス表記のコロン":" を
アンダースコア"_" に置き換えます。
例) "-P__:8080" は、IPv6 におけるワイルドカードアドレス"::" の
8080番ポートで受理することを意味します。必要なら、"-Pfe80__12_34%en0:8080"
のように "%" を付けることでスコープIDを指定できます。
注)SRCIF で、
出力側接続のソースアドレスの選択方法を見てください。
-f option -- フォアグラウンドで実行
-r option -- 再起動
-v option -- ログレベルを制御 == -v[vdtsau]
-D option -- サブコンポーネント無効化
== -D[t]
-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" スクリプトでは指定できません。
一般
ルーティング
アクセス制御
リソース使用制限
キャッシュ制御
マウント
データ変換
フィルタ制御
ローカルファイル使用法
ホスト名解決
このカテゴリにあるパラメータは、
使用目的や、対象アプリケーションプロトコルとは独立した、
DeleGate 共通の属性を制御するために用います。
名称
値の書式
機能
--
----------
------------------
----------------------------------
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 を定義する
*
CLUSTER
protocol:hostList
サーバのクラスタを定義する
*
CMAP
map-spec
現在の接続に関するマッピングテーブル
DYLIB
patternList
ダイナミックライブラリのファイル名パターン
LIBPATH
dir:dir:...
ライブラリファイルのサーチパス
LDPATH
dir;dir;...
DYLIB の検索パス
DATAPATH
dir:dir:...
データファイルの検索パス
DGPATH
dir:dir:...
置換リソースの検索パス
DGCONF
dir/file
設定パラメータのファイル
DGOPTS
option;option;...
コマンドラインオプションリスト
PORT
portList
-P オプションと同様の入り口ポートの確保
これらパラメータは、上流プロキシを使った対象サーバや、サーバへの経路上にある
Socks サーバへ向ける間接ルーティングを制御します。
任意の対象サーバが、DeleGate ホストから IP レベルで直接接続できる場合、
このパラメータは、不要です。
他の場合、これらパラメータ (ICP と MOUNT)
は、アプリケーションプロトコルを基本としたルーティングで、いくつかの動作をします。
--
----------
------------------
----------------------------------
*
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 からの戻りポート
これらパラメータは、誰(クライアント)が、何(サーバ)に、
どのように(プロトコル)アクセスできるかを、制御します。
デフォルトのアクセス制御の基本ポリシーは、
DeleGate ホストのローカルネットワーク上にあるクライアントからは、
どのサーバにもアクセスを許可するよう、設計されています。
注記)
REMITTABLE のデフォルト値は、
SERVER によって決まり、
複数のインタフェースを持つホスト上の DeleGate への IP レベルでの接続は、
-Phost:port オプションによって制限できます。
これらパラメータは、DeleGateにセキュリティホールを作らないようにするため、
最大限の注意を払って設定する必要があります。
特に、インターネットと直接通信できるホスト上で動作させる場合、要注意です。
--
----------
------------------
------------------------------------
*
PERMIT
proto:dst:src
許可するプロトコル/サーバ/クライアント
*
REJECT
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 にソケットアドレスを転送する
キャッシュの実行/停止と、キャッシュデータの有効期限を指定します。
キャッシュのルーティング関連での利用方法は、
CONNECT でも制御できます。
古くなったキャッシュファイルの削除は、
CRON を使用し、定期的に実行できます。
--
----------
------------------
----------------------------------
CACHE
do|no|ro
キャッシュ有無の制御
*
EXPIRE
days|hours|secs
キャッシュデータの有効期限
CACHEFILE
fileNameSpec
キャッシュデータを保存するファイル
*
ICP
icpClientConfig
ICP クライアントとしての設定
複数サーバのマージ、
異なったプロトコル間の翻訳、
内部サーバを外部に見せるなど、
他サーバ (群) の仮想ビューを、
URL マッピングや、
フィルタ、および、リソース名の書換えを行って実現します。
また、MOUNT を、カスタマイズ や、
組み込みアイコンとメッセージの置換に使えます。
--
----------
------------------
----------------------------------
*
MOUNT
"vURL rURL opt"
仮想 URL と、実 URL のマップ
*
URICONV
convList:attrList
MOUNTでの、URI 書換えを制御
BASEURL
URL
このサーバのベース(仮想)URL
DELEGATE
host:port
BASEURL の簡易型
クライアントやサーバとの間の経路に、送受信されるデータを変換するフィルタプログラムを挿入する。
--
----------
------------------
----------------------------------
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
サーバとしてフィルタを実行する
全てのローカルファイルは、デフォルトで、DGROOT 下に統合されます。
不要なら、これらパラメータを変更や設定する必要はありません。
--
----------
------------------
----------------------------------
+
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
エクスパイアログファイル
COUNTER
CounterOptions
アクセスカウンタ
WORKDIR
dirPath
DeleGate がコアダンプする場所 (-_-;
ACTDIR
dirPath
一時ファイルの場所
TMPDIR
dirPath
表にでない一時ファイルの場所
PIDFILE
fileName
DeleGate の PID ファイル
DNS/NIS/ローカルファイルによる、IPアドレスとホスト名の相互解決。
プロトコル特有
--
----------
------------------
----------------------------------
*
HOSTS
host/addr,...
プライベート ホスト/アドレス マップ
RESOLV
file,nis,dns,sys
レゾルバの使用順序
RES_WAIT
src:host
レゾルバの準備ができるまで待つ
RES_CONF
URL
resolv.conf の場所
RES_NS
host[:port]
使用する DNS サーバ
RES_AF
46 | 64 | 4 | 6
検索するアドレスファミリ (IPv4/v6)
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 サーバとしての設定
*
SOCKSTAP
proto[:[dst][:src]]
SOCKS 越しのプロトコルを解釈する
SERVER parameter* == SERVER=protocol[://host[:portNum]][:-:MountOptions] portNum == [+|-]number -- default: SERVER=delegate
例) 対象サーバを限定しない Telnet-DeleGate の SERVER パラメータ
対象サーバ(host) を指定しない場合、 それは、アプリケーションレベルのプロトコルに依存した方法で、 実行時に、クライアントにより、何らかの形で与えられます。
サーバでのプロトコルは、クライアントでのプロトコルと同様であることが、 暗黙で要求されます。 HTTP のようないくつかのプロトコルは対象サーバとのプロトコルを指定する固有の方法を 持っています。 他の場合、例えば、MOUNT="/news/* nntp://server/*" のように、MOUNT パラメータ で明示しなければなりません。
SERVER=protocol://host:portNum は、対象サーバの URL を指定します。 ":portNum" 部分は、番号が、プロトコル標準ポート番号の場合、通常、 URL 中で省略できます。 DeleGate によって認識されるプロトコルと標準ポート番号の一覧は、 "http://delegate/-/builtin/mssgs/config.dhtml" で見られます。 portNum に "-" または "+" が前置される場合、 入り口ポート番号に指定したオフセットを加えたポート番号 を割り当てます。 また、"-"(portNum なし)の場合、同じポート番号を使用します。
例) 複数ポートを単一の他のホストに転送する
注記:この、特定のサーバにバインドした DeleGate は、
任意サーバに対するプロキシとしての動作を停止していません。
必要なら PERMIT, REACHABLE, RELAY パラメータを使用し、
プロキシ機能を制限しなければなりません。
SERVER パラメータが ":-:MountOptions" を伴う場合、
MountOptions に指定された条件を評価した結果が真の場合、
動的に SERVER パラメータを選択します。
特殊な場合として、
":-:via=HostList" は、
":-:HostList" のように省略できます。
例) クライアントに適切な NNTP サーバを選択する。
例) {NNTP,SMTP,POP}-DeleGate を単一サーバで実行
例)クライアントのユーザ名と一致したユーザIDで動作する
Windows で、OWNER=user を指定してサービスとして起動した時、
DeleGate サービスが作られるときのユーザをセットします。
OWNER="" のように空のユーザが指定された場合、ユーザ名は、
USERNAME 環境変数から取得されます。
パスワードは、PASS=pass パラメータ、環境変数で指定するか、コンソールで問い合わせられます。
例)
例)
例)
リストが "/R" で始まるとき、リスト内のサーバはランダムな順序で試されます
(最初に試されるサーバはランダムに選択され、他のサーバはラウンドロビンで試されます)。
これは、同等の (プロキシ) サーバ間で負荷分散するのに使えます。
このパラメータによる再試行は、通常、サーバの任意プロトコルでの、
サーバへの TCP 接続を確立する段階に適用されます。
再試行には、さまざまなプロトコルの認証段階も含まれます。
HTTP 元/ゲートウェイ サーバで、再試行はサーバからの応答によって行われ、
例えば、応答コード 503 (Service Unavailable/サービス提供不能) と、
404 (Not Found/見つかりませんでした) が含まれます。
例)
"fcl" を指定した場合、クライアントは STARTTLS ネゴシエーション無しで SSL
を開始できます。このようなクライアントサイドからの暗黙の SSL ネゴシエーションは、
クライアントサイドから接続時の、SSLハンドシェイクパケットを、
セッション開始時に imimSec によって指定された、
一定時間覗くことで検出されます。デフォルト値は、"im0.25"(250m秒)です。
"-im" は、この暗黙の SSL ネゴシエーションを無効にします。
例えば、対向 (この場合サーバとの) SSL で STARTTLS ネゴシエーションが無しに適用されるとき、
stlsSpec に、STLS="fsv/im" のように "/im" を続けます。
デフォルト以外の SSLway コマンドパスまたは、オプションを使う必要がある場合、
たとえば STLS="fcl,sslway -Vrfy -cert mycert.pem" のように、
stlsSpecs の後ろに SSLway コマンドを指定できます。
例)
例)
特別な、gwproto で、FORWARD は、
MASTER, PROXY, SOCKS、および SSLTUNNEL の一般化表記として次のように動作します。
複数の FORWARD パラメータが指定された場合、設定された順序で試されます。
対象サーバに対し複数のルートが利用可能な場合で、
FORWARD と、他のパラメータ(MASTER, PROXY, SOCKS, SSLTUNNEL) の混合とともに指定された場合、
FORWARD により指定されたルートは、CONNECT で、
"proxy" または、"master" により指定された優先順位で試行されます。
例) 認証つきの SSL トンネル経由で到達できる HTTPS サーバへの HTTP クライアント用ゲートウェイ
stHostList 中のホスト指定に、"proto://" を
前置きすることで、転送するプロトコルを制限できます。
例)ROUTE="http://host:port/-_-{ftp://*}:*" は、
FTP サーバへのアクセスだけ、"http://host:port/" の HTTP プロキシへ
転送されることを意味します。
dstHostList 中のホスト指定は、ポート番号指定で、さらに制限できます。
例)ROUTE="http://host:port/-_-{*:21}:*" は、
ポート番号 21(FTPサービス)でだけアクセスでき、プロキシへ転送されます。
任意の "/masterControl" 次のように指定できます:
例)
例)
例)
connType:
それぞれの接続タイプは、それぞれ {c,i,m,d,v,s,u} のように、
頭文字で省略できます。
注記)
現実装では、"cache" が connSeq に含まれる場合、
常に最初に試されます。
このパラメータで、それぞれのサーバへ接続する際の
ソースアドレス(ネットワークインターフェースの)を指定します。
これは、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" によって制御できます。
現状、tunnelType は、"tty7" でなければならず、それは、
DeleGate 間の伝送が 7ビットストリームで行われることを意味します。
タイプが "tty7" の場合、トンネルを確立する方法を、
指定した SHIO スクリプトファイルに書いておきます。
配布パッケージに含まれる、"src/sample.shio" を参照して下さい。
スクリプトファイル名は、絶対パスまたは、
相対パス (LIBPATH で検索できるファイル名)
のどちらかで指定する必要があります。
上流のトンネル用 DeleGate は、
SERVER="tunnel1" を指定して起動しなければなりません。
例) ログインダイアログなしで、トンネルを形成する。
複数の PERMIT パラメータが指定された場合、アクセスは、
少なくとも1つの PERMIT で指定された権限が許可されます。
PERMIT パラメータがない場合、アクセス許可は、
REMITTABLE,REACHABLE,RELIABLE パラメータによって明示されるか、
SERVER パラメータによる暗黙の指定によって、制御されます。
例)
ローカルネット上のホストには無制限に許可し、その他ホストは、http://www のみ許可します
ProtoList (dstHostList) 中の特殊パターン "*" は、
全ての許可されたプロトコル(サーバ)
(REMITTABLE (REACHABLE) パラメータによって明示することもできます) を意味します。
これらパラメータは、可能となっている許可範囲を制限します。
プロトコル(サーバ)は、REMITTABLE (REACHABLE) パラメータによって、
明示的または暗黙の指定で許可されていない場合、使えません。
同様に、1複数の RELIABLE パラメータが明示的に与えられた場合、
これらは、PERMIT のsrcHostList 中にあるクライアントの許可範囲を制限します。
dstHostList で指定したホストは、"host:portNumList" のように
ポート番号をつけることで、更に制限できます。
例) PERMIT="telnet:{*:23}:*" は、任意のホストに対する telnet を
標準ポート番号(23)でのみ許可することを意味します。
ProtoList 中のプロトコル名は、
"protocolName/portNumList/methodList"
のようにポート番号と手段を使って変更でき、
プロトコルにおけるアクセス可能なポートと手段を制限できます。
例) 一連の PERMIT パラメータ
PERMIT="ftp//readonly:Servers:Clients"
PERMIT="ftp:*:*" は、
Servers に対する Client からのアップロードを禁止し、
他のサーバ・クライアントの組み合わせで、アップロードを許可することを意味します。
複数の DeleGate サーバが、MASTER や PROXY によって連結されている場合、
元クライアントの識別情報は、
最初(連結の入り口)の DeleGate サーバによって取得され、
上流 DeleGate サーバへ RIDENT パラメータを使用して転送でき、
また、PERMIT パラメータを使って検査されます。
例)
メールクライアントが、メールサーバ上のメッセージを削除できないようにします。
プロトコル名の後ろに "/portNumList" がある場合、PortList に
指定されたポートのみが許可されます。
PortList には "/methodList" を付けることができ、
プロトコルで使える手段を制限できます。
現在、手段として、"readonly" のみが使えます。
例)REMITTABLE="ftp//readonly" は、
FTP サーバへのアップロードを禁止する、
"読み込み専用" FTP-DeleGate を生成します。
プロトコル固有のデフォルト:
例外:
最初の指定が、"+" の場合、それはデフォルトで許可されたプロトコルのリストを意味します。
例) SERVER=http で、REMITTABLE="+,-https/80,-wais,file" の場合、
REMITTABLE="http,https/443,gopher,ftp,file" を意味します。
これは、RELIABLE=Hosts1 RELIABLE=Hosts2 のような、
複数の RELIABLE パラメータを、
単一の RELIABLE="Hosts1,Hosts2"
に、単純に結合したものと解釈しますが、
Hosts1 または、Hosts2 に、いくつかの、
否定、または、
合成演算子が含まれる場合、
"Hosts1 または Hosts2" を意味しません。
もし、この文章の意味が理解できない場合は、代わりに、
複数の PERMIT パラメータを使用することを推奨します。
RELAY="no" は、中継を行わない、元 HTTP サーバとして動作することを意味します。
(元 HTTP サーバは、プロキシ用の書式 (要求される URL は、絶対フォーマットで、フル書式や、"/-_-" 書式ではありません)
ではない通常の書式での要求を受け付ける、通常のサーバです。)
"transparent-proxy (透過プロキシ)" と呼ばれる機能は、"RELAY=vhost" で有効にできます。
RELAY="vhost" は、任意の仮想ホストにも中継する、元 HTTP サーバに使用できます。
このオプションは、明示された MOUNT を指定せずに、
要求ヘッダ中の "Host:" フィールドで指し示された
任意の対象サーバに、 HTTP 要求を転送可能にします。
この自動転送は、要求された URL が MOUNT されていない場合のみ実行されますが、
ほとんどの DeleGate は ルート URL ("/*") 用の MOUNT パラメータが指定された
元サーバとして動作しているため、それほど使われそうにありません。
例)
デフォルト:
HTTP-DeleGate の場合、(要求メッセージ中の) Authorization ヘッダ
にある Username:Password で、
"私は誰”かを宣言します。ここでの Username は、
User@Host にもできます。
現在、以下のカテゴリでの、
認証/権限付与がサポートされます。
-- 任意プロトコルの DeleGate の場合 --
-- FTP サーバ と FTP/HTTP ゲートウェイの場合 --
-- プロキシと 元 HTTP サーバの場合 --
FTP サーバベースの認証を使用する場合、
要求される認証情報としてのユーザ名は、
"user@host.domain" のような、E-mail アドレスです。
なお、これは通常、AUTH="anonftp" と AUTH="proxy" 両方で使えます。
注記: auth-server により認証されたクライアントは、そのクライアントホストが、
他のアクセス制御 (RELIABLE と PERMIT)
を通過しない場合、許可されません。
認証された全クライアントを、そのホストを無視して許可したい場合、
RELIABLE="-a/*" のように指定します。
この用途で、RELIABLE="*" も動作しますが、DeleGate と設定変更で使うのは危険です。
connMap に追加するとき、認証サーバは、
対象プロトコル、サーバホスト、クライアントホストの組合わせで、条件付で選択できます。
authServList は、認証サーバ名、または、認証サーバのホスト名リストです。
authServList の後ろに、"@realmValue" が付く場合、
その値は、HTTP-DeleGate における、保護空間の領域指定に使えます。
それは、それぞれの MOUNT ポイントに対して、マウントオプション
"realm=realmValue" で上書き可能です。
現在、リモート認証/権限付与サーバのプロトコルは、
FTP プロトコルの USER/PASS コマンドです。
このように、DeleGate の認証/権限付与サーバには、
任意の実在の FTP サーバを使用できます。
他の方法として、DeleGate 自らが持つ 認証/権限付与のためのリストは、
-Fauth 機能により管理できます。
次のように、組み込み auth-server を authServ として使用します:
例)
例)
コマンドによる認証の結果は、その出力文字列か、終了コードで表されます。
コマンドはその標準出力に結果を FTP プロトコルでのステータス応答形式で表し、
成功時 "230"、失敗時 "530" です。
他の場合、プロセスの終了コードが使われ、0 が成功、0 以外が失敗です。
例) ユーザ名を引数で渡し、パスワードを環境変数で渡す。
[myauth コマンドの内容]
認証されたユーザに権限を与えない必要があるときのみ、
authServList として、以下の特別な名前が便利でしょう。
例)
クライアントから送られた、ユーザ名+パスワードの組は、
MYAUTH="%U:%P" でサーバに転送できます。
(HTTP および、FTP でのみ使えます)
注記:
プロキシとの認証では、MYAUTH の代わりに認証情報を含むゲートウェイ URL を
FORWARD とともに使用することが強く推奨されます。
例)
SOCKS=host:port と MYAUTH=user:pass
は、
FORWARD=socks://user:pass@host:port
と、表現できます。
例)
例)
SERVER="nntp://newsserver1:-:from={*.dom1}"
SERVER="nntp://newsserver2:-:from={*.dom2}"
-P119,110,25
SERVER="nntp://nntpserver:-:{*:119}"
SERVER="smtp://smtpserver:-:{*:25}"
SERVER="pop://popserver:-:{*:110}"
ADMIN parameter == ADMIN=user@host.domain
-- default: コンパイル時に指定されたもの
このパラメータは、特に、DeleGateの動作するホストが直接的にインターネットと
接している場合、正しく与える必要があります。
この E-Mail アドレスは次の場合に使用します:
- この DeleGateの 管理者名として、クライアントへの(エラー)
メッセージ中で表示する
(HTTPなど)。
- クライアントに対する開始メッセージやヘルプメッセージ中で、
管理者名として表示する(FTP, NNTP, Telnet)。
- 匿名アクセス FTP サーバへ、デフォルトユーザ名として送信する
(PASS コマンドで)。
- リモート SMTP サーバへのアクセスで、
AUTH=anonftp:smtp-vrfy 認証
を行う際の送信者名として送信する (FROMコマンドで)。
- 致命的なシグナルが発生したときに報告メッセージを
送信するアドレス。
OWNER parameter* == OWNER=user[/group][:srcHostList]
-- default: OWNER="nobody/nogroup"
-- 制限: ほとんどの Unix でスーパーユーザのみ
-- 制限: Windows 上でのサービスのユーザの設定
このパラメータは、スーパーユーザにより起動された場合のみ有効です。
指定した場合、DeleGateは、setuid(2) と setgid(2) システムコールを呼び出し、指定したユーザの権限で実行します。
ユーザとグループは、それぞれ、シンボリック名か、"#1234" のように、
"#" を前置きした ID 番号で、指定できます。
srcHostList が指定された場合、リスト中にクライアントホストが含まれる場合、
この DeleGate の所有者は、user に設定されます。
ユーザ名 "*" は、クライアントの
ユーザ名 (クライアントホスト上のIdentification
サーバから得られた) に置換えられます。
OWNER="*:*@*".
CRON parameter* == CRON="crontab-spec"
crontab-spec == minute hour day month dayOfWeek action
-- default: none
Unix システムでの、cron(8)サーバにおける、標準 crontab(5) 互換の、
crontab-spec 書式で指定した時間にアクションを起こします。
アクションに "/" が前置きされる場合、外部アクションとして、
system(3)関数を使用して、実行されます。
アクションに、"-" が前置きされる場合、
DeleGate の組み込み内部アクションです。
-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"と同じ
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"
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
指定したポートに要求がきた場合、指定した構成で、
新たな DeleGate プロセスを起動します。
inetd-conf 設定の書式は、Unix システムにでの
標準 inetd.conf(5) と同様です。
各フィールドのデフォルト値は、"-" で表現します。
sockType,proto,waitStat のデフォルト値は、
それぞれ、"stream","tcp","nowait"です。
uid フィールドは、起動されたプロセス中
の OWNER パラメータとして使用されます。
uid の値に "-" を指定した場合、DeleGateを、
OWNER パラメータなしで起動することを意味します。
execPath が "-" の場合、指定された argList とともに、
DeleGate の子プロセスが開始することを意味します。
親 DeleGate プロセスの設定は、子 DeleGate に継承されます。
例)次のように 親 DeleGate が起動された場合:
delegated ADMIN=foo EXPIRE=1 INETD=conf1 INETD=conf2
ここでの、ADMIN と EXPIRE パラメータは conf1 と conf2 で
記述される DeleGate に継承されます。
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
listName の名前を付けた HostList を定義する。
名前付 HostList は、他の HostList 内で参照できます。
複数の HOSTLIST パラメータが、同じ listName で定義された場合、
最後のひとつが参照されます。
HOSTLIST="listName:+,newHostList"
のように HostList の前に "+," がつく場合、
newHostList は、定義済みリストに追加されます。
// .localnet を再定義する
HOSTLIST=".localnet:localhost,./32,192.168.*"
// 定義済み .localnet から localhost を除外する
HOSTLIST=".localnet:+,!localhost"
CLUSTER parameter* == CLUSTER=[protoList]:ServerList
ServerList == [/R,]Server[,ServerList]
Server == Host[..Port]
CLUSTER パラメータは、代替または、補助サーバ(元サーバまたはプロキシ)
の順序セットを指定します。
それは、DeleGate が上流プロキシサーバまたは、元サーバとの接続や認証に
失敗したとき、参照されます。
MASTER, PROXY, SSLTUNNEL, SOCKS
で指定されたプロキシサーバや、SERVER または、MOUNT
の右側で指定された元サーバに適用されます。
CLUSTER=http:www1,www2,www3..8080 MOUNT="/* http://www1/*"
CLUSTER=ftp:ftp1,ftp2,ftp3 MOUNT="/* ftp://ftp1/*"
CLUSTER=http-proxy:/R,px1..8080,px2..9090,px3..8080 PROXY=px1:8080
CLUSTER=socks:/R,sock1,sock2,sock3 SOCKS=socks1
CMAP parameter* == CMAP=resultStr:mapName:connMap
connMap == ProtoList:dstHostList:srcHostList
-- default: none
現接続において、いくつかのパラメータを条件付にする汎用パラメータ。
現接続においてプロトコル、対象、ソースが connMap と一致する場合、
このマップは、mapName に使用するために、
resultStr 文字列の提供を有効にします。
ホスト名/アドレスだけでなく、対象サーバのポート番号も
dstHostList におけるマッチングで使用可能です。
このパラメータは、一般的に、
条件付フィルタを利かせる場合に使用します。
TLSCONF parameter* == TLSCONF=tlsConf[,tlsConf]*
tlsConf == what:value
-- default: TLSCONF=scache:do,xcache:do
STLS parameter* == STLS=stlsSpecs[,sslwayCom][:connMap]
stlsSpecs == [-]stlsSpec[/im][/ssl][,stlsSpecs]
stlsSpec == fsv | fcl | mitm | imimSec
sslwayCom == {sslway [-Vrfy] [-CApath dir] ...}
connMap == ProtoList:dstHostList:srcHostList
-- default: none
-- 制限: HTTP, FTP, SMTP, POP, IMAP, SOCKS に対して有効
-- 必須: SSLway
このパラメータは、それぞれのアプリケーションプロトコルで、サーバ/クライアント間
ネゴシエーションにおける、SSL(TLS) の初期化を制御します。
ネゴシエーションの共通のスキームは、"STARTTLS" として知られています。
"fsv" は SSL をサーバと、"fcl" は、SSL をクライアントとの間で使用することを指定します。
接続において SSL がサポートされない場合、
STARTTLS ネゴシエーションは失敗し、デフォルトで接続は閉じられます。
SSL が使用できなくてもセッションを継続したい場合、
"-" を "fsv" または、"fcl" の前につけます。
STLS="fcl" -- クライアントとの通信に SSL を使う (不能な場合、セッションを閉じる)
STLS="-fcl" -- 可能な場合、クライアントとの通信に SSL を使う
STLS="fsv,-fcl" -- サーバとの通信に SSL を使用し、可能な場合クライアントとの通信に SSL を使う
STLS="fsv/ssl" SERVER="ftp" -- AUTH TLS の代わりに、AUTH SSL を使う
CERTDIR parameter == CERTDIR=dir
-- default: ${ETCDIR}/certs
-- version: DeleGate/9.8.0 + OpenSSL0.9.8g or laters
CERTDIR は、SSLway が使う証明書の置場とするディレクトリを指定します。
ディレクトリ内の証明書ファイルには以下の名前を付けます。
すべての名前はオプションです。
DGCONF parameter == DGCONF=dir/file
-- default: DGCONF='${EXECDIR}/${EXECNAME}.conf'
DGCONF は起動時に存在すれば読み込む設定パラメータのファイルを指定します。
初期値は、DeleGate 実行ファイル名からの相対パスです。
例えば、実行ファイルのパスが、"X:/path/of/dg9_4_1.exe" なら、
DGCONF="X:/path/of/dg9_4_1.conf" になります。
DYLIB parameter == DYLIB=libfilePattern[,libfilePattern]*
-- default: DYLIB='dglib*.so,lib*.so,dglib*.dylib,lib*.dylib'
DYLIB で検索するダイナミックリンクするライブラリファイルのファイル名パターン
一覧を指定します。 それぞれのパターンに含まれるキャラクタ "*" は、
検索するライブラリ名に置換されます。
例) パターン "lib*.so" を指定した場合、"ssl" のために、"libssl.so" が検索されます。
特別なパターン "+" は、デフォルトリストへの追加を意味します。
パターンがフルパス書式ではない場合、ライブラリファイルは、
システムコンフィギュレーションに依存するか、LD_LIBRARY_PATH のような環境変数
などによるいくつかのディレクトリで検索されます。
パターンは、"/usr/local/ssl/lib/lib*.so" のようなフルパス、または、
"/usr/local/ssl/lib/libssl.so" のように "*" キャラクタをともなわないものが使用できます。
DYLIB="" ... 動的リンクを無効にする
DYLIB="lib*.so,lib*.so.1"
DYLIB="libz.so,libssl.so"
DYLIB="+,lib*.so.0.9.7"
DYLIB="/usr/lib/libz.so.1,/lib/libssl.so"
LDPATH parameter == LDPATH=dirPath[;dirPath]*
-- default: LDPATH='${LIBDIR};${EXECDIR};${HOME};/usr/lib;/lib'
どこでダイナミックライブラリ (DYLIB) を検索するか指定する。
LIBPATH parameter == LIBPATH=dirPath[:dirPath]*
-- default: LIBPATH=LIBPATH='.:${STARTDIR}:${LIBDIR}:${EXECDIR}:${ETCDIR}'
LIBPATH が相対パスで指定された場合、
ライブラリファイル/追加パラメータファイル/CFI スクリプトと
フィルタプログラムは、指定された順序で、
複数のディレクトリ内を検索します。
デフォルトで、LIBPATH の順序リストは、下記のディレクトリです。
WORKDIR (.) -- ワークディレクトリ
STARTDIR -- DeleGate が起動されたディレクトリ
LIBDIR -- デフォルトの ${DGROOT}/lib
EXECDIR -- DeleGate の実行可能ファイルがあるディレクトリ
ETCDIR -- $デフォルトで {DGROOT}/etc
DATAPATH parameter == DATAPATH=dirPath[:dirPath]*
-- default: DATAPATH='.:${DGROOT}:${STARTDIR}
クライアントに提供するデータファイルを含むディレクトリリスト。
このパラメータは、DeleGate が、
MOUNT="/path/* file:dir/*" のように相対パスで指定した
ローカルファイルから応答データを生成するために使用されます。
DGPATH parameter == DGPATH=dirPath[:dirPath]*
-- default: DGPATH='+:.:${HOME}/delegate:${ETCDIR}'
パラメータファイルの検索パス。
特殊なディレクトリ名 "+" は、"caller" リソース(パラメータファイルからパラメータファイルを参照する)の
場所を表します。
DGSIGN parameter == DGSIGN=signatureSpec
-- default: DGSIGN="V.R.P/Y.M.D"
クライアントやサーバに提示する DeleGate の署名を指定します。
署名全体 "Version.Revision.Patch (Month Day, Year)" は、"V.R.P/Y.M.D" で表されます。
指定部分を隠すには、対応するキャラクタを、"x" に置き換えます。
例) DGSIGN="V.x.x/Y.x.x" は、"DeleGate/9.x.x (x x, 2005)" のような署名にします。
DGOPTS parameter == DGOPTS=opt[;opt]*
-- default: none
コマンドラインオプションのリスト。
これは、-P や、-v のように
name=value 書式ではないオプションを
環境変数で指定する場合に使えます
SOCKOPT parameter == SOCKOPT=[no]name[:value]
-- default: reuse
ソケットオプションを設定
PORT parameter == PORT=port[,port]*
port == [host:]portNum[/udp]
portNum == number[-number]
-- default: none
-P オプションと同様に入り口ポートを作ります。
FORWARD parameter* == FORWARD=gatewayURL[-_-connMap]
gatewayURL == gwproto://gwhost[:gwport]
connMap == protoList:dstHostList:srcHostList
-- default: none
protoList にあるプロトコルで、
srcHostList にあるクライアントから、
dstHostList にあるサーバへの要求が、
connMap に指定された条件とマッチする要求の場合、
gatewayURL で指定されたプロキシサーバへ向けて、
要求を転送します。
connMap が省略された場合、
要求は無条件に gatewayURL へ転送されます。
gwhost に前置した "user:pass@" として認証情報が与えられた場合、
gwhost との接続後の認証段階で使われます。
FORWARD は、ROUTE の一般化表記で、
以下の2つの表記は同等となります。
ROUTE=gwproto://gwhost:gwport/-_-dstHostList:srcHostList
FORWARD=gwproto://gwhost:gwport/-_-*:dstHostList:srcProtoList
FORWARD=delegate://gwhost:gwport/-_-*:dstHostList:*
FORWARD=gwproto://gwhost:gwport/-_-*:dstHostList:*
FORWARD=socks://gwhost:gwport[/socksOpt]-_-*:dstHostList:srcHostList
FORWARD="ssltunnel://gwhost:gwport/-_-*:*:*"
FORWARD="direct-_-protoList:dstHostList:srcHostList"
FORWARD="noroute-_-protoList:dstHostList:srcHostList"
MOUNT="/* https://sslhost/*"
STLS=fsv:https:sslhost
FORWARD=ssltunnel://user:pass@proxyhost:8080-_-https:sslhost
ROUTE parameter* == ROUTE=proto://host:port/-_-dstHostList:srcHostList
-- default: none
srcHostList中 のホストから、
dstHostList リストにあるリソースへの要求を、
proto プロトコルの host:port サーバに転送する。
ROUTEは、MASTER と PROXY の一般化表記です。
MASTER="host:port:dstHostList" は、
ROUTE="delegate://host:port/-_-dstHostList:*" の省略形です。
SERVER=proto を伴う PROXY="host:port:dstHostList" は、
ROUTE="proto://host:port/-_-dstHostList:*" と同じです。
MASTER parameter* == MASTER=host:port[/masterControl][:dstHostList]
-- default: none
このパラメータは、この DeleGate が、要求を転送する、
上流の generalist DeleGate (MASTER-DeleGate) を指定します。
MASTER への転送は、":dstHostList" を
ポストフィックスすることにより選択できます;
dstHostList に指定されている対象サーバへ
向けた要求のみ MASTER-DeleGate に転送されます。
複数の MASTER が指定された場合、順序通りに、MASTER への接続が
成功するまで試行されます。
cache -- MASTER においてキャッシュヒットした場合のみ MASTER を使用
teleport -- MASTER に対して、永続的な Teleport 接続を確立する
MASTERP parameter == MASTERP=[host:port]
-- default: none
この DeleGate のプライベート MASTER-DeleGate を起動する。
HTTP-DeleGate が他のプロトコルへのゲートウェイとして動作する場合、
FTP と NNTP の接続キャッシュを行うため、
MASTER-DeleGateを必要とします。
MASTER がリモートホスト上で動作している場合、MASTERP を MASTER とともに指定すると、
ローカルホスト上でデータキャッシュを強行します。
RPORT parameter == RPORT={tcp|udp}[:host]
-- default: none
このパラメータは、MASTER パラメータとともに使う必要があります。
指定した場合、この DeleGate に対する、
MASTER-DeleGate からの接続 (データ転送応答) は、
DeleGate から MASTER-Delegate への接続 (データ転送要求) とは独立して確立されます。
指定した接続応答の種類は、MASTER から指定した
ホスト上の DeleGate に向けて作られます。
PROXY parameter* == PROXY=host:port[:dstHostList]
-- default: none
-- 制限: HTTP, FTP, Telnet に適用可能
DeleGate が要求を転送する、
上流プロキシ(specialist DeleGate または、標準プロキシ)を指定します。
dstHostList が指定された場合、対象ホストが一覧に含まれるときのみ、上流プロキシに転送されます。
HTTP, FTP, Telnet の specialist DeleGate のみ、このパラメータで指定できます。
SERVER=http PROXY=proxyhost:8080:!*.localdomain
SERVER=ftp PROXY=proxyhost:proxyport
SOCKS parameter* == SOCKS=host[:[port][/socksOpt][:dstHostList[:srcHostList]]]
socksOpt == [ -4 | -r ]*
-- default: none
host 上の使用する Socks サーバを指定します。サーバは、SocksV5 プロトコル
を理解しなければなりません。サーバが V4 しかサポートしない場合、
"SOCKS=host:port/-4" のように、"-4" オプションを指定します。
"-r" オプションは DeleGate と Socks サーバのどちらが名前解決
(対象ホストの IP アドレス から、そのホスト名へ)するかを制御します。
SocksV4 サーバの場合、名前解決はデフォルトで DeleGate によって行なわれます。
"-r" オプションは、名前解決をサーバに任せます
(これは、サーバが拡張 Socks4A プロトコルをサポートしている場合、使用可能です)。
SocksV5 サーバの場合、名前解決はデフォルトでサーバ任せとなり、
"-r" オプションは、解決を DeleGate によりローカルで行なうようにします。
デフォルトでは、Socks 経由で接続を確立するのは、
全てを試行した後になりますが、
CONNECT パラメータで、順序を制御できます。
dstHostList が省略された場合、初期値は、
"!.localnet" です。
この初期値は、名前付 HostList ".socksdst"
(HOSTLIST=".socksdst:!.localnet" として、定義済み)
を再定義することで、変更が可能です。
CONNECT=s,d
SOCKS="sockshost:1080:!.localnet,!*.my.domain"
SSLTUNNEL parameter == SSLTUNNEL=host:port
-- default: none
標準 SSLトンネル機構の機能 (HTTP での CONNECT メソッド) を持つ
host:port で動作している、HTTP プロキシを、
任意プロトコルの目的サーバーに対するサーキットレベルプロキシとして使用します。
VSAP parameter == VSAP=host:port
-- default: none
クライアントを受け付けるため、または、クライアントに接続するために使用する、
VSAP サーバを指定します。
VSAP は、リモートソケットマッピングサーバで、リモートホスト経由で接続するのと同様に、
サーバがリモートホスト経由で TCP 接続を受け付けられるようにします。
// VSAP server
firewall% delegated -P8000 SERVER=vsap PORT=8080-8090
// 外部クライアントに対して、
内部サーバを提供できるように VSAP 経由で受け付ける
internal% delegated -P8080@firewall:8000 ...
// VSAP 経由の接続
内部クライアントに対し、プロキシのように動作する
internal% delegated -P8080 CONNECT="{vsap/firewall:8000}" ...
// VSAPサーバ経由で、受付け、接続する
internal% delegated -P8080 VSAP=firewall:8000 ...
CONNECT parameter* == CONNECT=connSeq[:connMap]
connSeq == connType[,connType]*
connType == cache|icp|proxy|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 (HTTP 上の SSL トンネル) 経由
vsap -- VSAP サーバ経由
direct -- 目的サーバへ直接接続
socks -- SOCKS サーバ経由
udp -- UDP による
none -- 接続しない
ProtoList と dstHostList が指定された場合、
リストに含まれるプロトコルとホストにのみ制御が適用されます。
例) 外部ネットワークに接続せず、ホスト上のキャッシュデータを使う場合、
CONNECT="cache:*:!./@"のように指定します。
SRCIF parameter* == SRCIF=host[:[port][:connMap]]
connMap == ProtoList:dstHostList:srcHostList
-- default: SRCIF="*:*:*:*:*"
このパラメータは、複数のネットワークインタフェースを持つホストや、
パケットフィルタするファイアーウォールに隠されたホスト上で動作する DeleGate で役立ちます。
SRCIF="*:0:ftp-data"
// FTP データ接続に無作為なポート番号を使用する
SRCIF="*:8020-8120:ftp-data"
// 指定した範囲のポート番号を使用する
SRCIF="150.29.202.120:*:tcpbind"
// SOCKS による受理で、指定アドレスを使用します。
SRCIF="150.29.202.120:*:udpbind"
// SOCKS 上の UDP 中継で、指定アドレスを使用します。
TUNNEL parameter == TUNNEL=tunnelType:script
tunnelType == tty7
-- default: none
指定した場合、上流 DeleGate との通信は、
コマンドの標準入出力経由で、トンネルされます。
トンネルは、数種の経路を形成できます。
例えば、生のシリアルライン上で双方向通信が提供されているようなものです。
リモートホスト上の inetd から起動できる DeleGate への経路も使えます。
TUNNEL=tty7:tunnel.shio
例) ログインダイアログありで、トンネルを形成する。
[content of tunnel.shio]
o rsh host delegated SERVER=tunnel1\n
i READY\r\n
=
TUNNEL=tty7:tunnel.shio
上記の例のように、SHIO スクリプト ファイルの最初の行は、
リモートサーバとの接続を確立するために、"o command\n" のような
シェルコマンドである必要があります。
接続を確立するための他の方法として、"c host:port" を先頭行に書きます。
この場合、シェルや、シェルコマンドは実行されません。
[content of tunnel.shio]
o telnet hostname\n
i login:BR>
o username\n
i Password:
o password\n
i %
o delegated SERVER=tunnel1 \n
i READY\r
i \n
=
PERMIT parameter* == PERMIT=connMap
connMap == ProtoList:dstHostList:srcHostList
-- default: none
PERMIT パラメータで、この DeleGate が許可するアクセス方法を指定します。
アクセスは、srcHostList に含まれるクライアントホストから、
dstHostList に含まれるサーバホストに対して、ProtoList
に含まれるプロトコルで行われた場合に許可されます。
PERMIT="*:*:.localnet"
PERMIT="http:www:*"
REJECT parameter* == REJECT=connMap
connMap == ProtoList:dstHostList:srcHostList
-- default: none
REJECT パラメータで、PERMIT と同じ書式で、
どのようなアクセスを拒否するか指定します。
アクセスを拒否する状況が例外的である場合、
PERMIT より便利で、
許可する時より記述を簡素化できます。
REJECT="pop//DELE:mail-server:mail-client"
REJECT="imap//EXPUNGE:mail-server:mail-client"
REMITTABLE parameter == REMITTABLE=ProtoList
-- default: REMITTABLE="*" - generalist 用
-- default: REMITTABLE="." - specialist 用
ProtoList に指定されたプロトコルのみが、
この DeleDate で許可されます。
generalist(SERVER="delegate" を指定した DeleGate) では、
デフォルトで全てのプロトコルを許可します。
specialist では、SERVER パラメータ ("." で表現可能) により指定されたプロトコルが、
デフォルトで許可されます。
現在の対象サーバが、
MOUNT="Path1 Proto://Server/Path2" のように、
MOUNT パラメータによって限定されている場合、Proto プロトコルは、
Server における目的プロトコルとして、
REMITTABLE による制限を無視して、自動的に許可されます。
注記:ここでの "https" は、SSLtunnel 上の 非 https プロトコルを検出して拒否します。
SSLtunnel 上で 任意のプロトコルを中継する場合、
REMITTABLE="+,ssltunnel" のように、
"https" の代わりに "ssltunnel" を指定します。
REACHABLE parameter* == REACHABLE=dstHostList
-- default: REACHABLE="*" (全てのホストに接続可能)
dstHostList に指定されたホスト(またはネットワーク)上のサーバに
向けられた要求のみ、DeleGate で受け付けます。
複数の REACHABLE パラメータを使用した場合、
その意味を確実なものにしなければなりません。
RELIABLE parameter* == RELIABLE=srcHostList
-- default: RELIABLE=".localnet"
srcHostList に指定されたホスト(またはネットワーク)上の
クライアントから送られた要求のみ、
DeleGate で受け付けます。
デフォルトで、DeleGate ホストのローカルネット ( .localnet) 上のホストからのアクセスのみ許可されます。
RELAY parameter* == RELAY=relayTypeList[:connMap]
relayTypeList == relayType[,relayType]*
relayType == proxy | delegate | vhost | no | nojava | noapplet
connMap == ProtoList:dstHostList:srcHostList
-- default: RELAY="delegate,vhost,nojava:*:*:.localnet"
RELAY="proxy:*:*:*"
このパラメータは、DeleGate がどのように、
HTTP プロキシサーバとして動作するかを制御します。
HTTP プロキシサーバの DeleGate は、2つの方法(プロキシモード)で動作します:
1つは、リクエスト中 の全 URL を受け付ける、
標準(CERN 互換)HTTP プロキシ ("proxy" relayType)、
もう一つは、要求で、/-_-URL を受け付け、
応答中の URL を書換える、
DeleGate オリジナルのプロキシ ("delegate" relayType)。
":connMap" が付加された、
詳細な書式で利用可能なプロキシモードは、
サーバプロトコル,サーバホスト,クライアントホストの組み合わせによって分類できます。
RELAY=no ... プロキシとして動作しない (元サーバのみ)
RELAY=proxy ... CERN準拠モードのみ
RELAY=delegate ... DeleGateモードのみ (/-_-URL)
RELAY=proxy,delegate ... CERN と DeleGate モードの両方
RELAY=proxy,noapplet ... プロキシによって中継される <APPLET> タグを抑制する
"proxy" と "delegate" モードの両方は、".localnet" 上のユーザを許可し、
"proxy" モードのみの場合、他のユーザを許可します。
AUTH parameter* == AUTH=what:authProto:who
-- default: none
who (誰)が what(何)をする権限を与える。
authProto に指定したプロトコルを使用して、ユーザを認証する。
プロトコルをサポートする場合、クライアントホストへの識別 (ident) プロトコルベースで、
"クライアントユーザは誰か" を識別します。
他の場合、FTP サーバを認証サーバとして使用するかもしれません。
User, Host, Password のセットを得た後、
DeleGate は、
Host の(FTP)サーバに、
User と Password でログインを試みます。
成功した場合、
クライアントは User@Host で
認証されます。
さまざまなプロトコルの DeleGate (SERVER=protocol にかかわらず) は、
"-PuserPort,adminPort/admin" のように、 "/admin" 修飾子をもつ管理専用ポートを指定することで、
リモート管理用ポートを持つことができます。
例)
SERVER=pop -P110,9110/admin AUTH=admin::admin:password
この DeleGate (POP プロキシとしての) のリモート管理用 URL は、
"https://delegateHost:9110/-/admin/" です。
E-mail アドレス書式は、user@host
でなければならず、他の場合 (host 部分がない)、
FTP ログインは DeleGate により拒否されます。
HTTP-DeleGate は、Authorization ヘッダの Username 部として、
彼/彼女の E-Mail アドレスを宣言するため、
匿名ユーザに問い合わせます。
passWord フィールドに "*" を指定した場合(すなわち、AUTH="annonftp:*:*")、
Authorization ヘッダのすべての Password を受理します。
FTP-DeleGate の場合、匿名ユーザでは、E-mail アドレスを
パスワード(PASS コマンドで)として与えられなければいけません。
また、パスワードは、passWord のつき合わせにも使われます。
現実装では、2番目のフィールドは "*" でなければなりません。
例:
ident -- 識別プロトコル [default]
pauth -- Proxy-Authorization フィールド "user@host:password" を使用
auth -- Authorization フィールド "user@host:password" を使用
AUTH=proxy:auth PERMIT="*:*:{*,!?}@*"
注記:
// 彼/彼女が識別できる限り、全てのホストの全てのユーザを許可。
クライアントがプロキシ認証をサポートしていない場合、
認証に "proxy:auth" を使用することが強制されます。
このような場合、クライアントは、
認証要求のあるリソースにアクセスできません。
AUTHORIZER parameter* == AUTHORIZER=authServList[@realmValue][:connMap]
authServList == authServ[,authServ]* | & | *
authServ == authHost[/portNum][(reprUser)]
authHost == hostName | hostAddr
realmValue == word | {words separated with space}
connMap == ProtoList:dstHostList:srcHostList
-- default: none
-- 制限: Telnet, FTP, NNTP, SMTP, IMAP, Socks, SockMux および、HTTP に、適用可能
認証と権限付与に使うサーバを指定します ("auth-server")。
指定した場合、アプリケーションプロトコル独自の
ユーザ名/パスワードを送信することによって
auth-server での認証が成功しない限り、
クライアントからのアクセスは許可されません。
"-none" と "-never" の、2つの特別な authServ は、
不要な認証を生成しません。
authServ の後ろに "(reprUser)" がつく場合、
authServ で認証が成功したユーザは、
代表ユーザ reprUser として表示されます。
//ダイジェスト認証をクライアントと行う HTTP プロキシ、または、サーバ
SERVER=http AUTHORIZER=-dgauth
// クライアントと、APOP 認証を行う、POP プロキシ
SERVER=pop MOUNT="* pop://server/*" AUTHORIZER=-dgauth
注記: ほとんどの PAM 認証の実行には、Unix 上のスーパーユーザ特権
(OWNER="root" オプション付加) が必要です。
しかし、DGROOT/subin/ に
外部プログラム "dgpam" をインストールすることで、
スーパーユーザ特権をともなう DeleGate を実行することを避けられます。
PAM 認証は、リモート PAM サーバに委任することもできます。
AUTHORIZER="-list{u1:p1,u2:p2}(local),-pam,-none(anonymous)"
// ユーザは、"local" または PAM でのユーザ、またはその他の "anonymous"
// として認証されます。
AUTHORIZER="-cmd{myauth %U}{MYPASS=%P}"
#!/bin/sh
if [ "$1" = "user1" -a "$MYPASS" = "pass1" ]; then
echo "230 SUCCESS"
else
echo "530 FAILURE"
fi
"&" -- クライアントホスト (クライアントホスト上のユーザ名が必要)
"*" -- "user@authHost" としてのクライアントで指定された、
任意の authHost
// local.domain 以外のクライアントは認証が必要
SERVER=telnet AUTHORIZER="&:::!*.local.domain"
// ユーザが localhost で認証された場合、全てのクライアントを許可
SERVER=telnet AUTHORIZER="localhost" RELIABLE="*"
// "-Fauth" により管理される、
DeleGate 自身の "-socksusers" リストを使用する。
SERVER=socks AUTHORIZER=-socks.users
MYAUTH parameter* == MYAUTH=username:password[:connMap]
-- default: none
-- 制限: Socks, VSAP, SMTP, および HTTP のみに適用可能
上流 サーバ/プロキシに送る認証情報を指定します。
username または password に含まれる特殊文字は、
"%XX" でエスケープする必要があります。
ここでの、XX は、文字コードの16進表記です (ascii(7)を見てください)。
エスケープできる特殊文字は:
TAB ("%09"), SPACE ("%20"), '"' ("%22"), '%' ("%25"), ':' ("%3A"),
'{' ("%7B"), '}' ("%7D").
MYAUTH=userS:passS:socks
MYAUTH=userV:passV:vsap
MYAUTH=userM:passM:smtp:smtpserverM
MYAUTH=userH:passH:http:httpserverH
MYAUTH=userP:passP:http-proxy:httpproxyP
RIDENT parameter == RIDENT=ridentType[,ridentType]*
ridentType == client|server
-- default: none
RIDENT="server" が指定された場合、クライアントソケットに関する識別情報は、
getsockname(2) と getpeername(2)によって取得され、
PROXY または、RIDENT="client" により情報を受信できる MASTER-DeleGate に転送されます。
また、アクセス制御にも使用されます。
RIDENT="client" を指定した DeleGate サーバは、RIDENT="server" を指定した DeleGate と、
RIDENT をサポートしない他のプロキシサーバの両方から受信可能です。
一連の多段 DeleGate サーバの中間にある DeleGate は、
RIDENT="client,server" の指定が必要です。
host1# delegated -P8080 RIDENT=server MASTER=host2:8080
host2# delegated -P8080 RIDENT=client
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 | -- | スタンバイプロセスの最大数 [32] |
| 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] | ||||||||||||||||||||||||||||||||||||
| dgnonce | -- | AUTHORIZER=-dgauth 用 ("nonce" の寿命) [60] | ||||||||||||||||||||||||||||||||||||
| ident | -- | Ident サーバへの接続 [1] | ||||||||||||||||||||||||||||||||||||
| rident | -- | RIDENT=client 情報の受取り [1.0]
| io | -- | 一般入出力 (データ転送ではない) [600]
| silence | -- | クライアント・サーバどちらからもデータ送信無し [0]
(tcprelay のみに適用)
| hello | -- | MASTER との HELLO ネゴシエーション [30]
| login | -- | プロキシへのログイン (Telnet, FTP, SOCKS) [60]
| daemon | -- | delegated [無制限]
| restart | -- | 指定した期間毎に再起動 [無制限]
| standby | -- | 次のクライアントのため delegated が待機する時間 [30]
| takeover | -- | クライアント切断後ダウンロード内容をキャッシュに書込むまで [5]
| (ダウンロードを開始した、クライアントの切断後) ftpcc | -- | FTP 接続キャッシュのキープアライブ [120]
| nntpcc | -- | NNTP 接続キャッシュのキープアライブ [300]
| http-cka | -- | (HTTPCONF=tout-cka に置き換えられました)
| cfistat | -- | -s,filter からの
状態情報用 [1.0]
| |
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*"
vURL が "*" で終わる場合、 部分的に一致したパスも書換えられます。 rURL が "*" で終わる場合、 部分的に一致したパスの残り部分は、そのまま rURL の後にコピーされます。
例) HTTP-DeleGate での MOUNT
vURL か rURL に "=" を指定した場合、 マウントは、リクエスト中の vURL を書換えない、 または、 応答中の rURL を書換えるのと同じです。
対象サーバのポート番号 (rURL において) には、 "-" か "+" が前置きでき、 これは、SERVER パラメータに設定した入り口ポート番号に対して、 動的に決定したオフセットを与えます。
rURL が "file:path" で path が相対の場合、 データファイルは、DGROOT ディレクトリ、 または DATAPATH に設定された ディレクトリ内で検索されます。 rURL が "vurl:rURL" のように前置きされるなら、 vURL から rURL への書き換えられた URL(要求メッセージ中の) は、他の MOUNT で再度書き換えられます。 この再帰的な MOUNT は、rURL to vURL への応答データ内の URL には、 適用されないので、応答中の URL が逆書き換えされることが、さらに期待されるような、 HTTP では期待の動作はしません。
例) 再帰的な MOUNT
省略形
設定を簡単で再利用可能にするために、 URL の特別な省略形を MOUNT パラメータで使用できます。 protocol-name://host-name:port-number/url-path からなる rURL 中の protocol-name, host-name, port-number に "=" を指定した場合、 それは、DeleGate 自身をあらわします (すなわち vURL 中のそれ)。 URL が "//" で始まる場合、更なる省略形で、 "///path" は "=://=:=/path" を意味し (プロトコル,ホスト,ポートが同じ)、 また、 "//serv..." は "=://serv..." を意味します (同じプロトコル)。
省略された host-name と、port-number は、 存在する場合、仮想ホスト(HTTP の Host: フィールドで与えられた)の、 または、クライアントとの実インタフェースのそれに置き換えられます。 実インタフェースを明示的に指定する場合、"-P" を "http://-P/path" のように、"host-name:port-number" 部分に使用します。
例) MOUNT パラメータ中の rURL の省略形
マッチングと書換えの複合
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 部は、"*" で置換えでき、 その場合ネットワークインターフェースの違いを気にしません。
例)
制御系: オプションの2番目のグループは、局所的な MOUNT ポイントに 対する DeleGate の動作を制御します。