web-dev-qa-db-ja.com

UNIXでftpサーバーユーザーを分離するための安全な方法は何ですか?

ユーザーに書き込みアクセスを許可するときにftpサーバーにchroot環境を使用することのセキュリティへの影響について、さまざまなftpデーモンとさまざまな長いスレッドのドキュメントを読みました。特にvsftpdのドキュメントを読むと、chroot_local_userを使用することはセキュリティ上の問題であり、使用しないことはセキュリティ上の問題ではないことを意味します。ユーザーがファイルシステム全体にアクセスできるようにすることの意味(ユーザーとグループのメンバーシップで許可されている)や、これによって生じる可能性のある混乱については説明されていないようです。

それで、私は実際に使用する正しい方法が何であるかを理解したいと思います。認証された書き込みアクセスユーザーを持つftpサーバーは、非chroot環境、chroot環境、またはその他のオプションを提供する必要がありますか? Windows ftpデーモンにはchrootを使用するオプションがないため、それ以外の場合は分離を実装する必要があります。 UNIX ftpデーモンは同様のことをしますか?

5
djs

使用する正しい方法は、使用するソフトウェアによって異なります。

すべてのユーザーを知っているなら、chrootを使用することは大したことではないと思います。あなたが信頼できるのであれば、あなたが信頼できない人々にアカウントを与えているなら、あなたはそうしたくないかもしれません。

Pureftpdとその「chroot」オプションも確認することをお勧めします。

「-a」フラグとは別に、Pure-FTPdにはchroot()ルールを微調整する別の方法があります。/etc/passwdエントリを取得しましょう。

mimi:x:501:100:Mimi:/ home/mimi:/ bin/zsh

特別なルールがなくても、mimiはログインして、ファイルシステム内の一般に読み取り可能なファイルを取得できます。それでは、ホームディレクトリを少し変更しましょう。

mimi:x:501:100:Mimi:/ home/mimi /./:/ bin/zsh

だから何? Mimiのホームディレクトリは同じであり、一般的なアプリケーションは違いに気付かないはずです。しかし、Pure-FTPdは「/./までchroot()」を理解します。したがって、mimiが次にFTPログインを実行すると、ファイルシステム全体ではなく、/ home/mimiディレクトリのみに到達できます。 「-a」とその信頼できるgidが気に入らない場合、これは一部のユーザーのみをchroot()するための良い方法です。

http://download.pureftpd.org/pub/pure-ftpd/doc/README

もちろん、セキュリティの問題について調査してください。誰にもWordを使わないでください。

分離を実現するためにchrootを使用する必要はありません。それはユーザーにとって見栄えが良く、無知な人はサーバー上に他のファイルがないと考えるでしょう。また、ファイルのアクセス許可を使用して、ユーザーが詮索するのを防ぐこともできます。 VMでftpデーモンを実行して、リスクをさらに減らすこともできます。

1
d-_-b