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

Jan B. Kolář janbivoj.kolar at zazen-nudu.cz
Tue Feb 23 17:21:30 CET 2016


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



More information about the Community-list mailing list