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


21

이것은 systemd-nspawn 의 맨 페이지에 명시되어 있습니다

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

이 질문은 이후 2011 년 메일 링리스트에서 요청 되었지만 답변이 구식 인 것 같습니다.

systemd-nspawn에는 지금 옵션을 CLONE_NEWNET사용하여 실행할 코드가 포함되어 있습니다 --private-network. 이것은 개인 AF_UNIX네임 스페이스 문제 를 다루는 것으로 보이며 언급 한 CAP_NET_RAWCAP_NET_BIND문제를 추측합니다 .

현재 어떤 문제가 남아 있으며 LXC와 같이 systemd-nspawn현재 수행 할 수있는 작업 외에도 어떤 문제 가 있습니까?


AF_UNIX는 CLONE_NEWNET추상 소켓-별도의 파일 시스템 기반-단위로 반 분리됩니다 (호스트와 컨테이너 사이에 공유 파일 시스템이없는 경우 제외). 이는 Xorg가 추상 및 파일 시스템 UNIX 소켓을 모두 열므로 특정 응용 프로그램에 대해 네트워크를 차단하는 X 응용 프로그램을 시작하는 것이 편리합니다.
Vi.

답변:


12

LXC는 권한이없는 사용자로 컨테이너 실행할 수 있기 때문에 조금 더 좋습니다 . 이는 systemd-nspawn에서 가능하지만 여러 사용자 대신 한 명의 사용자 만 필요한 경우에만 가능하며 컨테이너 시나리오의 다중 프로세스에서는 어렵거나 덜 안전 할 수 있습니다. docker, lxc 및 systemd-nspawn이 본질적으로 견고한 보안 메커니즘이 아닌 이유를 알고 싶다면 https://opensource.com/business/14/7/docker-security-selinux를 읽으십시오 . 기본적으로 컨테이너는 여전히 커널에 액세스 할 수 있으며 모든 커널 악용은 전체 시스템을 제어합니다. Linux와 같은 모 놀리 식 커널에서 커널 악용은 드물지 않습니다.


3
이 답변은 잘못되었습니다. 다른 사용자에게 권한을 삭제 systemd-nspawn 지원 : freedesktop.org/software/systemd/man/systemd-nspawn.html
데이비드 디모데 스트라우스

나는 모든 것이 권한이없는 사용자로 콘솔 / 쉘을 실행하지만 루트로 다른 모든 것을 실행한다고 확신합니다. 당신은 그것을 볼 수 있습니까?
CameronNemo

1
좋아, 나는 나의 마지막 진술을 되 찾는다. 그러나 적절한 하위 UI / 서브 핸들링 처리가 없으며 컨테이너 당 권한이없는 사용자 한 명만 있습니다.
CameronNemo

2
완전한 하위 UI / 서브로드 처리를 지원하는 대신 컨테이너 당 권한이없는 사용자 한 명만 드롭 할 수있는 것은 보안 문제가 아닙니다. 기능 제한입니다.
David Timothy Strauss

그래, 알아 나는 그 차이를 지적하고 있었다.
CameronNemo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.