1126 vsftpdのSSL対応でchrootが効かない可能性

<<トップページへ

vsftpdのSSL対応でchrootが効かない可能性
日時: 2009/02/17 12:50
名前: ZED
ちょっと気になっていたのですが、
vsftpdでFileZilla ClientのSFTPを有効にすると、local_rootでなく、rootが表示されてしまう様な気が・・・
試してないので何ともいえませんが、ちょっと気になります。


http://centossrv.com/vsftpd.shtml

Re: vsftpdのSSL対応でchrootが効かない可能性(1)
日時: 2009/02/16 19:41
名前: ZED
ちょっと試してみました。
結論としては、危険かもですね〜

/sbin/nologinで作成しているユーザは問題ありませんが、ユーザーにシェルを開放している/bin/shなどのユーザーに対しては、接続方法をSFTPで設定してやると、rootから丸見えとい状況になります。(^^;)

うちは、シェルを解放していないから実害はないのですが・・・
OpenSSH+Chroot必須かもしれませんね〜

Re: vsftpdのSSL対応でchrootが効かない可能性(2)
日時: 2009/02/17 16:34
名前: 管理人
ZED様

ご指摘ありがとうございます。vsftpd側の問題というより、FileZillaがSFTP接続にも対応しており、SFTPで接続するとFTPサーバーのchroot機能が働かない=ログインユーザー自身のホームディレクトリ以外も参照できてしまうため、SSHサーバーのchroot設定は必須ですね。
http://centossrv.com/vsftpd.shtml に上記について注意書きを追記しておきました。

Re: vsftpdのSSL対応でchrootが効かない可能性(3)
日時: 2009/02/17 19:46
名前: stranger
URL: http://ja.528p.com/
opensshはopenssh独自のsftp-serverを使っているのでvsftpdもproftpdも使いませんね

最新のopensshのchrootはchrootディレクトリがrootの所有であることを要求するので
既存のユーザの場合、手を加えないといけない

opensshを公開鍵認証のみして 必要なユーザ(管理者権限をもつ)以外に公開鍵を渡さないようにする
putty-agentを利用すると filezillaでも公開鍵認証ができるので 公開鍵には必ずパスフレーズをつける

など

Re: vsftpdのSSL対応でchrootが効かない可能性(4)
日時: 2009/02/17 22:59
名前: 管理人
>opensshはopenssh独自のsftp-serverを使っているのでvsftpdもproftpdも使いませんね
そのとおりです。FileZilla利用者がSFTP接続しなければvsftpdのchroot機能だけで問題ないですが、絶対にFileZillaでSFTP接続を行わないとはいえないので、サーバーサイドとしてはFTP、SFTP両方ともchroot対応すべきですね。

>最新のopensshのchrootはchrootディレクトリがrootの所有であることを要求するので
>既存のユーザの場合、手を加えないといけない
こちらはFedoraで確認をとりました。http://fedorasrv.com/openssh.shtml
vsftpdとOpenSSHのchroot設定で、WinSCPによるSFTP接続・SCP接続、FileZillaによるFTPoverSSL接続・SFTP接続ともにchroot化されることを確認済です。
CentOSのOpenSSHはまだバージョンが古くchroot未対応のため、chrootパッチが必要ですが、パッチが公開されているサイトが閉鎖?してパッチの入手が不可になってしまっているので(さがせばオフィシャル物かどうかはおいといて、あるにはありますが・・・)、対策を検討中です。

>opensshを公開鍵認証のみして 必要なユーザ(管理者権限をもつ)以外に公開鍵を渡さないようにする
>putty-agentを利用すると filezillaでも公開鍵認証ができるので 公開鍵には必ずパスフレーズをつける
こちらは認証フェーズでの話しなので、chrootとは別の話ですね。

Re: vsftpdのSSL対応でchrootが効かない可能性(5)
日時: 2009/02/18 08:05
名前: stranger
URL: http://ja.528p.com/
>>opensshを公開鍵認証のみして 必要なユーザ(管理者権限をもつ)以外に公開鍵を渡さないようにする
>>putty-agentを利用すると filezillaでも公開鍵認証ができるので 公開鍵には必ずパスフレーズをつける
>こちらは認証フェーズでの話しなので、chrootとは別の話ですね。

書き方が悪かったようで
公開鍵認証のみにすればパスワード認証できないので、公開鍵をもたないユーザはsftp接続できない
root権限が必要なユーザのみ公開鍵認証を許可しておけば、opensshでchrootしなくても良い



Re: vsftpdのSSL対応でchrootが効かない可能性(6)
日時: 2009/02/18 09:03
名前: ZED
strangerさん

その通りです。
パスワード認証可にしてると、/bin/shのアカウントでSFTPに接続するとrootまで見えちゃうんですよね〜
まぁ、普通にSSH接続しても見えるんですけどね・・・
もちろん、公開鍵等のみ接続の場合見えません。

結果、コンソールに接続できる権限を持たせない方針となっていくのですが、
問題なのは、もし善意で他人に貸し出してるかも・・・と思ったんです。

また、sshのコンソール転送を使ってる場合も考えられる。。
うちなんかは、gatewayサーバーからローカルの各サーバーや、外部の鯖へはssh転送で制御してます。。本来公開鍵転送使わなきゃならないんですがね・・・


この際、OpenSSHのchroot化必須で行った方が良い気がします。
あれ!?CENTOS5.3で対応するんでしたっけ??
あ!でも結婚するとかで検証遅れてるみたいですよね・・・(汗)

Re: vsftpdのSSL対応でchrootが効かない可能性(7)
日時: 2009/02/18 09:21
名前: 管理人
stranger様

>書き方が悪かったようで
>公開鍵認証のみにすればパスワード認証できないので、公開鍵をもたないユーザはsftp接続できない
>root権限が必要なユーザのみ公開鍵認証を許可しておけば、opensshでchrootしなくても良い
SSHサーバーを公開鍵認証のみ許可するように設定しておき、chrootしたくないユーザー=管理者のみ公開鍵認証できるようにし、chrootしたいユーザー=一般ユーザーのみ公開鍵認証できないようにしておけば、一般ユーザーがSFTP接続できなくなりますね。ただ、そうすると一般ユーザーはSSH接続できなくなってしまいますね。サーバーの運営方針にもよりますが、SSH接続もFTP接続も一般ユーザーへ提供しつつ、両方ともchrootしたい場合、上記では対処にならないかと。

ZED様
>パスワード認証可にしてると、/bin/shのアカウントでSFTPに接続するとrootまで見えちゃうんですよね〜公開鍵等のみ接続の場合見えません。
SSHサーバーをchroot設定しておかないと、公開鍵認証で接続しても/(ルート)は見えてしまいますよね?違うことを言われてますか?

>この際、OpenSSHのchroot化必須で行った方が良い気がします。
一応、当サイトでは、他人にSSHサービスを開放する場合はchroot化を推奨しています。

>CENTOS5.3で対応するんでしたっけ??あ!でも結婚するとかで検証遅れてるみたいですよね・・・(汗)
なんですか?結婚で検証が遅れてるって??

Re: vsftpdのSSL対応でchrootが効かない可能性(8)
日時: 2009/02/18 10:06
名前: ZED
>>パスワード認証可にしてると、/bin/shのアカウントでSFTPに接続するとrootまで見えちゃうんですよね〜公開鍵等のみ接続の場合見えません。
>SSHサーバーをchroot設定しておかないと、公開鍵認証で接続しても/(ルート)は見えてしまいますよね?違うことを言われてますか?

そうです。
SSHは、
SSHパスワード認証 root見える
SSH公開鍵認証 root見える

SFTPの場合、
SSHパスワード認証 root見える
SSH公開鍵認証 接続できない。
ただし、FileZillaで[編集]−[設定]−[SFTP]でキーを指定しちゃえば・・・

書き方がまずかったですね〜すいません。


>>CENTOS5.3で対応するんでしたっけ??あ!でも結婚するとかで検証遅れてるみたいですよね・・・(汗)
>なんですか?結婚で検証が遅れてるって??
>
リリースは3月初頭みたいですね〜
http://d.hatena.ne.jp/laclefdor/20090217/1234842385
http://twitter.com/CentOS

Re: vsftpdのSSL対応でchrootが効かない可能性(9)
日時: 2009/02/18 10:13
名前: 管理人
>>SSHサーバーをchroot設定しておかないと、公開鍵認証で接続しても/(ルート)は見えてしまいますよね?違うことを言われてますか?
>
>そうです。
>SSHは、
>SSHパスワード認証 root見える
>SSH公開鍵認証 root見える
>
>SFTPの場合、
>SSHパスワード認証 root見える
>SSH公開鍵認証 接続できない。
>ただし、FileZillaで[編集]−[設定]−[SFTP]でキーを指定しちゃえば・・・
>
>書き方がまずかったですね〜すいません。
了解しました。「見えない」ではなく、「接続できない」ですね。

>>>CENTOS5.3で対応するんでしたっけ??あ!でも結婚するとかで検証遅れてるみたいですよね・・・(汗)
>>なんですか?結婚で検証が遅れてるって??
>>
>リリースは3月初頭みたいですね〜
>http://d.hatena.ne.jp/laclefdor/20090217/1234842385
>http://twitter.com/CentOS
CentOS大丈夫なんでしょうかね?日本では基幹系システムにまで採用されているのに、FedoraLegacyhttp://ja.wikipedia.org/wiki/Fedora_Legacyのようなことにならなければいいんですが・・・。

Re: vsftpdのSSL対応でchrootが効かない可能性(10)
日時: 2009/02/18 11:13
名前: stranger
URL: http://ja.528p.com/
>>SSH公開鍵認証 接続できない。
>>ただし、FileZillaで[編集]−[設定]−[SFTP]でキーを指定しちゃえば・・・
いまのところ対応していない?
putty-agentをlinuxのssh-agentと同じように使うとSFTPの公開鍵認証ができる

新しいスレッドでopenssh-5.1p1.tar.gzからrpmを作成までの概要をのせます
参考になればと思います

Re: vsftpdのSSL対応でchrootが効かない可能性(11)
日時: 2009/02/18 13:44
名前: ZED
stranger様

すばらしい!スピードですね。


管理人様

コンテンツUPご苦労様でした!




と言うことで・・・ちょっと違う方向を示してみようかな・・・
[root@localhost ~]# rpm -q openssh
openssh-5.1p1-3.el5
うちは、こんな感じになっています。
全てYUMで入れてるので初心者でも簡単かもしれません。
特に今のところ不具合なさそうなので、やり方だけ示しておきますね。


telnetまでの変更はコンテンツ通り・・・
http://centossrv.com/openssh.shtml

■サーバーへTelnet接続
■SSHサーバーアンインストール
までは一緒です。

接続したら・・・
cd /etc/yum.repos.d/
wget http://rpm.cormander.com/repo/rouge-beret.repo

vi /etc/yum.repos.d/rouge-beret.repo

[rouge-beret-testing]
enabled=0 → 1
保存

yum install -y openssh openssh-server openssh-clients libedit

vi /etc/yum.repos.d/rouge-beret.repo

[rouge-beret-testing]
enabled=1 → 0
保存

コンテンツの
■SSHサーバー起動(2)SSHサーバー起動
に戻ります。

結構簡単だと思いますよ〜
でも、未検証なので・・・誰か人柱でやってみてくださいね!(汗)

Re: vsftpdのSSL対応でchrootが効かない可能性(12)
日時: 2009/02/18 14:18
名前: 管理人
>新しいスレッドでopenssh-5.1p1.tar.gzからrpmを作成までの概要をのせます
>参考になればと思います
お!?いつのまに。http://centossrv.com/bbshtml/webpatio/1130.shtml
同じタイミングで同じことをやってたんですね。

>wget http://rpm.cormander.com/repo/rouge-beret.repo
Rouge Beretですか、初めて知りました。サーバー運営方針上、yumのリポジトリに標準やrpmforge以外を追加してもよければ、Rouge Beretを使用してインストールするのが一番手っ取り早いですね。

Re: vsftpdのSSL対応でchrootが効かない可能性(13)
日時: 2009/02/18 21:28
名前: ZED
>>wget http://rpm.cormander.com/repo/rouge-beret.repo
>Rouge Beretですか、初めて知りました。サーバー運営方針上、yumのリポジトリに標準やrpmforge以外を追加してもよければ、Rouge Beretを使用してインストールするのが一番手っ取り早いですね。

そうですね〜。安定化を考えると標準パッケージと当然なるんですけどね。
でもコンパイルしてる時点で微妙な気もしますしね〜。
RPMで運用は手間が減るのが賛成なだけですけど、サイト方針であれば仕方ありませんね!



あ!ちなみに、>>11 検証完了しました。特に問題無いみたいです。

-bash-3.2$ ls
bin dev etc lib public_html usr
-bash-3.2$ rm -rf bin
rm: cannot remove `bin/ls': Permission denied
rm: cannot remove `bin/ping': Permission denied
rm: cannot remove `bin/pwd': Permission denied
rm: cannot remove `bin/mv': Permission denied
rm: cannot remove `bin/cat': Permission denied
rm: cannot remove `bin/rm': Permission denied
rm: cannot remove `bin/mkdir': Permission denied
rm: cannot remove `bin/chmod': Permission denied
rm: cannot remove `bin/bash': Permission denied
rm: cannot remove `bin/touch': Permission denied
rm: cannot remove `bin/vi': Permission denied
rm: cannot remove `bin/cp': Permission denied
-bash-3.2$ ls -al
total 64
drwxr-xr-x 8 root root 4096 Feb 18 09:15 .
drwxr-xr-x 8 root root 4096 Feb 18 09:15 ..
drwxr-xr-x 2 root root 4096 Feb 18 09:15 bin
drwxr-xr-x 2 root root 4096 Feb 18 09:15 dev
drwxr-xr-x 2 root root 4096 Feb 18 09:15 etc
drwxr-xr-x 2 root root 4096 Feb 18 09:15 lib
drwxr-xr-x 2 centosuser centosuser 4096 Feb 18 09:14 public_html
drwxr-xr-x 6 root root 4096 Feb 18 09:15 usr
-bash-3.2$ pwd
/

ただ、cdと入れると、-bash: cd: /home/centosuser/./: No such file or directoryと怒られるので、
考え中・・・・
userdel -r centosuserとしてもやっぱり怒られるでしょうね・・・

Re: vsftpdのSSL対応でchrootが効かない可能性(14)
日時: 2009/02/18 23:24
名前: 管理人
>ただ、cdと入れると、-bash: cd: /home/centosuser/./: No such file or directoryと怒られるので、
usermod -d / ユーザー名 とすればOKですね。

>userdel -r centosuserとしてもやっぱり怒られるでしょうね・・・
こちらは仕方ないですね。
ちなみに上記usermodを実行後に試しにuserdel -rをやってみました。
当然、/を削除しにいきましたが、所有者が異なるとのことで/は削除されませんでしたが・・・、一瞬真っ青になりました(^^;)

Re: vsftpdのSSL対応でchrootが効かない可能性(15)
日時: 2009/02/19 08:18
名前: ZED
>ちなみに上記usermodを実行後に試しにuserdel -rをやってみました。
>当然、/を削除しにいきましたが、所有者が異なるとのことで/は削除されませんでしたが・・・、一瞬真っ青になりました(^^;)

あらら、冷静に考えたらそうなんですよね〜
あわてて消したんですが・・・実害が無くて良かったです。
結論としては、chrootユーザー削除スクリプトを作るしかないみたいです。

Re: vsftpdのSSL対応でchrootが効かない可能性(16)
日時: 2009/02/19 14:18
名前: 管理人
>あらら、冷静に考えたらそうなんですよね〜
>あわてて消したんですが・・・実害が無くて良かったです。
>結論としては、chrootユーザー削除スクリプトを作るしかないみたいです。
そうですね、それか、ユーザー削除はどうせ管理者しか行なわないので、

userdel ユーザー名
rm -r /home/ユーザー名

という手順で管理者がユーザーを削除するように意識しておけばいいですね。

Re: vsftpdのSSL対応でchrootが効かない可能性(17)
日時: 2009/02/19 16:01
名前: 管理人
>>ただ、cdと入れると、-bash: cd: /home/centosuser/./: No such file or directoryと怒られるので、
>usermod -d / ユーザー名 とすればOKですね。
ダメですね。これをすると、FTP接続で本物の/が見えちゃいますね。SSHとSFTPはOKですけど。
ってことで、chroot接続時にホームに戻る場合はcdではなく、「cd /」ですね。

Re: vsftpdのSSL対応でchrootが効かない可能性(18)
日時: 2009/02/19 19:04
名前: stranger
URL: http://ja.528p.com/
>>>ただ、cdと入れると、-bash: cd: /home/centosuser/./: No such file or directoryと怒られるので、
>>usermod -d / ユーザー名 とすればOKですね。
>ダメですね。これをすると、FTP接続で本物の/が見えちゃいますね。SSHとSFTPはOKですけど。
>ってことで、chroot接続時にホームに戻る場合はcdではなく、「cd /」ですね。

私のサイトでもopenssh-5.1p1でchrootとログインを兼ねるサンプルを公開しています
暇がありましたら見てください
http://ja.528p.com/linux/centos/SE006-chroot-login.html

※古いスレッドには返信できない場合があります


■関連コンテンツ




▲このページのトップへ戻る

プライバシーポリシー
centossrv.com