どのように誰かに安全にシェルを与えることができますか?

どのように誰かに安全にシェルを与えることができますか?

誰かにシェルアカウントを提供することについて質問があります。どのくらい安全ですか?彼は/ etcを読むことができます。ユーザーを特定のゴミ箱と自宅に限定するセキュリティシェルアカウントをどのように提供できますか? chroot刑務所は唯一の方法ですか?

答え1

ユーザーが実行できる操作を制御する最も簡単で効果的な方法の1つは次のとおりです。シェル

lshellはPythonで書かれたシェルで、ユーザーエクスペリエンスを制限されたコマンドセットに制限し、SSHを介したすべてのコマンド(SCP、SFTP、rsyncなど)を有効/無効にすることを選択し、ユーザーコマンドを記録して実行できます。 。タイミング制限など。

答え2

誰かにシェルアカウントを提供すると、その人は誰でも読むことができるすべてのファイルを見ることができます。これには、ユーザー名は含まれていますがパスワードは含まれていないなど、/etcシステムの操作に必要な多くのファイルが含まれています。/etc/passwd

ユーザーが chroot 内にのみログインできるようにすると、chroot 外のファイルは表示されません。これは、chrootに十分なプログラム、ライブラリなどを配置する必要があることを意味します。つまり、ユーザーがアクセスする必要があるすべてのものと各依存項目が含まれます。

chrootは直接ファイルアクセスのみを保護します。ユーザーは、すべてのユーザーが実行するプロセスの名前とパラメーターを含む、あらゆる種類の項目をスヌープできます(SELinuxなどの追加の保護を設定しない限り)。ユーザーが多くの操作を実行する必要がない場合は、制限されたシェルを使用してより厳しい制限を設定できますが、ユーザーが独自の実行可能ファイルを作成するのを防ぐこともできますが、制限されたシェル権限を設定するのは難しいので推奨しませんではありません。

今日の仮想マシンの価格は非常に安いです。選択できる無料の実装がたくさんあります(ユーザーモードLinux、VirtualBox、VMware、KVM、OpenVZ、VServerなど)、追加のシステムインストールはディスクスペースをほとんど使用しません(とにかくchrootが必要です)。仮想マシンは、ファイル、プロセス、ネットワークなど、ほぼすべてを分離します。非常に珍しい制約がない限り、この方法を使用してください。

答え3

1つのオプションは、制限されたシェルセッションに入れることです。rbash[bash-r]。

正確に何を達成したいのかはわかりませんが、一見すると、「その他」のPOSIX ACLだけでなく、アカウントが属するグループ(「ユーザー」など)のすべてのグループACLにも適用されます。 。

答え4

/etc権限のないユーザーでもこの部分を読む必要があることに注意してください。そのうちのいくつかを/etc読むことはできませんが、実際には読むことができればもっと大きな問題があるので、少なくともディストリビューションの権限の確認/修正を実行する必要があります。

刑務所は厳格な制限を設定する最も簡単な方法です。 SElinuxを設定し、ユーザーが非常に制限されたセキュリティコンテキストを持つように調整するなど、他のアプローチがあります。

関連情報