[vpsFree.cz: community-list] Souborová práva pro nginx/php-fpm

"Jan B. Kolář" janbivoj.kolar at zazen-nudu.cz
Wed Jul 22 13:12:21 CEST 2015


Ahoj,

původně jsem měl napsaný detailní e-mail, ale pak jsem si řekl, že by 
Vás to asi obtěžovalo číst :-D Pročetl jsem už hodně článků, přesto bych 
potřeboval poradit s jednou věcí. Snažím se dosáhnout takového nastavení 
nginx a php-fpm, které by bylo bezpečné, ale zároveň mi umožňovalo 
snadnou úpravu souborů (přímou editaci, kopírování, mazání). Na serveru 
mám cca. 10 projektů a přistupuji k němu sám (momentálně nemám potřebu 
přístupu více uživatelů k souborům).

Poradíte mi, jestli je toto dobré nastavení pro "projekt1" (u dalšího by 
pak byl "projekt2", atd.):

php-fpm.conf
------------------
user = projekt1
group = projekt1
...
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

nginx.conf
------------------
user = www-data

(nginx součástí skupiny "projekt1")

web-root: /hosting/projekt1/web_root/* (chown ja:projekt1, chmod 640)
tpm :/hosting/projekt1/web_root/tmp/* (chown ja:projekt1, chmod 660)

Budou takto projekty dostatečně odděleny? Pokud dojde k napadení 
"projektu1", nemůže nějak útočník využít přístupu nginxu k "projektu2" 
(nginx bude ve skupinách všech projektů)? Jelikož php i nginx budou 
využívat stejného oprávnění skupiny, nehrozí zneužití nginxu pro zápis 
do složky "tmp" (teoreticky tam potřebuje zapisovat jen PHP, avšak jak 
práva oddělit)?

Předpokládám, že největší zranitelností bude php (možná mylně). Je dobré 
mít u projektů pro "ostatní" zcela zakázán přístup? Přemýšlel jsem totiž 
i o nastavení, kde by "skupinu" tvořil php-fpm pool a jako "ostatní" by 
přistupoval nginx. To by však dle mého názoru znamenalo dát práva pro 
čtení "ostatním". Tedy alespoň při mých pokusech odmítal nginx zobrazit 
php stránku v případě, že index.php měl práva 640 (nginx nebyl součástí 
skupiny).

Předem díky za Vaše názory případně odkazy na nějaké dobré zdroje informací.

Honza



More information about the Community-list mailing list