ftp.proxyを構築。接続ユーザーIDに@が含まれていたせいでトラブル発生(解決済み)




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 で設定反映。

→繋がりました。

注意事項として「このオプションに注意してください。これは、「プロキシホッピング」を行うために悪用される可能性があります。」と記載されていましたが、アクセス制限しているので多分大丈夫でしょう。多分。





■関連記事

0 件のコメント :

コメントを投稿