ftp.proxyでFTPプロキシサーバを立てる

2015/08/20

FTPプロキシサーバ(http://www.ftpproxy.org/)を立てる方法。
接続許可されているIP以外から接続したいとき、許可されているサーバにプロキシサーバを立てて通信を中継してもらうこともできる。

1. ftp.proxyにxinetd経由でアクセスしてもらうために、/etc/xinetd.dに設定ファイルを作成する。

server_argsに設定する-b -e -mの意味

-b ファイル名にスペースを許可する。
これを指定しないと、get "file name with space"のようにスペースのあるファイル名をダブルクオーテーションで囲ってコマンドを発行したとしても、目的のサーバにはエスケープされて発行されない。
-e クライアントサイドで、接続先サーバを選べるようにする。
-m どのディレクトリに移動しているか、ログに記録する。

xinetdでアクセスを制御しているので、xinetdの設定を一部オーバーライドする。
参照:https://www.express.nec.co.jp/linux/distributions/knowledge/network/xinetd.html

per_source 同じクライアントからの接続数を制限するために、数値(整数)または、UNLIMITEDを指定します。
instances 同時に動作可能なサービスの最大数を数値で指定します。UNLIMITED を指定すると、制限なしとなります。
cps 毎秒ごとに可能な接続数の上限を設定します。最初の引数は、1秒あたりに処理可能なコネクション数を、後の引数は、サービス利用不能となってから、再び利用可能になるまでの時間(秒)を指定します。
例えば、cps = 10 60 の場合、1秒間の接続数が10を超えると、一度サービスが停止し、60秒後に再開されます。
only_from サービスにアクセス可能なホストを指定します。以下のいずれかの方法で指定が可能です。
no_access サービスへのアクセスを許可しないホストを指定します。only_from の場合と同じ方法で指定することが可能です。

2. xinetdを再起動する。

3. ログの設定

4. rsyslogを再起動する。

設定は以上で終了。

接続情報は、次の形式で指定すれば、ftp.proxyを通して、目的のサーバに接続できるようになる。

IPアドレス ftp.proxyサーバのあるIPアドレス
ユーザ名 接続したいFTPサーバの「ユーザ名@IPアドレス」
パスワード 接続したいFTPサーバのパスワード

参考URL:http://pocketstudio.jp/log3/2013/05/30/ftpproxy/

-Linux