Názor k článku Jak nikdy nespouštět službu, aneb kdo posílá tajemný SIGKILL? od krauser - > To není 100% pravda. Například web-server na...

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 1. 2018 17:09

    krauser

    > To není 100% pravda. Například web-server na běžném OS pořebuje privilegium poslouchat na portu 80 (tedy menším než 1024). Takže musí nejdřív začít poslouchat a potom změnit uživatele. Pokud ovšem za něj začne poslouchat správce služeb, tak se najednou musí správce služeb postarat, aby ta socketa měla nastavené vše co ten webserver potřebuje a musí rozumět síťovému stacku*. Spousta dalších služeb také potřebuje privilegovaný přístup k nějakým dalším prostředkům, ale jinak běžet neprivilegovaně. To se nejlépe řeší tím, že se jim poskytne API/ABI. Zvenčí to chce jen zajistit aby ta služba neměla přístup k věcem ke kterým mít přístup nemá. Na to mi v tradičním systému stačí code-review kódu před vzdáním se rootovských práv.

    Proc to delat dobre, kdyz to jde delat uplne blbe, ze :)
    Navic to neni absolutne pravda, existuje mnohem lepsi reseni (a dokonce nekolik) - pridat procesu capability (napr. poslouchat na privilegovanem portu), pak zadne prava roota nepotrebuje a muze bezete rovnou pod neprivilegovanym uzivatelem.
    Doporucuji dostudovat POSIX Capabilities, je to docela uzitecne :)

    Druhou moznosti je socket activation, ale to je trochu na neco jineho.

    > * tohle autoři systemd řeší pomocí socket-activation. Pak ale nastavím socket-activation službu a nevím, že je služba rozbitá, dokud se doopravdy něco nepokusí přistoupit na tu socketu. V produkčním prostředí děkuji, ale nechci.

    Socket activation totiz neni primarne urceny na reseni poslouchani na portu < 1024, ale pro sluzby, ktere nemaji bezet porad, ale jen tehdy, kdyz jsou potreba :) A samozrejme to ma dusledek ten, ze se ... sluzba spustti az tehdy, az je potreba.
    Pro permanentne bezici sluzby je to nevhodne.

    Btw, nemas na produkci healthcheck a monitoring? Spolehat na to,ze sluzba funguje, kdyz bezi proces - diky, ale to bych nechtel :)