EN JA
FTP-PROXY(8)
FTP-PROXY(8) FreeBSD System Manager's Manual FTP-PROXY(8)

名称

ftp-proxyインターネットファイル転送プロトコルプロキシデーモン

書式

ftp-proxy [ -6Adrv][ -a  address][ -b  address][ -D  level][ -m  maxsessions][ -P  port][ -p  port][ -q  queue][ -R  address][ -T  tag][ -t  timeout]

解説

ftp-proxy は、Internet File Transfer Protocol (インターネットファイル転送プロトコル) のためのプロキシです。 FTP 制御接続は、プロキシがクライアントの代わりにサーバに接続した後に、 pf(4) rdr コマンドを使用してプロキシにリダイレクト (向け直) されるべきです。

プロキシによってデータ接続は、正しいアドレスが使用できるように、それらを渡して、書き直して、リダイレクトすることができます。クライアントからサーバまでのすべての接続は、書き直されたそれらの発信元のアドレスがあるので、それらは、プロキシから来るように見えます。その結果として、サーバからプロキシまでのすべての接続は、書き直されたそれらの宛先アドレスがあるので、それらは、クライアントにリダイレクトされます。プロキシは、このために pf(4) anchor 機能を使用します。

FTP 制御接続が $client から $server までで、プロキシが、$proxy 発信元アドレスを使用してサーバに接続され、$port が交渉されると仮定すれば、 ftp-proxy は、様々なアンカに次の規則を追加します。 (これらの例の規則は、inet を使用しますが、プロキシは inet6 もサポートします。)

アクティブモード (PORT または EPRT) の場合は:

rdr from $server to $proxy port $port -> $client 
pass quick inet proto tcp \ 
    from $server to $client port $port

パッシブ (受動的な) モード (PASV か EPSV) の場合は:

nat from $client to $server port $port -> $proxy 
pass in quick inet proto tcp \ 
    from $client to $server port $port 
pass out quick inet proto tcp \ 
    from $proxy to $server port $port

オプションは、次の通りです:

-6
IPv6 モード。プロキシは、すべての通信のために IPv6 アドレスを期待して使用します。拡張 FTP モード EPSV と EPRT のみが、IPv6 で許可されます。プロキシは、デフォルトで IPv4 モードです。
-A
匿名の FTP 接続のみを可能とします。ユーザ "ftp"またはユーザ "anonymous"のいずれかが許可されています。
-a address
プロキシは、サーバへの制御接続のための発信元アドレスとしてこれを使用します。
-b address
プロキシがリダイレクトされた制御接続を listen (接続を受け付け) するアドレス。デフォルトは、IPv6 モードの 127.0.0.1 または ::1 です。
-D level
0 から 7 までの範囲のデバッグレベル。高いほど、より冗長です。デフォルトは、5 です。 (これらのレベルは、 syslog(3) レベルに対応しています。)
-d
デーモン化しません。プロセスは、フォアグランドのままで、標準エラーにログ記録します。
-m maxsessions
同時 FTP セッションの最大数。プロキシがこの制限に達するとき、新しい接続は、拒否されます。デフォルトは、100 セッションです。制限を最低 1 に下げるか、または最大 500 まで上げることができます。
-P port
固定されたサーバポート。 -R と組み合わせてのみ使用されます。デフォルトは、ポート 21 です。
-p port
プロキシがリダイレクトされた接続を listen (接続を受け付け) するポート。デフォルトは、ポート 8021 です。
-q queue
データ接続をキューに入れることができるように、追加されたキュー queue で規則を作成します。
-R address
リバースモードとしても知られている、固定されたサーバアドレス。プロキシは、クライアントが、(それがリダイレクトされる前に) 接続したがっていたところにかかわらず、常に同じサーバに接続します。 NAT の後ろのサーバのためのプロキシのために、またはすべての接続を別のプロキシに転送するために、このオプションを使用します。
-r
この RFC の特性で強く主張する古いクライアントに適応するために、アクティブモードで発信元ポートを 20 に再書き込みします。
-T tag
フィルタ規則は、データ接続にタグ tag を追加し、速くマッチしません。このように、 タグ付けされた キーワードを使用する代替の規則を ftp-proxy アンカに続いて、実装することができます。これらの規則は、 ftp-proxy が、それ自体で実装されない、 route-to, reply-to, label, rtable, overload、その他のような特別な pf(4) 機能を使用することができます。
-t timeout
プロキシが切断する前に、制御接続をアイドルにすることができる秒数。最大は、デフォルトの 86400 秒です。制御接続は、、大きなデータ転送が行われるとき、通常アイドルであるので、あまりに低くこれを設定しないでください。
-v
ftp-proxy によってコミットされた pf 規則で 'log' フラグを設定します。 'log-all' フラグを設定するためには、2 度使用します。 pf 規則は、デフォルトでログ記録しません。

設定

プロキシを使用するために、 pf.conf(5) は、次の規則を必要とします。すべてのアンカは、強制的です。必要に応じて規則を調整します。

NAT セクションでは:

nat-anchor "ftp-proxy/*" 
rdr-anchor "ftp-proxy/*" 
rdr pass on $int_if proto tcp from $lan to any port 21 ->\ 
    127.0.0.1 port 8021

規則セクションでは:

anchor "ftp-proxy/*" 
pass out proto tcp from $proxy to any port 21

関連項目

ftp(1), pf(4), pf.conf(5)

警告

システムが 1 より高い securelevel(7) で実行しているなら、 pf(4) は、ルールセットを、変更することができません。そのレベルで、 ftp-proxy は、規則をアンカに追加することができず、FTP データ接続は、ブロックされるかもしれません。

1024 より下の交渉されるデータ接続ポートは、許可されません。

アクティブモードのための交渉される IP アドレスは、安全上の理由で無視されます。これで、第三者のファイル転送は不可能となります。

ftp-proxy は、"/var/empty"に chroot し、特権を下げるためにユーザ "proxy"に変更します。

February 26, 2008 FreeBSD