FTPプロキシ
未だにインターネット経由のFTP接続でファイルをアップロード/ダウンロードする業務運用があったりしています。
FTP接続にはFTPクライアント(FFFTP)を利用しておりますが、FFFTPがHTTPプロキシ経由のFTP接続に対応していないため、HTTPプロキシとは別にFTPプロキシを構築しております。
そしてFTPプロキシサーバーが老朽化したことに伴い、サーバーリプレイスのタイミングでプロキシをftp.proxyに変更を行いました。
ftp.proxyのセットアップ
こちらの記事を参考にして構築しています。
http://pocketstudio.jp/log3/2013/05/30/ftpproxy/
ただ、参考記事の通りに設定するとftpのログを/var/log/ftpproxy.logに延々と書き込み続ける形となりそうであったことから、日付単位でログを書き出すように変更しました。
ログ設定の修正
vi /etc/rsyslog.conf
$template DynamicFileName1,"/var/log/ftpproxy%$year%%$month%%$day%.log"
ftp.* ?DynamicFileName1
これでftpproxy日付.logの形式でログファイルが自動作成されるようになりました。
なおCentosで構築したので、設定反映コマンドも参考記事とは若干異なっています。
設定反映コマンド
/bin/systemctl restart xinetd.service
(スポンサーリンク)
動作確認にて不具合発覚
FFFTPにて接続確認を行っていると、一部サーバーに対してFTP接続が失敗する事例がありました。
パスワードが異なると怒られます。
FFFTPのログでは以下のように出力されました。(なお接続先情報はダミーです)
~~~~~~~~~~~~~~~
220 server ready - login please
>USER root@xxxxx@YYY.ZZZ.com
331 password required
>PASS [xxxxxx]
500 service unavailable
ログインできません.
~~~~~~~~~~~~~~~
接続先の情報
ユーザーID:root@xxxxx
ログイン先ホスト:YYY.ZZZ.com
上記ログで見る限り、明らかにユーザーIDが変ですね。
本来であればroot@xxxxxだけをユーザーIDにしてほしいのに、勝手に接続先ホスト名が付与されています。
>USER root@xxxxx@YYY.ZZZ.com
正常に接続できる他のサイトとの違いを比較すると、ユーザーIDに「@」が含まれているか、含まれていないかの違いがありましたから、十中八九この@が原因で接続ができないと推測出来ます。
ftp.proxyで-uオプションを付与
ftp.proxyのドキュメントを一から漁らないと駄目かなと、公式サイトを訪問すると、faqのよくある質問項目にピンポイントな質問がありました。
How to configure ftp.proxy when the username contains a @ sign?
http://www.ftpproxy.org/faq/index.php?qid=14&frommostrecent=yes
use the -u option.
同じように困っている人が多かったようです。
-uオプションをつけろということなので、早速設定を試してみます。
vi /etc/xinetd.d/ftpproxy
でファイルを開き、
server_args = -e -m
の項目に、-uオプションを下記のように追加付与して保存します
server_args = -e -m -u
そして/bin/systemctl restart xinetd.service コマンドで設定反映します。
→結果、FTPサーバーに繋がりました。
なお注意事項として
「このオプションに注意してください。これは、「プロキシホッピング」を行うために悪用される可能性があります。」
と記載されていましたが、アクセス制限しているので多分大丈夫でしょう。多分。
■関連記事
0 件のコメント :
コメントを投稿