- PR -

vsftpdについて(設定方法)

1
投稿者投稿内容
dede
常連さん
会議室デビュー日: 2003/10/01
投稿数: 47
投稿日時: 2003-10-02 00:25
RedHat9にてサーバー構築中のlinux経験3ヶ月の物です。
vsftpの設定で下記についてどなたかご存知であればご教授願います。
1.anonymousログインしかできない。
vsftp(1.1.3-7)をインストールしてwindowsよりffftpでlinuxユーザでログインしよう
としたのですが、530 This FTP server is anonymous only.のメッセージが出力され、
ログインできません。anonymousでログインするとできました。
一応/etc/vsftpd/vsftpd.confは
anonymous_enable=YES
local_enable=YES
userlist_enable=YES
の指定をしています。また、
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
はとくにさわっていません。
(どうもvsftpd.confを読み込めていないようです)
この事象はxinet経由でvsftpdを起動するよう設定しなおしたところ
/etc/xinetd.d/vsftpdの設定を下記に修正
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.conf
nice = 10
disable = no
# flags = IPv4
flags = NOLIBWRAP
log_on_success += DURATION USERID
log_on_failure += USERID
}
解消しました。スタンドアロンで起動している時は/etc/vsftpd/vsftpd.confは
読み込んでいないのでしょうか?

2.vsftpdtの停止ができない
server vsftpd stop/restart/reload
等の停止を行うコマンドを投入すると、停止時に[失敗]となってしまう。

この2点についてどなたかご教授いただける方いましたらよろしくお願いします。
藍空
常連さん
会議室デビュー日: 2003/06/24
投稿数: 49
投稿日時: 2003-10-02 13:14
私の手元にあったRedHat9には、vsftpd-1.1.3-8が入っていたので
それをインストールしてみました。
デフォルトの設定で、

 service vsftpd start

として起動し、Windows上のFTPクライアントからアクセスしてみま
したが、通常のユーザで接続できました。

1.1.3-7とは異なっているのかもしれませんが、起動スクリプト内
を見ても、

 /etc/vsftpd/*.conf

というファイルを探してきて、それを引数として起動するようにな
っています。(/etc/init.d/vsftpd参照)
/etc/vsftpd/ 以下に、vsftpd.confしかなければ、それを利用して
起動されるはずです。

もしかして、confファイルを変更後、vsftpdを再起動しなかったの
ではありませんか?
serviceコマンドで起動した場合、conf(設定)ファイルは、起動時
に読み込まれますが、ファイルが変更されたからといって自動的に
再読み込みは行われません。

それに対して、xinetd経由での接続の場合は、接続されるたびに新
規に処理を受け付けるためのvsftpdが起動されますので、接続し直
しをすれば有効になったのだと思われます。

> 2.vsftpdtの停止ができない

xinetd経由で利用するのであれば、serviceコマンドでのリスター
トなどはできません。
というのも、serviceコマンドでリスタートをかけようとしたとき
に、vsftpdを起動しようとするので、起動時にftpで利用するポー
ト番号を確保しようとします。
しかし、xinetdがそのポート番号を占有した状態になってしまって
いますので、vsftpdの起動に失敗(リスタートに失敗)することに
なります。

つまり、ftpで利用するポート番号をxinetdが管理するのかvsftpd
自身で管理するのかという違いがあるわけです。

ということで、xinetd経由で管理するのか、serviceコマンドで管
理するのかのどちらかにしてください。
# RedHat9のデフォルトは、serviceコマンドで管理するようになっ
# たようですね。
dede
常連さん
会議室デビュー日: 2003/10/01
投稿数: 47
投稿日時: 2003-10-03 00:18
回答ありがとうございました。
ご指摘の内容をよく考えてみて(とくに2の回答)再設定を行ったところうまく起動しました。
1.の直接原因はxinet起動の設定ミス(server_args=/etc/vsftpd/vsftpd.conf指定の欠落)だと思われます。
2.の原因はlinux自動起動の設定が混在していたためだと思われます。
linux自動起動:chkconfig vsftpd onの状態と、vsftpd.confでlisten=YES,tcp_wrappers=YESの指定。
xinet起動指定:/etc/xinetd.d/vsftpdのdisable=no
(というか私自身の頭のなかで混在していた・・・ということですね。)
の状態で藍空さんのご指摘どおりの事象で失敗となっていると思われます。

また、1.についてはxinet起動しようとしてるけど、vsftpd.confの場所がわからずにデフォルト状態(anonymous only状態)で起動してしまい通常ユーザのログインを受け付けなかったのではないか?と推測しています。
いずれにしてもご指摘により見事解決してしまいました。感謝感謝です、ありがとうございました!!
1

スキルアップ/キャリアアップ(JOB@IT)