systemd-nspawn이 여전히 "보안 컨테이너 설정에 부적합"한 이유는 무엇입니까?

systemd-nspawn이 여전히 "보안 컨테이너 설정에 부적합"한 이유는 무엇입니까?

이것은 매뉴얼 페이지에 설명되어 있습니다systemd-nspawn

이러한 보안 예방 조치에도 불구하고 systemd-nspawn은 보안 컨테이너 설정에 적합하지 않습니다. 많은 보안 기능은 우회될 수 있으므로 주로 컨테이너가 호스트 시스템을 의도하지 않게 변경하는 것을 방지하는 데 사용됩니다. 이 프로그램의 용도는 시작 및 시스템 관리와 ​​관련된 패키지, 배포판 및 소프트웨어를 디버깅하고 테스트하고 구축하는 것입니다.

그때 이런 질문이 나왔다2011년 메일링 리스트에, 그러나 답변이 오래된 것 같습니다.

systemd-nspawn에는 CLONE_NEWNET이제 이 옵션으로 실행되는 코드가 포함되어 있습니다. --private-network이는 개인 네임스페이스 문제를 다루는 것으로 보이며 및 문제가 언급된 AF_UNIX것 같습니다 .CAP_NET_RAWCAP_NET_BIND

어떤 문제가 여전히 존재합니까? 예를 들어, LXC가 지금 할 수 있는 일 외에 또 무엇을 할 수 있나요 systemd-nspawn?

답변1

LXC는 컨테이너를 실행할 수 있기 때문에 더 좋습니다.권한이 없는 사용자로서. 이는 systemd-nspawn을 사용하여 달성할 수 있지만(여러 사용자가 아닌) 한 명의 사용자만 필요한 시나리오에만 해당됩니다. 이는 컨테이너 시나리오의 다중 프로세스에 대해 어렵거나 덜 안전할 수 있습니다. docker, lxc 및 systemd-nspawn이 본질적으로 신뢰할 수 있는 보안 메커니즘이 아닌 이유가 궁금하다면 다음을 읽어보세요.https://opensource.com/business/14/7/docker-security-selinux. 기본적으로 컨테이너는 여전히 커널에 액세스할 수 있으며 커널 취약점이 있으면 전체 시스템을 제어할 수 있습니다. 커널 취약점은 Linux와 같은 모놀리식 커널에서 흔히 발생합니다.

관련 정보