stabilna wersja PLD :)

Tomasz Pala gotar at polanet.pl
Mon Jan 2 18:49:48 CET 2017


On Mon, Jan 02, 2017 at 17:14:41 +0100, Paweł Gołaszewski wrote:

> Lubisz się czepiać, prawda? ;)

Tylko się bronię! :)

Chodzi mi o to, że przypadek, który masz na myśli - podałem od razu jako wyjątek.

Przyznam, że zaczepnie, a nie wiedziałem nawet, że systemd się już dorobił
grzecznego pomijania pewnych niedostępnych funkcji. Nie idzie co prawda
tak daleko, jak niegdysiejszy tryb zdegradowany, ale to nawet dobrze.

>> A konkretnie to jakie? Poważnie pytam - rzeczywisty przykład ułatwienia
>> ucieczki z nieuprzywilejowanego kontenera.
> 
> Nie mam czasu (ani ochoty) na advocacy. Szczególnie, że Ty jesteś w stanie 
> każdego zagadać na śmierć... nie ważne czy masz rację czy nie (no-offence, po 
> prostu "kilka" lat obserwuję i sam uczestniczyłem w dyskusjach z Tobą ;) 
> Możesz to potraktować jako komplement ;) ).

Dzięki:) ale tak żebym się doedukował - czy chodzi o coś innego niż (na dole)
https://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/ ?

> Pisałem jakiś czas temu, była krótka dyskusja na ten temat. Jesteś 
> zainteresowany to poszukaj. Sygnalizuję tylko problem, na który sam się 
> natknąłem.

Z racji tego, że obecnie nie można zrobić separacji (nazwijmy to tak dla
uproszczenia) zarówno wewnątrz kontenera jak i na zewnątrz, trzeba wybrać:

1. chcę separować niezaufany kontener od hosta (odpalam niezaufany kontener),
2. chcę mieć bezpieczny kontener z usługami, host na zewnątrz to tylko
   pojemnik, żeby się łatwiej administrowało.

To jest popularny dylemat - np. dla normalnego użytkownika praca z konta
roota nie jest niebezpieczna, bo to nie zawartość samego systemu jest
ważna (analogia hosta), tylko jego katalogu domowego (kontenera).
Niebezpieczeństwo czai się w pozornym bezpieczeństwie linuksa jako
takiego, a tymczasem stracić własne dane jest równie łatwo (wyjątkiem
jest Qubes OS).

Zatem jeżeli wewnątrz kontenera masz aplikację wystawioną ryjkiem na
świat, bazę danych i wszystko, co ważne - chcąc chronić kontener, lepiej
mieć w środku systemd, a kontener uruchamiać z CAP_SYS_ADMIN.

Jeżeli natomiast chcę izolować kontener od sąsiadów i hosta ogólnie...
nadal uruchamiasz systemd, tyle że nieuprzywilejowany. Sytuacja będzie
NIE GORSZA niż z rc-scripts, po prostu wewnątrz nie będzie żadnych (...?)
funkcji ochrony. rc-scripts w ogóle ich nie mają.

Obecnej sytuacji nie jest nikt winien:
- systemd realizuje swoje funkcje ochronne,
- docker realizuje swoje funkcje ochronne (gdy ktoś ma archaicznego inita
  albo po prostu obawia się wyeksploitowania zawartości),
- kernel ma tylko takie user namespaces, że działają na jedym poziomie...


To po co o tym rozmawiać? Bo mając systemd w kontenerze, możesz w każdej
chwili przestawić na inny sposób uruchamiania. A gdy kiedyś te funkcje
zostaną poprawione, to automatycznie zyskujesz. Win-win.

A jeżeli chodzi o problemy, które napotkałeś - czy o to chodzi?
https://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2015-December/157189.html
- jak na systemd to mówimy o zamierzchłej przeszłości, w PLD też nie
byliśmy jakoś specjalnie na bieżąco.

Zatem skoro da się już _w ogóle_ uruchomić systemd nieuprzywilejowany,
to nie widzę żadnej przewagi rc-scripts w kontenerze. Trzeba po prostu
być na bieżąco, ale OP pytał o nowy system i o takim ja się wypowiadałem.

> Dobrze, źle - sprawa dyskusyjna. Szczególnie jak konserwujesz istniejące 
> systemy. Po prostu są i trzeba z tym żyć.

Oj, że czasem trzeba sobie radzić z zaszłościami, to jasne. Ale właśnie
po to, żeby sobie nie robić nowych zaszłości na przyszłość;) trzeba od
razu decydować się na bardziej perspektywiczne rozwiązanie.
A dzisiaj na horyzoncie poza systemd nie ma nic. Zatem na zakończenie,
raz jeszcze: MOŻNA mieć DOBRY powód, żeby systemd nie używać, ale jeżeli
się go nie zna, to defaultowo trzeba brać systemd.

-- 
Tomasz Pala <gotar at pld-linux.org>


More information about the pld-devel-pl mailing list