なぜchrootの代わりにlxcを使うのですか?


10

1つのubuntuサーバーが3つのアプリをすべて別々のドメインでホストしています。
各アプリには独自の開発者がいます。
アプリ開発者は、linuxの「sftp」グループに属しています。
chroot各アプリ開発者にパスワードsftpアクセスを許可します。

/home/app1/prod
/home/app2/prod
/home/app3/prod

sshd_config

Match Group sftp  
  PasswordAuthentication yes
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

私たちの懸念は、他の2つのアプリで問題を引き起こす1つのアプリのプログラミングの脆弱性です。

chrootの代わりにlxcコンテナーを使用する必要がありますか?どうして?lxcコンテナーへの変更はアプリ開発者に透過的ですか?


2
唯一のことchrootは、プロセスのルートディレクトリを変更することです。それは分離や何も提供しません。
Zoredache 2013年

回答:


14

Linuxコンテナー(LXC)は、単一の制御ホスト上で複数の分離サーバーインストール(コンテナー)を実行するためのオペレーティングシステムレベルの仮想化方法です。LXCは仮想マシンを提供しませんが、独自のプロセスとネットワークスペースを持つ仮想環境を提供します。これはchrootに似ていますが、より多くの分離を提供します。

Linuxコンテナーにはいくつかの機能/利点があります。

利点:

chroot(chroot刑務所)と比較してより良い分離。低オーバーヘッド。LXCは、仮想マシン(VMWare / VirtualBox / KVM)にゲストOSをインストールするオーバーヘッドなしで、RAMとハードドライブ領域の観点から最小限のリソースを使用します。

アプリケーションとサービス(サーバー)はネイティブの速度で実行されます。

libvirtではLinuxコンテナーがサポートされています。

Linuxコンテナはbtrfsでうまく機能します。

しかし、マイナス面もあります。

Linuxコンテナは、Linuxカーネル上でLinuxプロセスを実行します。つまり、Linux(Ubuntuホスト上のFedoraコンテナー)は実行できますが、他のオペレーティングシステム(BSD / OSX / Windows以外)は実行できません。

コンテナーを構成または管理するためのGUI(グラフィカル)インターフェースはありません。

コンテナーのインストールと構成の方法に関するドキュメントは不足しています。コンテナーの構成には、適度な技術知識とスキル(および大規模な忍耐力)が必要です。


1
LXC内でどのカーネルが使用されていますか?(ホストからのものか、ゲストのものか?)
フランチェスコ

4
多くのメリットとデメリットがLXCを完全仮想化と比較しています。これは、尋ねられた質問とは無関係であり、誤解を招く可能性さえあります。
Roger Dueck

@FrancescoとLXC(および一般的なLinuxコンテナ)では、カーネルは1つしかありません-ホストカーネルです。たとえば、MacOSまたはWindowsで実行されているDockerは、仮想マシンで実行されているLinuxカーネルを使用するため、これに対するいくつかの例外があります。ただし、これらのプラットフォーム上のすべてのLinuxコンテナーは同じカーネルを使用しています。
怒り
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.