CentOSにvsftpdを導入するときのつまりどころ

 CentOS5.4にFTPサーバのvsftpdを導入した。
導入にあたり2点つまった所があったので、それについて書く。

問題1:chroot_local_user=YESを設定するとログインできなくなる

詳細

 vsftpdの設定ファイル中でchroot_local_user=YESを指定した状態で、
FTPクライアントからログインすると、"500 OOPS: chroot"というエラー
メッセージが表示されてログインできない。

設定ファイルの内容(関連箇所のみ)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
原因

 SELinuxFTPによるユーザのホームディレクトリの読み書きを禁止しているため

対処方法

 SELinuxの設定をFTPによるユーザのホームディレクトリの読み書きを許可に変更する。
対処手順の例を以下に示す。

  1. SELinuxGUI設定ツール(policycoreutils-gui)を導入する
  2. メニュー「システム」中の管理から「SeLinux Managment」を開く
  3. 左側のメニュー「Select」から「Boolean」を選択する
  4. FTPの設定項目「Allow ftp to read/write files in the user home directories」にチェックする

問題2:FileZillaからFTPSでログインできない

詳細

 FTPクライアントFileZilla(Ver.3.1.0以降)からFTPSでアクセスすると、
ディレクトリ一覧の取得に失敗しました」とエラーメッセージが表示され、ログインできない。

原因

 FileZillaとvsftpdのSSL/TLS通信に関する仕様の違いが原因らしい

対処方法

 FTPクライアントFileZillaから最新のWINSCPに変える。