İmtiyazsız konteynerlerin yararları ve dezavantajları nelerdir?


Yanıtlar:


14

Ayrıcalıklı kapları çalıştırmak, kapları üretim ortamında çalıştırmanın en güvenli yoludur. Konteynırlar güvenlik söz konusu olduğunda kötü tanıtım alırlar ve bunun nedenlerinden biri, bazı kullanıcıların bir kullanıcı bir kapta kök alırsa, ana bilgisayarda da kök kazanma olasılığı bulunduğunu bulmasıdır. Temel olarak, ayrıcalıklı olmayan bir kapsayıcı, ana bilgisayardaki kullanıcı kimliğini maskelemek içindir. Ayrıcalıklı kapsayıcılarla, kök olmayan kullanıcılar kapsayıcılar oluşturabilir ve kapsayıcıda kök olarak görünür ve kapsayıcı olarak görünürler, ancak ana bilgisayarda (kullanıcı kullanıcılarını eşlediğiniz her ne olursa olsun) 10000 kullanıcı kimliği olarak görünürler. Geçenlerde Stephane Graber'in LXC (LXC'nin parlak zihinlerinden / öncü geliştiricilerinden biri ve kesinlikle takip edecek biri) blog dizisine dayanan bir blog yazısı yazdım . Tekrar söylüyorum, son derece parlak.

Blogumdan:

Konteynerden:

lxc-attach -n ubuntu-unprived
root@ubuntu-unprived:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 04:48 ?        00:00:00 /sbin/init
root       157     1  0 04:48 ?        00:00:00 upstart-udev-bridge --daemon
root       189     1  0 04:48 ?        00:00:00 /lib/systemd/systemd-udevd --daemon
root       244     1  0 04:48 ?        00:00:00 dhclient -1 -v -pf /run/dhclient.eth0.pid
syslog     290     1  0 04:48 ?        00:00:00 rsyslogd
root       343     1  0 04:48 tty4     00:00:00 /sbin/getty -8 38400 tty4
root       345     1  0 04:48 tty2     00:00:00 /sbin/getty -8 38400 tty2
root       346     1  0 04:48 tty3     00:00:00 /sbin/getty -8 38400 tty3
root       359     1  0 04:48 ?        00:00:00 cron
root       386     1  0 04:48 console  00:00:00 /sbin/getty -8 38400 console
root       389     1  0 04:48 tty1     00:00:00 /sbin/getty -8 38400 tty1
root       408     1  0 04:48 ?        00:00:00 upstart-socket-bridge --daemon
root       409     1  0 04:48 ?        00:00:00 upstart-file-bridge --daemon
root       431     0  0 05:06 ?        00:00:00 /bin/bash
root       434   431  0 05:06 ?        00:00:00 ps -ef

Ana bilgisayardan:

lxc-info -Ssip --name ubuntu-unprived
State:          RUNNING
PID:            3104
IP:             10.1.0.107
CPU use:        2.27 seconds
BlkIO use:      680.00 KiB
Memory use:     7.24 MiB
Link:           vethJ1Y7TG
TX bytes:      7.30 KiB
RX bytes:      46.21 KiB
Total bytes:   53.51 KiB

ps -ef | grep 3104
100000    3104  3067  0 Nov11 ?        00:00:00 /sbin/init
100000    3330  3104  0 Nov11 ?        00:00:00 upstart-udev-bridge --daemon
100000    3362  3104  0 Nov11 ?        00:00:00 /lib/systemd/systemd-udevd --daemon
100000    3417  3104  0 Nov11 ?        00:00:00 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
100102    3463  3104  0 Nov11 ?        00:00:00 rsyslogd
100000    3516  3104  0 Nov11 pts/8    00:00:00 /sbin/getty -8 38400 tty4
100000    3518  3104  0 Nov11 pts/6    00:00:00 /sbin/getty -8 38400 tty2
100000    3519  3104  0 Nov11 pts/7    00:00:00 /sbin/getty -8 38400 tty3
100000    3532  3104  0 Nov11 ?        00:00:00 cron
100000    3559  3104  0 Nov11 pts/9    00:00:00 /sbin/getty -8 38400 console
100000    3562  3104  0 Nov11 pts/5    00:00:00 /sbin/getty -8 38400 tty1
100000    3581  3104  0 Nov11 ?        00:00:00 upstart-socket-bridge --daemon
100000    3582  3104  0 Nov11 ?        00:00:00 upstart-file-bridge --daemon
lxc       3780  1518  0 00:10 pts/4    00:00:00 grep --color=auto 3104

Gördüğünüz gibi süreçler konteynerin içinde kök olarak çalışıyor ancak kök olarak değil, ana bilgisayardan 100000 olarak görünüyor.

Özetle: Avantajlar - ek güvenlik ve güvenlik için ek yalıtım. Olumsuz - Başlangıçta başınızı sarmak için biraz kafa karıştırıcı ve acemi kullanıcı için değil.


3
Yani, doğru anlarsam, konteynerler kendileri% 100 güvenli değildir. Hangi konteyneri çalıştırırsan yönet, canavarın kaçma şansı var. Ve sadece burada, konteyner türü önemli olduğunda. Ayrıcalıklı kapsayıcılar için canavar kök altında çırpılır, rootkit'ler eklenir ve değerli SSL anahtarları munchedilir. Ayrıcalıksızlar için, yalnızca kapsayıcıyı oluşturan kullanıcı hesabıyla sınırlı olur, değil mi? SSH anahtarlarını çalmak vs. Bu gerçekten daha güvenli mi? Dört iç içe kutunun resmiyle açıklanabilir mi?
anatoly techtonik

2
Kısacası, konteynırlar kutudan çıkar çıkmaz üretim kullanımı için güvenli değildir. LXC ortamınıza diğer Linux ortamlarında olduğu gibi davranın. Linux kutunuzu da açık bırakmazsınız değil mi ?! Evet, kapsayıcınız yalnızca kullanıcı hesabının eşlendiği alanla sınırlı olacaktır. Graber'in unprived conatiners hakkındaki mesajına göz atın: En büyük sorunun çekirdek ve sistem çağrılarından yararlanabilmesidir çünkü her kap aynı çekirdeği paylaşmaktadır. Gruplar ve selinux, apparmor ve seccomp ve diğer uygulamalar yoluyla güvenliği artırmanın birkaç yolu vardır.
geekbass


Bu nedenle, konteyner çalıştırmak için ayrı bir sınırlı kullanıcı oluşturun. Adil gözüküyor. Bunu cevap olarak kabul ediyorum. Teşekkürler.
anatoly techtonik

4

Test, kum havuzu oluşturma ve kapsülleme için çok değerli araçlardır. Bir web sunucusunun, hassas özel dosyalara erişemeyen, kendi çalışma ortamında güvenli bir şekilde kilitlenmesini mi istiyorsunuz? Bir kap kullanın. Diğer uygulamalarla uyumlu olmayan eski kitaplık sürümlerini ve belirli yapılandırma dosyalarını gerektiren bir uygulamanız var mı? Ayrıca bir kap. Temelde kroot doğru yapılır. Hizmetleri yeterince ayrı tutmanıza izin verir, böylece her birinin bakımı çok daha kolaydır ve mevcut sistemi rahatsız etmek zorunda kalmadan başka bir makineye taşınabilir veya kopyalanabilir.

Dezavantajı, kapsayıcıya neredeyse her şey için yerel olan ad alanını hatırlamanız gerektiğidir. Nerede olduğunuzu bilmelisiniz ve konteynırlar arasındaki iletişim önemsiz değildir. Modülerliğe ihtiyacınız olduğunda iyi bir fikirdir, ancak sanal makinelerin ek yükünü istemezsiniz ve kaplarda sakladığınız şeyler gerçekten fazla ilişkili değildir.

"Sıradan" bir kullanıcı için, iki kişi için tek bir makine kullanmak için kapları kullanabilir ve onları tamamen farklı makinelerdeymiş gibi saklayabilirsiniz. Örneğin, oda arkadaşları.


3
Konteynırların ne olduğuna dair iyi bir insan açıklaması olsa da, bu hala ayrıcalıklı ve ayrıcalıklı olmayanlar arasındaki farkı açıklamamaktadır.
anatoly techtonik

1

Paylaşılan bir çekirdeğe rağmen, rakiplerin bazı şekillerde özgürce kırılma gereksinimlerini artırmasına rağmen (veya daha ziyade saldırı yüzeyinin sınırlandırılmasına yardımcı olur), ayrıcalıklı kaplar buna rağmen konak kökünü kazanan düz hack'lerden tamamen yalıtılmış değildir. .

Bu nedenle, biraz yanlış bir varsayım / taleptir. Bununla birlikte, İnternet'teki birçok kullanıcıdaki teknik yetenek düzeyi, gerçekten teknik olarak yetenekli olmadıkları birçok yolla inet hizmetleri çalıştıracaktır, bu yüzden hey. :)

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.