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コンテナーへの変更はアプリ開発者に透過的ですか?
Linuxコンテナー(LXC)は、単一の制御ホスト上で複数の分離サーバーインストール(コンテナー)を実行するためのオペレーティングシステムレベルの仮想化方法です。 LXCは仮想マシンを提供しませんが、独自のプロセスとネットワークスペースを持つ仮想環境を提供します。これはchrootに似ていますが、より多くの分離を提供します。
Linuxコンテナーにはいくつかの機能/利点があります。
利点:
Chroot(chroot jail)と比較して、より良い分離。低オーバーヘッド。 LXCは、RAMおよびハードドライブ領域の点で最小限のリソースを使用し、ゲストOSを仮想マシンにインストールするオーバーヘッドがありません(VMWare/VirtualBox/KVM))。
アプリケーションとサービス(サーバー)はネイティブの速度で実行されます。
LibvirtではLinuxコンテナーがサポートされています。
Linuxコンテナはbtrfsでうまく機能します。
しかし、マイナス面もあります。
Linuxコンテナは、Linuxカーネル上でLinuxプロセスを実行します。つまり、Linux(Ubuntuホスト上のFedoraコンテナー)は実行できますが、他のオペレーティングシステム(BSD/OSX/Windows以外)は実行できません。
コンテナーを構成または管理するためのGUI(グラフィカル)インターフェースはありません。
コンテナをインストールして構成する方法に関するドキュメントは不足しています。コンテナーの構成には、適度な技術知識とスキル(および大きな忍耐力)が必要です。