ftpクライアントからvsftpdサーバーに接続できない場合は以下のような理由が考えられます。
これらの対象方法は以下の通りです。
ローカルユーザーがログインできない場合などは設定ファイルに問題があります。 vsftpd.confやそれに関する設定ファイルを確認してください。 設定ファイルはvsftpdとはの「vsftpd.confのサンプル」が参考になると思います。 なお、これでもログインできない場合は、大抵、userlist_fileディレクティブに設定しているパス等のスペルミスが原因です。
[root ~]more /etc/vsftpd/vsftpd.conf . uesrlist_file=/etc/vsftpd/user_list <-そもそも「userlist_file」のスペルミス。 . [root ~]ls /etc/vsftpd/user_list ls: cannot access /etc/vsftpd/user_list: そのようなファイルやディレクトリはありません *「userlist_file」で指定したファイルもなかったりする。
「chroot_list_enable=YESはとりあえず設定して、chroot_listファイルは後で作ろう。」などと思っていると、残念ながらこの問題に陥ります。 「echo > chroot_list」で空のファイルでも作りましょう。
hosts.denyに「ALL:ALL」や「vsftpd:ALL」が設定されているにもかかわらず、 hosts.allowにvsftpd:[アドレス]のエントリーがない場合に起きます。hosts.allowにエントリーを行いましょう。
iptablesでftpのポートをブロックしていると接続ができません。 まずはftpのポートが許可されているか、「iptables -L」でチェックします。
上記のように、ftpに該当するようなルールが無い場合(上記はhttpのみ許可[ACCEPT]。それ以外は無視[DROP])は、 ftpに関するルールを追加する必要があります。
ftpクライアントから接続できても、いざ接続すると「ls: ログインに失敗しました: 500 OOPS: cannot change directory:/home/xxxxx」とエラーが表示される場合があります。 これはSELinuxで許可されていない場合に表示されます。 手っ取り早く回避するにはSELinuxの設定を「Permissive」にします。
厳密に設定したい方はSELinuxのftpに関する設定を1つ1つ行う必要があります。デフォルトでは以下のようにftpはまったく許可されていません。
既定ユーザーのみ解放したい場合は以下の様にします。
COPYRIGHT © 2008 Deepnet Inc. ALL RIGHTS RESERVED.