lxc 컨테이너 보안 경계는 어디에 있습니까?


8

내 질문은 LXC 컨테이너의 보안에 관한 것입니다.

내 상자에서 여러 컨테이너를 실행하고 사용자에게 자신의 컨테이너에 대한 별도의 ssh 액세스 권한을 부여하는 경우 해당 컨테이너가 해당 상자의 다른 컨테이너 또는 호스트 시스템에 해킹 될 수 있습니까?

lxc 컨테이너 보안 경계는 어디에 있습니까?


당신은 그것에 대해 걱정할 필요가 있다는 것을 알고, AppArmor는 그것을 처리 할 것입니다.
rɑːdʒɑ

답변:


8

LXC 에 대해 보았 듯이 컨테이너 정보와 (기본 백업 저장소와 함께) 루트 파일 시스템을 / var / lib / lxc에 저장합니다. 컨테이너 생성 템플릿은 캐시 된 배포 정보를 / var / cache / lxc에 저장하는 경향이 있습니다.

따라서 일반적으로 루트 파일 시스템에 대한 액세스는 작성하는 동안 잘못 사용되거나 잘못된 구성 사용자 프로파일이없는 한 관리자에게만 허용됩니다.

그러나 Ubuntu Developers는 이미이 시점에 왔으며 AppArmor의 도움으로 안전한 솔루션을 제공했습니다.

LXC는 컨테이너 내부의 우발적 인 권한 오용으로부터 호스트를 보호하기위한 Apparmor 프로파일과 함께 제공됩니다. 예를 들어 컨테이너는 /proc/sysrq-trigger대부분의 /sys파일 에 쓰거나 쓸 수 없습니다 .

usr.bin.lxc-start 프로파일은 lxc-start를 실행하여 입력됩니다. 이 프로파일은 주로 lxc-start가 컨테이너의 루트 파일 시스템 외부에 새로운 파일 시스템을 마운트하지 못하게합니다. 컨테이너의 초기화를 실행하기 전에 LXC는 컨테이너의 프로파일로 전환을 요청합니다. 기본적으로이 프로필은에 정의 된 lxc-container-default 정책입니다 /etc/apparmor.d/lxc/lxc-default. 이 프로파일은 컨테이너가 많은 위험한 경로에 액세스하고 대부분의 파일 시스템을 마운트하지 못하게합니다.

Apparmor 정책에 의해 거부 된 합법적 인 액세스로 인해 lxc-start가 실패하는 경우 다음을 수행하여 lxc-start 프로파일을 비활성화 할 수 있습니다.

sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start
sudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disabled/

이것은 lxc-start를 제한없이 실행하지만 컨테이너 자체를 계속 제한합니다. 컨테이너 제한을 사용하지 않으려면 usr.bin.lxc-start프로파일 을 비활성화하는 것 외에도 다음을 추가 해야합니다.

lxc.aa_profile = unconfined

컨테이너의 구성 파일에. 사용자 정의 프로파일에서 컨테이너를 실행하려면 아래에서 새 프로파일을 작성할 수 있습니다 /etc/apparmor.d/lxc/. lxc-start가 해당 프로파일로 전환 될 수 있으려면 이름이 lxc-로 시작해야합니다. 정책을 만든 후 다음을 사용하여로드하십시오.

sudo apparmor_parser -r /etc/apparmor.d/lxc-containers

파일이 파일을 제공하므로 재부팅 후 프로파일이 자동으로로드됩니다 /etc/apparmor.d/lxc-containers. 마지막으로 컨테이너 CN이이 new를 사용 lxc-CN-profile하도록하려면 구성 파일에 다음 줄을 추가하십시오.

lxc.aa_profile = lxc-CN-profile

lxc-execute Apparmor 프로파일에 들어 가지 않지만, 생성되는 컨테이너는 제한됩니다.


답변 주셔서 감사합니다. AppArmor를 사용하면 안전하다고 말하는가?
iCode

@iCode, 예 appArmor는 Ubuntu 응용 프로그램을 보호하도록 설계되었으며 LXC는 AppArmor를 사용하는 경우 보안 측면에서 큰 지원을 받고 있습니다.
rɑːdʒɑ

예를 들어 AppArmor는 dmesg모든 컨테이너에서 (적어도 기본 구성에서는) 호출 할 수있는 것으로 나타났습니다 . 그것이 유일한 보안 위험은 아닙니다 ....
Daniel Alder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.