Systemd-nspawn'ı hala “güvenli konteyner kurulumları için uygun olmayan” yapan nedir?


21

Bu systemd-nspawn kılavuz sayfasında belirtilmiştir.

Bu güvenlik önlemlerinin alınmasına rağmen, güvenli bir kurulum için uygun değildir. Güvenlik özelliklerinin birçoğu atlanabilir ve bu nedenle, ana sistemde kaptan yanlışlıkla yapılan değişiklikleri önlemek için öncelikle yararlıdır. Bu programın kullanım amacı, hata ayıklama ve test işlemlerinin yanı sıra önyükleme ve sistem yönetimi ile ilgili paketlerin, dağıtımların ve yazılımların oluşturulmasıdır.

Bu soruyu daha sonra 2011'de posta listesinde soruldu , ancak cevap modası geçmiş gibi görünüyor.

systemd-nspawn, şimdi seçeneği CLONE_NEWNETkullanarak yürütülecek kodu içerir --private-network. Bu, özel AF_UNIXad alanı sorununu ele alıyor gibi görünüyor CAP_NET_RAWve CAP_NET_BINDbahsettiğim ve sorunları da tahmin ediyorum .

Bu noktada hangi sorunlar devam etmektedir ve örneğin LXC systemd-nspawnşu anda neler yapabildiğine ek olarak neler yapmaktadır?


AF_UNIX şunlarla yarı yalıtılmış hale gelir CLONE_NEWNET: soyut yuvalar - ayrı, filesytem tabanlı - birleşik (ana bilgisayar ve kapsayıcı arasında paylaşılan dosya sistemi yoksa). Bu, belirli bir uygulama için ağı engelleyen X uygulamalarının başlatılmasını kolaylaştırır (Xorg hem özet hem de dosya sistemi UNIX soketini açar).
Vi.

Yanıtlar:


12

LXC biraz daha iyidir, çünkü kapları ayrıcalıklı olmayan kullanıcılar olarak çalıştırabilir . Bu, system-nspawn ile mümkündür, ancak yalnızca kapsayıcı senaryolarda çoklu işlem için zor veya daha az güvenli olabilen yalnızca bir kullanıcıya (birden çok yerine) ihtiyaç duyduğunuz durumlarda kullanılabilir. Docker, lxc ve systemd-nspawn'un neden sağlam bir güvenlik mekanizması olmadığını bilmek istiyorsanız, şunu okuyun: https://opensource.com/business/14/7/docker-security-selinux . Temel olarak, konteynırlar hala çekirdeğe erişime sahiptir ve herhangi bir çekirdek kullanımı, tüm makinenin kontrolünü kazanır. Linux gibi yekpare bir çekirdekte, çekirdek istismarları nadir değildir.


3
Bu cevap yanlış. systemd-nspawn, farklı bir kullanıcıya ayrıcalıkların bırakılmasını destekliyor: freedesktop.org/software/systemd/man/systemd-nspawn.html
David Timothy Strauss

Konsolun / kabuğun ayrıcalıklı olmayan bir kullanıcı olarak çalıştırdığı, ancak her şeyin root olarak çalıştırıldığından eminim. Şuna bakar mısın?
CameronNemo

1
Tamam, son ifademi geri alıyorum. Bununla birlikte, uygun sübvansiyon / sübvansiyon işlemesi yoktur, konteynır başına yalnızca bir ayrıcalıklı kullanıcı yoktur.
CameronNemo

2
Tam alt borç / alt yardım işlemlerini desteklemek yerine, kapsayıcı başına yalnızca bir ayrıcalıklı kullanıcıya bırakılmaması bir güvenlik sorunu değildir. Bu bir özellik sınırlaması.
David Timothy Strauss,

Evet biliyorum. Sadece farkı işaret ediyordum.
CameronNemo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.