FTP 接続するとエラー?

最近 xrea (エクスリア)でも使用されている, FTP サーバ ProFTPD に, セキュリティーホールが発見されました.
(サーバ構築に携わっている方や,自宅でサーバを運営されている方は既にご存知のことでしょう.)

このセキュリティーホールの影響を受けない ProFTPD のバージョンは, 1.2.10RC1 以降(あるいは CVS 公開中のバージョン)です.
 (※ 2004年6月14日現在の ProFTPD の安定版リリースは, 1.2.9 です.)
2005年1月30日現在における ProFTPD の最新(安定)版は,1.2.10 です.
2007年1月21日現在における ProFTPD の最新(安定)版は,1.3.0a です.
2007年10月19日現在における ProFTPD の最新(安定)版は,1.3.1 です.

ProFTPD 1.2.10RC1 での変更点

前述のセキュリティーホールに対しては,ProFTPD 1.2.10RC1 以降へアップグレードするという対処法があるのですが, FTP クライアントとして FFFTP を使用して ProFTPD1.2.10rc1 が動作する FTP サーバに接続した場合,

501 NLST: Options not supported
コマンドが受け付けられません.
ファイル一覧の取得を中止しました.
ファイル一覧の取得に失敗しました.

といった内容のエラーが発生し,接続出来ない(ファイル一覧の取得が出来ない)という現象が発生します.

これは,1.2.10rc1 の変更点にある,

- Bug 2322 - NLST -a returns listing formatted for LIST -a. RFC959 does not
explicitly allow dash-style options for LIST or NLST, although many clients
attempt to use them. De facto FTP server behaviors handle options for LIST;
options for NLST will be explicitly rejected.

が影響しています.
"NLST -a" のリクエストに対して "LIST -a" の結果を返していたバグを修正した.
RCF959 に準拠すると,LIST 及び NLST コマンドに対して「ダッシュ付き」オプションは許可されない.
FTP サーバは事実上 LIST コマンド向けとしてオプションを扱い,NLST コマンド向けのオプションは明らかに拒絶されるだろう.
といった内容です.
ここで問題になるのは,FFFTP の標準の設定では "NLST -alL" でファイル一覧を取得するようになっていることです.(スクリーンショット.1)
その為にファイル一覧の取得に失敗する(接続出来ない)現象が生じます.

※ このエラーメッセージは,1.2.10RC2 以降では出現しなりました(Bug 2396).
FFFTP を FTP クライアントとして使用して "NLST -alL" でファイル一覧を取得しようとした場合は,ディレクトリの内容が空白(何も表示されない)になるようです.
※ FFFTP Ver.1.92a 以降では,標準で LIST コマンドを使用するように仕様が変更されました.

対処法

このエラー?には,ユーザー側で対処することが可能です. (スクリーンショット.2)
ファイル一覧の取得を,FFFTP の標準動作である "NLST -alL" ではなく,"LIST" コマンドで行うことにより,正常にファイル一覧を取得できるようになります.

※ ただし,".htaccess" や,".htpasswd" 等の「ドット付き」ファイルが見えなくなるという現象が発生します.

ListOptions "-a"

を proftpd.conf 内で指定することにより,この問題は解決出来ます.
これはサーバ管理者さんのお仕事です:-)

※ 【参考】mod_ls.c にパッチをあてることで,以前の挙動(ダッシュ付きオプションを許容する)に戻すことが出来るようです.
"ProFTPD NLST Patch" 等をキーワードに WEB 検索すると情報が得られると思います.
→ Google 検索結果

補足・その他

この文章に関しての誤りを発見した方,或いは,何らかのご意見,ご感想をお持ちになった方(尚且つ,一言言わないと気が済まない方:-)は, E-Mail または掲示板まで,お気軽にご意見を下さい.

※ 記事の内容が欠落した状態でアップロードしていました.
    ご覧になった方にはご迷惑をおかけしました(2004年7月3日修正).
※ 記事の内容が古い部分に対し補足,訂正を加えました(2005年1月30日).
※ 意訳し過ぎで誤訳気味だった記述を修正しました(2005年3月13日).
※ 変な日本語を修正,FFFTP のバージョンアップに伴う補足を追加しました(2005年4月23日).
※ 重大なミスを修正しました( "NLST -aIL" -> "NLST -alL" )(2005年4月29日).

おまけ : proftpd-1.3.3g-nlst.patch (2013年7月12日更新)

TOP ページに戻る