<p dir="ltr">Hoj,</p>
<p dir="ltr">Kdyz budes resit oddeleni statickych dat, pohlidej si taky, jesti to o nemuze nakej kod naserviroat z databaze :)<br>
Ja osobne a jen jednoho usera per sluzba, podobne jak pises, ale to te chrani proti napadeni ostatnich sluzeb, ne proti napadeni vlastnich souboru.<br>
Pokud chces chranit zdrojaky, nezbyde ti nez mit jineho ownera a mit pravo jen na cteni. Obecne bys do slozek co se servujou apachem/fpm-poolem ven nemel psat, jediny vyjimky budou nejaky slozky na uploady, pokud to aplikace vyzaduje. Tam si zajisti, ze se ti zadny php nespusti.<br>
Pokud ses hodne paranoidni, muzes to rezat nejakejma namespacama. Ale to u se dostavamme na uroven kontajner per sluzba (coz ja treba v budoucnu asi budu delat ... jen este nebyl casoprostor).<br>
Gh.<br>
</p>
<div class="gmail_quote">On Feb 23, 2016 5:22 PM, "Jan B. Kolář" <<a href="mailto:janbivoj.kolar@zazen-nudu.cz">janbivoj.kolar@zazen-nudu.cz</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Zdravím všechny,<br>
<br>
chtěl jsem Vás poprosit o radu/názor ohledně nastavení user/group u php-fpm z hlediska bezpečnosti. Používám php-fpm v kombinaci s nginxem a největší obavu mám z napadení php aplikace. Chtěl jsem proto nastavit souborová práva takovým způsobem, aby se v případě napadaní aplikace minimalizovala možnost jejího zneužití k šíření malware.<br>
<br>
Samozřejmě jsem přečetl různé návody na netu a pro každou php aplikaci si vytvářím vlastního uživatele, pod kterým běží php-fpm pool (user "project", group "project"). Uživatel www-data (nginx) pak je součástí skupiny "project", aby měl přístup k souborům. Na všechny složky jsem nastavil právo jen pro čtení (440), pouze u "tmp" složek, kde si php aplikace vytváří dočasné soubory, jsem nastavil právo 640. V nginxu jsem pak nastavil, že se ze složky "tmp" nesmí nic servírovat ven (php aplikace tam ukládá jen soubory pro svoji vnitřní potřebu, není potřeba k nim přistupovat zvenčí).<br>
<br>
Celé mi to přišlo jako ohromné řešení, dokud mi nedošlo, že owner souborů může provést chmod. Tzn. běžící php-fpm pool si může na složkách či souborech nastavit právo pro zápis, "kompromitovat" soubory a servírovat je návštěvníkům.<br>
<br>
Udělal jsem tedy co nejstriktnější omezení u ngnixu - tzn. přesně jsem vyjmenoval z jakých složek se můžou servírovat jaké soubory (např. z "/assets" pouze .js, .css., .jpg, z "/" jen index.php, z "/tmp" složky vůbec nic). Pořád mi ale vrtá hlavou nastavení přístupu k souborům.<br>
<br>
Jediné řešení, které mě napadlo je, že bych musel pro daný projekt vytvořit uživatele dva a jednu skupinu. Php-fpm pool by pak běžel pod "project-pool":"project", všechny soubory by ale vlastnil "project":"project". Skupina by měla přístup jen pro čtení a php-fpm pool by to nemohl změnit. Skupina by měla práva zápisu jen do složky "/tmp", aby si mohla aplikace vytvářet dočasné soubory.<br>
<br>
Jenže jsem na takové nastavení práv nikde nenarazil a tak nevím, jestli jsem to moc "nepřekombinoval" :-D<br>
<br>
Předem díky za reakce,<br>
<br>
Honza<br>
_______________________________________________<br>
Community-list mailing list<br>
<a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br>
<a href="http://lists.vpsfree.cz/listinfo/community-list" rel="noreferrer" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br>
</blockquote></div>