chroot 대신 lxc를 사용하는 이유는 무엇입니까? 허용합니다. /home/app1/prod /home/app2/prod /home/app3/prod sshd_config에서

하나의 우분투 서버는 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 개의 앱에서 문제가 발생하는 것입니다.

chroot 대신 lxc 컨테이너를 사용해야합니까? 왜? lxc 컨테이너 변경은 앱 개발자에게 투명합니까?



답변

LXC (Linux Containers)는 단일 제어 호스트에서 여러 개의 격리 된 서버 설치 (컨테이너)를 실행하기위한 운영 체제 수준 가상화 방법입니다. LXC는 가상 머신을 제공하지 않고 자체 프로세스 및 네트워크 공간이있는 가상 환경을 제공합니다. chroot와 비슷하지만 훨씬 더 많은 격리를 제공합니다.

Linux 컨테이너에는 몇 가지 기능 / 장점이 있습니다.

장점 :

chroot (chroot jail)에 비해 더 나은 격리. 오버 헤드가 낮습니다. LXC는 가상 시스템 (VMWare / VirtualBox / KVM)에 게스트 OS를 설치하는 오버 헤드없이 RAM 및 하드 드라이브 공간에서 최소한의 리소스를 사용합니다.

응용 프로그램 및 서비스 (서버)는 기본 속도로 실행됩니다.

libvirt에는 Linux 컨테이너가 지원됩니다.

Linux 컨테이너는 btrfs와 잘 작동합니다.

그러나 단점도 있습니다.

Linux 컨테이너는 Linux 커널에서 Linux 프로세스를 실행합니다. 이것은 Linux (Ubuntu 호스트에서 Fedora 컨테이너)를 실행할 수 있지만 다른 운영 체제 (BSD / OSX / Windows 아님)는 실행할 수 없음을 의미합니다.

컨테이너를 구성하거나 관리하기위한 GUI (그래픽) 인터페이스가 없습니다.

컨테이너를 설치하고 구성하는 방법에 대한 문서가 부족합니다. 컨테이너를 구성하려면 적절한 기술 지식과 기술 (그리고 많은 인내심)이 필요합니다.


답변