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
警告
システムが 1 より高い securelevel(7) で実行しているなら、 pf(4) は、ルールセットを、変更することができません。そのレベルで、 ftp-proxy は、規則をアンカに追加することができず、FTP データ接続は、ブロックされるかもしれません。1024 より下の交渉されるデータ接続ポートは、許可されません。
アクティブモードのための交渉される IP アドレスは、安全上の理由で無視されます。これで、第三者のファイル転送は不可能となります。
ftp-proxy は、"/var/empty"に chroot し、特権を下げるためにユーザ "proxy"に変更します。
February 26, 2008 | FreeBSD |