Hirdetés

Új hozzászólás Aktív témák

  • samujózsi

    tag

    (ez inkább amolyan blogpost, mint kérés/kérdés, nem is arról szól, hogy jajjistenem, feltörik az itthoni gépem, ha valamelyik konténer nem kellőképp up-to-date, inkább csak általánosságban igyekszem gondolkodni, de hátha valakinek van hozzáfűznivalója...)

    Minél jobban beleásom magam a docker témába, annál kevésbé látom az igazi előnyeit egy virtuális géppel szemben (pláne valami komolyabb vmware, esetleg xen telepítéssel szemben) - leszámítva a virtualizáció valamivel magasabb overheadjét.

    Elvben el van szeparálva a konténer a host rendszerétől, de alapbeállításokkal (most kizárólag Ubuntu-s tapasztalatokról beszélek), ez nagyon kevésnek tűnik:

    Például nincsenek beállítva processz limitek, így egy vicces kedvű felhasználó, ha valami módon shellhez jut egy konténerben, egy fork-bomb segítségével kifektetheti a hostot. (eredetileg korlátozva voltak, csak állítólag sok helyen okozott gondot a default ulimit, ezért unlimited-re tették)

    Nincs default user mapping, ami a konténerben root, az a hoston is az. Ez nem tűnik jó ötletnek, ha már szeparáció és van is rá eszköz. Miért nem az az alapértelmezett, hogy használja a mappinget?

    Ha jól értem, a Linux capabilities használata is beavatkozást igényel, mert alapjáraton a konténerben futó root-nak minden joga megvan (legalábbis kellett egy --caps-drop=ALL ahhoz, hogy a konténerből ne működjön pl a ping - erről tudtam, hogy a CAP_NET_RAW jog kell neki)

    Akkor ott az update-ek kérdése, amit bevallom, továbbra sem tudtam feldolgozni: van egy működő konténerem, ha azt akarom, hogy a benne használt összes szoftver be legyen foltozva záros határidőn belül, akkor mi is a teendő? Lesni minden létező szoftvert és ha valamelyikhez jött security patch, akkor rebuildelem a konténert?

    Nem teljesen tiszta, hogy mi is van a konténerben futó démonokkal, azok logolásával - utóbbi főleg akkor izgalmas, ha valahol üzemel egy log szerverem, ahol gyűjteném a logokat, de a konténerekben általában nincs syslogd, ami átküldené ezeket a log szerverre, bár ezen lehet, hogy segít a run --log-driver és --log-opt kapcsolójának megfelelő beállítása - ezt még meg kell néznem. Ezek most leginkább úgy jöttek elő, hogy nézegetem tegnap óta a squid és a freeradius futtathatóságát, előbbinél a logolás nem tűnik triviálisnak, mert valamiért csak a saját logját(/var/log/squid/*) hajlandó írni, hiába próbálnám a syslogba küldeni - ez még lehet az én hibám is, utóbbinál meg a szabályos leállás, meg egyéb signal kezelés tűnik problémásnak (korábban célozgattam adatbázisokra, na a radius egy ilyen sérülékeny valami, amennyire emlékszem rá), amit csak elég komoly munkával lehet megoldani, wrapper script írással és egyéb konfigurálgatással.

    Akkor ott van a hálózat, elsősorban a szolgáltatásoknál szűrni a klienseket, amit szintén nem triviális megoldani, bár megoldható.

    Ehhez képest nekem most egyszerűbbnek tűnik feltolni egy virtuális gépet, dinamikus memória használattal, abba beleszórni a szükséges szoftvereket - igaz, így egymástól nincsenek védve, ahhoz külön vm kell, viszont könnyű naprakészen tartani, bármi történik a vm-ben, elhanyagolható esélye van, hogy magával rántsa a hostot, a szoftverek init scriptjei működnek, nem kell wrapperekkel nyűglődni, a "tűzfalazás" megoldható a vm saját packet filterével stb.

    Szóval mostanra elég sok kétség merült fel bennem, hogy jó-e, ha áttolok mindent docker-be?

    Primadonnát felveszünk! https://youtu.be/9lETrcMJZJM

Új hozzászólás Aktív témák