ftpで接続できない
vps上の設定を行っていていよいよ最終段階に。
webコンテンツをUPしようと、ftpサーバを立てる。
$ sudo apt-get install vsftpd
まあ、これだけの話だ。
でもって、気持よくFileZillaで接続しようとするも接続できない???
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
と文句を言ってくる。
おや、前に違う環境で立てた時は、こんなことはなかった。
まあ、今回はvirtual hostをいくつも切るために、アカウントごとにchrootしているので、これまでとは状況が違うといえば違うのだけれど…。
今回利用しているのは、vsftpd 2.3.5だ。
ググってみっるとこんなタイトルの情報が…
バグでも潜んでいるんかと、読んでみる。
対策として、
chmod a-w /home/user
しろとな。これで試すと、問題なく接続できる。
いやぁ、しかし書き込み権限をなくせばOKと言われましても、これじゃUploadできないわけで…。
試しに、Uploadしてみるが、書き込みできないと言われる。
そりゃ、当たり前だ。
もしくは、次の2つの方法があるらしい。
vsftpdなら
allow_writeable_chroot=YES
vsftpd-extなら
allow_writable_chroot=YES
にしろと。(どうして記述の方法を変えたのか…)
vsftpd-extってなんじゃい?と思いつつ、とりあえず上の方法で試すも撃沈。
他の情報を探してみる
どうやらvsftpd2.3.5になった時に、セキュリティ強化のために導入されたらしい。
じゃ、2.3.4で行けばと思ったら、脆弱性が見つかっているので、止めた方がいいらしい。
手詰まりか?と思ったら、
方法は3つ。
- Extended vsftpd(さっきのvsftpd extがこれだった)を利用しろ
- vsftpdの3.x.x系を使え
- vsftpd 2.3.5改?(3系列backport)を使え
ということらしい。
1.は、
本家vsftpdからダウンロード可能だが、tar.gz形式で、自分でbuildする必要がある。
最初はbuildしかけたのだけれど、折角ubuntuで構築しているのに、Package管理できないのは勿体ない。
今後、アップデートが出ても、確認が面倒になる。
そこで、ようやく見つけたのが3.だった。
お手軽にできた
手順は以下の通り
- login as root (or sudo..) and do the following:
- apt-get install python-software-properties
- sudo add-apt-repository ppa:thefrontiergroup/vsftpd
- sudo apt-get update
- sudo apt-get install vsftpd
- vi /etc/vsftpd.conf and add the following allow_writeable_chroot=YES
- sudo service vsftpd restart
要はppaをリポジトリに追加して、そこにあるvsftpdを入れろと。
すると、2.3.5-1ubuntu2ppa1が入るので、confに上記を追記してやればOKとな。
ここに辿り着くまでに、少々苦戦しましたゎ。
おかげで、無事にUploadできるようになりましたとさ。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。