mod_php, PHP als CGI, (mod_)suphp?
am 18.07.2005 19:47:10 von Thomas Hochstein
Ich überlege, wie ich PHP 4.x (mit Apache 2.x) am besten neu
installiere auf einer Maschine, die Hosting für mehrere - wenn auch
befreundete/bekannte - Nutzer übernehmen soll. Die üblichen Quellen
(Online-Doku, PHP-FAQ) kenne ich, die grundsätzlichen Unterschiede und
Vor-/Nachteile auch; Googlegroups erwies sich nicht wirklich
hilfreich.
Modul ohne safe_mode fällt daher aus, soweit ich sehe. Bisher nutze
ich mod_php mit safe_mode, aber das hat die bekannten Nachteile
(namentlich das störende Problem, das neu angelegte Dateien als Owner
den Webserver-User haben, so daß darauf nicht mehr zugegriffen werden
kann). Ich erwäge daher PHP als CGI (bzw. suPHP - was unterscheidet
eigentlich das eine vom anderen, ich lese auf der HP etwas vom Modul
"mod_suphp"?) zu installieren; allerdings liest man von einem
Performance-Verlust. Wie merklich ist der? Minimal, oder deutlich
spürbar - soweit man das ohne genauere Angaben zur Maschine,
Zugriffszahlen usw. sagen kann, wie sind da die Praxiserfahrungen?
Macht es Sinn, bringt es (spürbar) zusätzliche Sicherheit, safe_mode
dennoch aktiviert zu lassen, aufgrund der (wenn auch sicherlich nicht
umfassenden) Einschränkung potentiell "gefährlicher" Funktionen?
Wie sieht es mit Ownership und Rechten bei einer PHP-CGI-Installation
aus? Beim Googeln fand ich folgende Beschreibung:
| Leider kommt es bei falsch gesetzten Rechten von Ordnern und Skripten
| zu Fehlern. Die Ordner welche PHP lesen/schreiben soll müssen auf
| CHMOD 755 gesetzt werden, die Scripte selbst auf CHMOD 644
Trifft das zu? Mir ist das nicht wirklich eingängig; wenn suPHP die
Scripts mit UID/GUID des Owners ausführt, sollte doch 600/700 reichen?
Das wäre außerdem arg suboptimal, weil sonst spätestens ein Nutzer mit
Shellzugriff Scripts anderer Nutzer lesen könnte.
Abschließend: Habe ich noch etwas übersehen? Gibt's weitere
Installationsvarianten? (Getrennte Apache-Installationen pro Nutzer
o.ä. nehme ich mal aus; das erscheint mir für meine Anforderungen zu
komplex und nicht sinnvoll.) - Irgendwie müssen das ja auch
professionelle Hoster machen.
TIA,
-thh
--
/°\ --- JOIN NOW!!! ---
\ / ASCII ribbon campaign
X against HTML
/ \ in mail and news
Re: mod_php, PHP als CGI, (mod_)suphp?
am 18.07.2005 22:50:55 von Helmut Schmuckermair
> ... aber das hat die bekannten Nachteile
> (namentlich das störende Problem, das neu angelegte Dateien als Owner
> den Webserver-User haben, so daß darauf nicht mehr zugegriffen werden
> kann).
...dieses Problem lässt sich leicht umgehen, wenn du die Zugriffsrechte der
angelegten Datei(en) auf 604 änderst. Dann kann jeder die Datei lesen. Mit
606 kann jeder die Datei ändern. Die benötigte php-Funktion heißt chmod ->
http://at.php.net/manual/de/function.chmod.php
Alternativ könnte man die wichtigsten Funktionen der Dateiverwaltung auch in
php realisieren - da gibt es sicher
> Macht es Sinn, bringt es (spürbar) zusätzliche Sicherheit, safe_mode
> dennoch aktiviert zu lassen, aufgrund der (wenn auch sicherlich nicht
> umfassenden) Einschränkung potentiell "gefährlicher" Funktionen?
Der safe_mode wird imho überschätzt, viel bringt die Apache-vHost-Direktive
php_admin_value open_basedir
...sperrt das php-Script im ein. Zum Dateiupload benötigst du
dann noch
php_admin_value upload_tmp_dir
weil ja dann /tmp nicht mehr erreichbar ist.
Sehr zu empfehlen:
http://www.linux-magazin.de/Artikel/ausgabe/2004/10/php/php. html
> Abschließend: Habe ich noch etwas übersehen? Gibt's weitere
> Installationsvarianten? (Getrennte Apache-Installationen pro Nutzer
> o.ä. nehme ich mal aus; .... ) - Irgendwie müssen das ja auch
> professionelle Hoster machen.
viele benutzen das suexec-Apache-Modul für CGI und SSI Scripte ->
http://httpd.apache.org/docs-2.0/suexec.html
hth
Re: mod_php, PHP als CGI, (mod_)suphp?
am 19.07.2005 18:11:28 von Thomas Hochstein
Helmut Schmuckermair schrieb:
> ..dieses Problem lässt sich leicht umgehen, wenn du die Zugriffsrechte der
> angelegten Datei(en) auf 604 änderst. Dann kann jeder die Datei lesen. Mit
> 606 kann jeder die Datei ändern. Die benötigte php-Funktion heißt chmod ->
> http://at.php.net/manual/de/function.chmod.php
Schon klar. Es ist aber naheliegenderweise nicht gewünscht, daß jeder
die Datei lesen kann.
> Der safe_mode wird imho überschätzt, viel bringt die Apache-vHost-Direktive
>
> php_admin_value open_basedir
>
> ..sperrt das php-Script im ein. Zum Dateiupload benötigst du
> dann noch
>
> php_admin_value upload_tmp_dir
>
> weil ja dann /tmp nicht mehr erreichbar ist.
Danke, das ist bekannt (und AFAIK auch von safe_mode unabhängig, d.h.
getrennt ein-/auszuschalten?).
> Sehr zu empfehlen:
> http://www.linux-magazin.de/Artikel/ausgabe/2004/10/php/php. html
Das werde ich mir mal anschauen.
-thh
Re: mod_php, PHP als CGI, (mod_)suphp?
am 22.07.2005 00:43:33 von Helmut Schmuckermair
>> ... chmod -> http://at.php.net/manual/de/function.chmod.php
> Schon klar. Es ist aber naheliegenderweise nicht gewünscht, daß jeder
> die Datei lesen kann.
Das muss nicht zwingend auf Dateisystem-Ebene gewährleistet werden. Denkbar
ist auch, die Serverdienste entsprechend zu beschränken: FTP in
chroot-Umgebung, kein ssh oder (komplexer) auch ssh in chroot-Umgebung, ...