샌드 박스 환경으로서의 LXC 컨테이너


9

현재 안전한 샌드 박스 환경에서 신뢰할 수없는 프로그램 (학생 과제)을 평가하는 프로젝트를 시작하고 있습니다. 주요 아이디어는 LXC 컨테이너를 관리하기 위해 lxc-utils 주위에 GlassFish 및 Java 래퍼 용 ​​웹 앱을 만드는 것입니다. 대기중인 프로그램 대기열이 있으며 Java 래퍼는 고정 된 수의 LXC 컨테이너를 유지하여 각 프로그램에 하나의 (사용하지 않은) 컨테이너를 할당합니다.

호스트 시스템을 보호하려면 SELinux로 각 컨테이너를 보호해야합니다.

내 질문은 : 샌드 박스 환경에 이러한 메커니즘을 만드는 것이 좋은 아이디어입니까, 아니면이 문제에 더 적합한 솔루션이 있습니까? 가벼우면서도 학생의 창의력에 대비해야합니다.

답변:


6

가장 안전한 가상화 솔루션이 아닌 LXC를 선택하는 이유를 작성하지 않았습니다. 나는 KVM / XEN과 LXC를 많이 사용하고 있으며 보안에 관해서는 LXC / OpenVZ / VServer와 상관없이 Linux 컨테이너와 함께 가지 않는다고 말할 수 있습니다. KVM / XEN을 사용하면 훨씬 쉽고 안정적입니다.

성능이나 하드웨어 요구 사항에 관한 것이라면 괜찮습니다. LXC로 시도해 볼 수 있지만 몇 가지 규칙을 따라야합니다.

  • libvirt는 SELinux를 사용할 때 컨테이너의 엄격한 제한을 보장합니다 (LXC_driver 덕분에)-RHEL / Centos / Fedora 경우에만 해당되지는 않지만 (Ubuntu / Debian을 많이 사용하지는 않습니다) https://www.redhat.com/archives /libvir-list/2012-January/msg01006.html-SELinux를 사용 하는 것은 좋은 생각입니다 (제 생각에는 그러한 상황에서는 "필수"임)
  • 손님이 호스트를 정지 시키거나 다른 컨테이너에 영향을 미치지 않도록 엄격한 cgroups 규칙 설정
  • 차라리 LVM 기반 컨테이너를 사용하고 싶습니다. 항상 "보안"계층이 하나 더 있습니다.
  • 네트워크 솔루션 및 아키텍처에 대해 생각해보십시오. 해당 컨테이너가 서로 통신해야합니까?

이것을 읽는 것으로 시작하십시오 -꽤 오래되었지만 여전히 많은 지식이 있습니다. 또한- 사용자 네임 스페이스를 충족

그리고 다시 한 번 생각하면-LXC 보안과 함께 할 시간이 정말 많습니까? KVM은 훨씬 간단합니다 ...


우선, 답변 주셔서 감사합니다. 가벼운 것이 필요하기 때문에 LXC를 선택하면 KVM 내부에서 실행됩니다. KVM 내부에서 KVM을 실행할 수 있습니까?
eXPi

1

신뢰할 수없는 프로그램을 실행하는 경우 Linux 네임 스페이스가 여전히 최상의 솔루션입니다. KVM보다 설정하기가 더 쉽고 적은 리소스가 필요합니다. LXC를 사용해 볼 수 있지만 LXC는 전체 Linux 배포 이미지를 실행하기위한보다 일반적인 샌드 박스로 구축되었습니다. 두 개의 다른 Linux 네임 스페이스 샌드 박스가 떠 오릅니다.

  • 현재 Chrome / Chromium과 함께 배포되는 Chrome 샌드 박스
  • Firejail 은 Mozilla Firerfox 및 기타 GUI 프로그램을 실행하기 위해 제작 된 보안 샌드 박스입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.