web-dev-qa-db-ja.com

chrootを使用するのはいつ適切/賢明ですか?

BINDを常にchrootする必要があると聞いています。けっこうだ。しかし、他のプログラムはどうですか?どのプログラムを投獄すべきかを決定するための「ルール」(個人的または広く受け入れられている/確立されている)は何ですか?

-M

9
Mike B

一般に、いくつかの理由でchrootを使用することをお勧めします。

  • openVZまたは仮想マシンを使用せずに、別の配布/アーキテクチャ/配布バージョンが必要です。たとえば、chrootを使用して、AMD64マシン上にi386とAMD64の両方のコンパイル環境を設定します。
  • システムへのアクセスをユーザーに制限します。たとえば、chrootをscponlyと一緒に使用して、ユーザーがアクセスできるコマンドを制限できます。たとえば、まだネットワークにアクセスできるため、これは非常に限定された投獄システムです。
  • システムへのアクセスをプログラムに制限する。一般に、bindやApacheなどのデーモンに対してこれを実行することをお勧めします。このように、これらのプログラムはシステムに直接アクセスできないため、攻撃者がプログラムのセキュリティ違反を使用した場合、システムに直接アクセスするのではなく、chroot内にいることになります。これはセキュリティの強化に役立ちますが、システムが安全であることを保証するものではありません。
5
ℝaphink

答えが「セキュリティ上の理由」ではない場合。 chrootの悪用 を参照してください。

Chrootがセキュリティツールとして頻繁に使用されることが示唆されたとき、Adrian Bunkは、「セキュリティソリューションを実装する無能な人々は本当の問題です」と反論しました。アラン氏は、「chrootはセキュリティツールではなく、かつてない。人々はchrootのプロパティに基づいて構築したが、拡張した(BSD jail、Linux vserver)が、まったく異なる」と付け加えた。

12
toppledwagon

システムにインストールされているものとは異なるライブラリのセット/バージョンを必要とするプログラムがある場合、それは「chrootされた」インストールの良い候補になります。

chrootは、VMまたはエミュレーター( RedHatでのDebianchrootのセットアップ )を使用せずに、独自の環境内に異なるバージョンのLinuxディストリビューションをインストールする場合にも便利です。

6