PHP+Vhosts mit getrennten usern möglich?

  • Thread starter Thread starter pmneo
  • Start date Start date
P

pmneo

Guest
Hallo!

Ich hab mir heute auf meinem neuen Root-Server VHCS installiert, es handelt sich um ein Debian 4.

Ich hab PHP5 und MySQL5 am laufen, soweit so gut.

Nun hab ich festgestellt, das PHP als www-data läuft, und zwar für alle vhosts :(

Das stellt ja eigentlich gewisse sicherheitslücken dar, gibt es in VHCS keine möglichkeit die vhosts als getrennte user laufen zu lassen??

Danke & Gruß
 
Hmm, das würde ja bedeuten, dass ich für jeden vhost-user eine Instanz von apache am Laufen haben müsste. Wie soll den da eine Anfrage von Außen über den Port 80 an die richtige Instanz des apache2 gelangen? :confused:

Nun, also das ist der Knackpunkt eines virtual host, er ist eben nur virtuell. Der apache2, also der Webserver an sich, der u.a auch mit einem entsprechenden Modul auch durch PHP generierten html-Code darstellen kann, läuft als eine einzige Instanz und spawned entsprechene sessions. Aus Sicherheitsgründen läuft der apache2 eben nicht unter root, sondern unter dem Benutzer www-data und die Gruppe www-data.

Und ja, der apache muss zumindest über die Gruppe www-data alle Rechte besitzen, die notwendig sind, z.B. php-Scripte auszuführen bzw. die darin enthaltenen Befehle. Daher ist i.d.R. bei den virtuellen host der Eigner zwar der jeweilige User, die Gruppe ist jedoch www-data. Wäre dem nicht so, so müssten zumindest dem Rest der Welt Leserechte erteilt werden.

Diese Konstellation kann natürlich auch zu dem Problem führen, dass via php neu generierte Dateien im jeweiligen Verezeichnis, also auch php-scripte autom. als Eigener und Gruppe jeweils www-data eingetragen erhalten.
Bei einem Zugriff via FTP können die Benutzer diese Dateien weder löschen noch ändern.

Bei Projekten wie mambo oder moregroupware ist hier nach Installation ggfs. Anpassungsbedarf durch den root.
 
Hi,
Klar ist das möglich allerdings musst du dazu PHP im fastcgi Modus installiern (wies bei ISPCP zum Beispiel Standard is) jedoch verbraucht fastcgi mehr Leistung auf deiner Kiste was gerade bei hohen Klickraten sehr schlecht ist.

Grüße
 
Aha, da kann man mal wieder sehen, man lernt nie aus. :rolleyes: Das mit dem fastcgi muss ich mir mal anschauen.
 
ahja, danke schon mal ... gibts da irgendwo ne schöne anleitung für?

Oder wäre es prinzipiell empfehlenswert, bei einem neuen System gleich ISPCP zu verwenden??


Gruß
 
Naja die Meinungen laufen hier im Forum etwas auseinander. Die einen meinen man sollte lieber erstmal VHCS benutzen und dann später durch das geplante Update-script in ISPCP auf ISPCP updaten, weil es momentan einfach so viele Bugs in ISPCP gibt.

Die andern meinen, dass ISPCP zumindest auf Debian etch schon brauchbar ist. Die Installation scheint auch zu klappen, aber es gibt immernoch einige Bugs.

Da musste dir irgendwie deine eigene Meinung bilden und hier im Forum gabs ja schon einige Äußerungen dazu. ;)
 
Hi,

fastcgi für Debian gibts hier ne gute Anleitung: http://archiv.debianhowto.de/de/apache2-phpfcgi-sarge/
Du musst bei Fastcgi nur wirklich aufpassen es kann sehr schnell passieren das der Server damit überlastet wird wenn es falsch konfiguriert ist. Siehe einige Beiträge im ISPCP Forum ,)

ISPCP würde ich auch noch nicht auf einem Produktivsystem einsetzen da es noch einige ziemliche Bugs aufweist die jetzt immer mehr rauskommen, außerdem gibt es keine Updatescripts auf neuere Versionen von ISPCP wenn die alte überholt ist.

Grüße
 
Noch ne andere Frage, hat jemand von euch apache2-mpm-itk am laufen und erfahrungen damit??

Wäre doch eigentlich nicht verkehrt, oder?

Gruß
 
The solution I found to be the best so far is mpm-itk. In short, here is how it works:
It’s based on prefork MPM so like your regular Apache, it has a parent managing process and several child processes serving the requests.
Unlike the regular prefork model which has the managing process running as root and child processes as apache/nobody, ITK runs ALL processes as root.

Also ich finde das klingt nicht gut das auch alle Subprozesse als root laufen und nicht als nobody/apache wies bei mpm-prefork der Fall ist.

Was soll dir den mpm-itk für einen Vorteil bringen?
Wenns dir um Performance geht wäre apache2-worker besser alleerdings musst du da viele abstriche bei PHP machen.
 
Nunja, der vorteil ist eben, das jeder vhost und damit auch php als eigener user läuft, nur eben als preforker und nicht über fast-cgi ...

system("id"):
http://pmneo.info/id.php

Gruß
 
Naja aber wenn alle childs als root laufen wäre mir dabei nicht wirklich wohl. Und Performance technisch weiß ich nicht wies mit dem aussieht ich weiß nur das ich da sehr unzufrieden mit prefork bin egal ob mit oder ohne fcgi :x

Kannst du sagen ob das mit itk besser ist?
 
Naja, da auf dem system noch keine produktiven seiten laufen leider nicht ...

Die frage ist ja, was für nen Unfug betrieben werden kann ... php läuft mal nicht als root, das steht fest, inwiefern was als root läuft weiß ich leider nicht, da ich mich damit noch nicht auseinandergesetzt hab, bis jetzt ...

Was is denn dann für dich Perfomance Technisch gut?

Gruß
 
Also so wie ichs halt in diesem Beitrag gelesen habe laufen alle Prozesse (nicht die Mods sondern der Apache selber) als root statt als apache oder nobody das fände ich persönlich doch sehr bedenklich.

Also Performance Technisch kommt für mich nur apache2-worker in Erwägung ... leider gibt es da einige Probleme mit PHP da er nur non-threaded Sachen zu lässt als Modul.

Preforker war auf einem unserer Server der 1GB Ram und nen Opteron 146 hat mit über 1000 Zugriffen pro Stunde so überfordert das nur noch ein Reset des Systems geholfen hat es wieder ansprechbar zu bekommen. Also für hochfrequentierte Seiten bzw. Server kann man Preforker nicht verwenden mal sehen ob ich was finde wie das bei itk ist ;)

Gruß
 
Back
Top