FTPプロキシ
未だにインターネット経由のFTP接続でファイルをアップロード/ダウンロードする業務運用があります。FTP接続にはFTPクライアント(FFFTP)を利用しておりますが、FFFTPがHTTPプロキシ経由のFTP接続に対応していないため、HTTPプロキシとは別にFTPプロキシを構築しています。
そしてFTPプロキシが稼働しているサーバーが老朽化したことに伴い、サーバーリプレイスのタイミングでFTPプロキシをftp.proxyに変更を行いました。
ftp.proxyのセットアップ
こちらの記事を参考にして構築しています。
http://pocketstudio.jp/log3/2013/05/30/ftpproxy/
ただ、参考記事の通りに設定するとftpのログを/var/log/ftpproxy.logに延々と書き込み続ける形となるため、日付単位でログを書き出すように設定を変更しました。
ログ設定の修正
rsyslog.confファイルを修正し、ログの出力形式を変更します。
vi /etc/rsyslog.conf
$template DynamicFileName1,"/var/log/ftpproxy%$year%%$month%%$day%.log"
ftp.* ?DynamicFileName1
これでftpproxy日付.logの形式でログファイルが自動作成されるようになります。
なおOSをCentosで構築しており、設定反映コマンドも参考記事とは若干異なります。
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 件のコメント:
コメントを投稿