[vpsFree.cz: community-list] php-fpm user/group

Ghormoon ghormoon at gmail.com
Tue Feb 23 17:51:39 CET 2016


Hoj,

Kdyz budes resit oddeleni statickych dat, pohlidej si taky, jesti to o
nemuze nakej kod naserviroat z databaze :)
Ja osobne a jen jednoho usera per sluzba, podobne jak pises, ale to te
chrani proti napadeni ostatnich sluzeb, ne proti napadeni vlastnich souboru.
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.
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).
Gh.
On Feb 23, 2016 5:22 PM, "Jan B. Kolář" <janbivoj.kolar at zazen-nudu.cz>
wrote:

> Zdravím všechny,
>
> 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.
>
> 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čí).
>
> 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.
>
> 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.
>
> 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.
>
> Jenže jsem na takové nastavení práv nikde nenarazil a tak nevím, jestli
> jsem to moc "nepřekombinoval" :-D
>
> Předem díky za reakce,
>
> Honza
> _______________________________________________
> Community-list mailing list
> Community-list at lists.vpsfree.cz
> http://lists.vpsfree.cz/listinfo/community-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vpsfree.cz/pipermail/community-list/attachments/20160223/50c55dab/attachment-0002.html>


More information about the Community-list mailing list