chroot 대신 lxc를 사용하는 이유는 무엇입니까?


10

하나의 우분투 서버는 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 컨테이너 변경은 앱 개발자에게 투명합니까?


2
chroot프로세스의 루트 디렉토리 만 변경하면됩니다. 그것은 격리 또는 다른 것을 제공하지 않습니다.
Zoredache

답변:


14

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 (그래픽) 인터페이스가 없습니다.

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


1
LXC 내부에서 어떤 커널이 사용됩니까? (
Francesco

4
많은 장점과 단점은 LXC를 전체 가상화와 비교하는데 이는 질문과 관련이 없으며 오해의 소지가 있습니다.
Roger Dueck

@Francesco는 LXC (일반적으로 Linux 컨테이너)와 함께 하나의 커널 (호스트 커널) 만 있습니다. 가상 머신에서 실행되는 Linux 커널을 사용하기 때문에 MacOS 또는 Windows에서 실행되는 Docker와 같은 일부 예외가 있습니다. 그러나이 플랫폼의 모든 Linux 컨테이너는 여전히 동일한 커널을 사용하고 있습니다.
분노
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.