omajgat 0 Zgłoś post Napisano Kwiecień 27, 2010 Witam, mam na serwerze nginx+php, wszystko dziala z usera www-data. Lecz z moich obserwacji wynika iz nie jest to bezpieczne. Gdy index.php ma chmod 700, www-data nie ma dostepu. Jezeli ustawie na odczyt dla 'innych'(www-data) czyli 704, plik zostanie wczytany, jednak w tym momencie mozna podejrzec jego zawartosc z innego uzytkownika za pomoca komendy shell_exec. Na serwerze jest kilku uzytkownikow, wiec ich dane nie sa bezpieczne zbytnio poniewaz kazdy moze podejrzec tresc configow itd. Czy zna Ktos sposob w jaki mozna rozwiazac ten problem? Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Kwiecień 27, 2010 Nie korzystać z www-data? Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Kwiecień 27, 2010 Nie korzystać z www-data? Moglbym prosic o wiecej wskazowek? Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Kwiecień 27, 2010 Każda aplikacja powinna działać na prawach własnego użytkownika. Udostępnij ten post Link to postu Udostępnij na innych stronach
atsuki 0 Zgłoś post Napisano Kwiecień 28, 2010 Zablokuj komende shell_exec, i wszystkie inne, ktore uznasz za stosowne. jak masz kilku userow tylko to np mozesz kazdemu dac oddzielny process php z wlasnym userem. Mozesz dokompilowac fpm do php... opcji jest sporo Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Kwiecień 28, 2010 jak masz kilku userow tylko to np mozesz kazdemu dac oddzielny process php z wlasnym userem To ciekawie brzmi, jednak nic konktretnego nie wyguglowalem na ten temat, moze zna Ktos jakis tajny tutorial? Udostępnij ten post Link to postu Udostępnij na innych stronach
atsuki 0 Zgłoś post Napisano Kwiecień 28, 2010 hint - fastcgi poprzez spawn-fcgi bądź lepsze php-fpm, znajdziesz opisy na howtoforge.com Udostępnij ten post Link to postu Udostępnij na innych stronach
ahes 83 Zgłoś post Napisano Kwiecień 28, 2010 Witam, mam na serwerze nginx+php, wszystko dziala z usera www-data. Lecz z moich obserwacji wynika iz nie jest to bezpieczne. Gdy index.php ma chmod 700, www-data nie ma dostepu. Jezeli ustawie na odczyt dla 'innych'(www-data) czyli 704, plik zostanie wczytany, jednak w tym momencie mozna podejrzec jego zawartosc z innego uzytkownika za pomoca komendy shell_exec. Na serwerze jest kilku uzytkownikow, wiec ich dane nie sa bezpieczne zbytnio poniewaz kazdy moze podejrzec tresc configow itd. Czy zna Ktos sposob w jaki mozna rozwiazac ten problem? To nie ma znaczenia. Ważne jest z jakiego usera bangla php. Udostępnij ten post Link to postu Udostępnij na innych stronach
atsuki 0 Zgłoś post Napisano Kwiecień 28, 2010 hmm.. moze tak, dla przykładu: /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u user -g grupa -f "/usr/bin/php5-cgi -c /etc/php5/cgi/dowolne.ini" -C 1 -P /var/run/fastcgi-php.pid Udostępnij ten post Link to postu Udostępnij na innych stronach
ahes 83 Zgłoś post Napisano Kwiecień 28, 2010 hmm.. moze tak, dla przykładu: /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u user -g grupa -f "/usr/bin/php5-cgi -c /etc/php5/cgi/dowolne.ini" -C 1 -P /var/run/fastcgi-php.pid Lepiej php-fpm ze zdefiniowanymi poolami per user. Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Kwiecień 28, 2010 Probowalem zrobic z 3 opisow. Zaden oczywiscie nie zadzialal tak jak powinien... Przykre troche to jest ;-/ Dziekuje za pomoc. Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Kwiecień 29, 2010 Dobra, nerwy już przeszły Czy Ktos pomoże mi ogarnąć php-fpm na lennym za opłatą? -> PM Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Kwiecień 30, 2010 Sprawa okazala sie bardzo prosta i te wszystkie cyrki z kompilacja roznych wersji php byly zbedne, poniewaz wystarczylo uzyc podanej wyzej komendy. /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9001 -u foo -g foo -f /usr/bin/php5-cgi -C 1 -P /var/run/fastcgi-foo.pid Mam jednak 2 pytania... 1. Gdy odpalam powyzsza komenda z -C 1 znaczy to ze ma stworzyc 1 proces. A tworzy 5. Jaka jest tego przyczyna? 2. Po odpaleniu spawn-cgi z prawami usera foo na porcie 9001, ustawiam w configu nginxa oczywiscie odpowiedni port, w tym przypadku 9001. Php wykonuje skrypty tego usera, z prawami tego usera. Ale tylko wtedy, gdy ustawie chmod 704, czyli dam mozliwosc odczytu pliku innym. Przy 700 nie ma dostepu.... Wiec troszke to sie mija z celem, czy tak to ma dzialac? Udostępnij ten post Link to postu Udostępnij na innych stronach
atsuki 0 Zgłoś post Napisano Maj 2, 2010 Pamiętaj ze nginx działa z prawami usera www-data. A jeżeli odwołujesz się do jakichkolwiek plików innych niż *.php nginx serwuje sam treść, z pominięciem procesu PHP, więc .. masz odpowiedź? :> Udostępnij ten post Link to postu Udostępnij na innych stronach
omajgat 0 Zgłoś post Napisano Maj 12, 2010 Tak, aby pliki *.php działały i było bezpieczne przed innymi użytkownikami, nalezy nadac grupe: user:www-data + chmod 770, aby widzial je nginx ktory pracuje wlasnie z usera www-data. Więc cel został osiągniety, poniewaz kazdy ma 'swoje' fcgi odpalane z usera. Przy chmodzie 770 drugi user traci dostep... Zrobilem prosty skrypt, moze sie komus przyda (co prawda doskonały nie jest, ale dziala ;p): #!/bin/bash PID=/var/set/$USER/fcgi.pid BIN=/usr/bin/spawn-fcgi CGI=/usr/bin/php5-cgi TMP=/tmp/fcgi/${USER}.fcgi.tmp function start(){ if [ -f ${PID} ]; then echo -e "---> Plik ${PID} istnieje. Oznacza to że php-fastCGI jest już wł±czone." exit 2 fi ${BIN} -s ${TMP} -u ${USER} -g ${USER} -f ${CGI} -C 5 -P ${PID} READPID=`cat /var/set/$USER/fcgi.pid` echo -e "Fast-CGI zostało odpalone. PID: $READPID." chmod 0777 ${TMP} chmod 0700 ${PID} } function stop(){ if [ ! -f ${PID} ]; then echo -e "---> Plik fcgi.pid nie istnieje, więc php-fastCGI nie jest uruchomione." exit 2 fi READPID=`cat /var/set/$USER/fcgi.pid` kill -15 $READPID rm ${PID} rm ${TMP} if [ ! -f ${PID} ]; then echo -e "---> php-fastCGI zostało pomy¶lnie wył±czone." fi } case $1 in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; *) echo -e "---> Używaj: php-www {start|stop|restart}" ;; esac W konfigu usera nginxa: location ~ \.php$ { fastcgi_pass unix:/tmp/fcgi/user.fcgi.tmp; Dzieki skryptowi, uzytkownik moze sobie sam odpalac prosta komenda php-www start/stop/restart A jak wyglada kwestia z -C 5? Jzeli podam liczbe ponizej 5, w dalszym ciagu odpala sie 5 procesow, czy jest na to jakas rada? Udostępnij ten post Link to postu Udostępnij na innych stronach
ahes 83 Zgłoś post Napisano Maj 12, 2010 Strasznie fantazjujesz: nginx działa z prawami www-data php-fpm tworzy workerów z uidem usera i grupą www-data chmod 2710 na katalogi: drwx--s--- chmod 640 na pliki: -rw-r----- chown -R loginusera:www-data htdocs Polecenia robiące powyższe: cd ~/www/moj.vhost.pl find htdocs -type d -exec chmod 2710 {} \; find htdocs -type f -exec chmod 640 {} \; chown -R loginusera:www-data htdocs Koniec. Udostępnij ten post Link to postu Udostępnij na innych stronach