<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: HowTo: Sicherer Webserver mit PHP + FastCGI</title>
	<atom:link href="http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/</link>
	<description>Neuigkeiten und Gedanken über Apple, Münster, Stargate und Meinereiner</description>
	<lastBuildDate>Sun, 14 Jun 2009 17:56:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Von: Mathias</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-2910</link>
		<dc:creator>Mathias</dc:creator>
		<pubDate>Mon, 25 Dec 2006 11:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-2910</guid>
		<description>Die optimal Lösung für das Massenhosting-Problem ist eigentlich ein besserer Threadhandler wie zb. mod_perchild oder metuxmpm. Mit derartigen Threadhandlern laufen die kompletten Kindprozessse mit den Rechten der fürs Massenhosting benötigten Usern, d.h. man könnte weiterhin mod_php nutzen, was natürlich einen Performancevorteil bietet.

mod_perchild wurde aber schon aufgegeben, und metuxmpm ist leider noch nicht stabil, und dazu schlecht dokumentiert (http://mpm.metux.de).

Frohe Festtage ;)</description>
		<content:encoded><![CDATA[<p>Die optimal Lösung für das Massenhosting-Problem ist eigentlich ein besserer Threadhandler wie zb. mod_perchild oder metuxmpm. Mit derartigen Threadhandlern laufen die kompletten Kindprozessse mit den Rechten der fürs Massenhosting benötigten Usern, d.h. man könnte weiterhin mod_php nutzen, was natürlich einen Performancevorteil bietet.</p>
<p>mod_perchild wurde aber schon aufgegeben, und metuxmpm ist leider noch nicht stabil, und dazu schlecht dokumentiert (<a href="http://mpm.metux.de" rel="nofollow">http://mpm.metux.de</a>).</p>
<p>Frohe Festtage <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: fidel</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-255</link>
		<dc:creator>fidel</dc:creator>
		<pubDate>Mon, 26 Jun 2006 15:42:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-255</guid>
		<description>Hab Dank für Dein howto! Das Setup funktioniert bei mir jedoch leider nicht. Ich verwende ein Gentoo Linux mit Apache2, mit diesen Einstellungen erhalte ich bloss Fehlermeldungen wie etwa:
 [warn] FastCGI: (dynamic) server &quot;/mnt/xulp/tests/tests/index.php&quot; (pid 18557) terminated by calling exit with status &#039;114&#039;
In der Dokumentation von Apache2 und suEXEC heisst es:
&quot;...the target CGI/SSI program must reside within suEXEC&#039;s document root (see --with-suexec-docroot=DIR  below).&quot;
Für einen Webserver, der mittels fastcgi und suEXEC php scripts ausführen soll (ist ja eher für einen Webserver mit mehreren users, also mit diversen virtual hosts interessant), finde ich das jedoch nicht sehr hilfreich. Das würde ja bedeuten, ich könnte die virtual hosts bloss während der Kompilierung des Apache mit einem einzigen doc-root konfigurieren. Genau das möchte ich ja nicht, denn ich möchte ja eben virtual hosts mit unterschiedlichen doc-roots, mehreren users mit mehreren Webseiten...
Mir scheint das Setup daher mit mod_fastcgi und suEXEC sehr schwierig und offen gestanden sehr unpraktisch. 
Für einen Kommentar hierzu komme ich wahrscheinlich etwas spät, trotzdem wollte ich das noch loswerden, dieses howto scheint mir von allen das am ehesten nachvollziehbare, obwohl ich bis jetzt das ganze für meine Wünsche noch nicht erfolgreich umsetzen konnte. Eine Alternative bietet daher ein Setup mit virtual servers, so kann jeder vom unkomplizierten mod_php profitieren und sich trotzdem sicher gegen die restlichen users wissen.
Trotzdem Danke für die Einführung!
Grüsse</description>
		<content:encoded><![CDATA[<p>Hab Dank für Dein howto! Das Setup funktioniert bei mir jedoch leider nicht. Ich verwende ein Gentoo Linux mit Apache2, mit diesen Einstellungen erhalte ich bloss Fehlermeldungen wie etwa:<br />
 [warn] FastCGI: (dynamic) server &#8220;/mnt/xulp/tests/tests/index.php&#8221; (pid 18557) terminated by calling exit with status &#8217;114&#8242;<br />
In der Dokumentation von Apache2 und suEXEC heisst es:<br />
&#8220;&#8230;the target CGI/SSI program must reside within suEXEC&#8217;s document root (see &#8211;with-suexec-docroot=DIR  below).&#8221;<br />
Für einen Webserver, der mittels fastcgi und suEXEC php scripts ausführen soll (ist ja eher für einen Webserver mit mehreren users, also mit diversen virtual hosts interessant), finde ich das jedoch nicht sehr hilfreich. Das würde ja bedeuten, ich könnte die virtual hosts bloss während der Kompilierung des Apache mit einem einzigen doc-root konfigurieren. Genau das möchte ich ja nicht, denn ich möchte ja eben virtual hosts mit unterschiedlichen doc-roots, mehreren users mit mehreren Webseiten&#8230;<br />
Mir scheint das Setup daher mit mod_fastcgi und suEXEC sehr schwierig und offen gestanden sehr unpraktisch.<br />
Für einen Kommentar hierzu komme ich wahrscheinlich etwas spät, trotzdem wollte ich das noch loswerden, dieses howto scheint mir von allen das am ehesten nachvollziehbare, obwohl ich bis jetzt das ganze für meine Wünsche noch nicht erfolgreich umsetzen konnte. Eine Alternative bietet daher ein Setup mit virtual servers, so kann jeder vom unkomplizierten mod_php profitieren und sich trotzdem sicher gegen die restlichen users wissen.<br />
Trotzdem Danke für die Einführung!<br />
Grüsse</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: AbRaXeS</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-25</link>
		<dc:creator>AbRaXeS</dc:creator>
		<pubDate>Wed, 10 Aug 2005 10:31:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-25</guid>
		<description>Hallo Matthias,

das Problem das ich bei dem Sticky Bit sehe sind eher die User, die das evt. mal für ein Dir verstellen und dadurch neu angelegte Verzeichnisse Dirs nicht mehr die passenden Berechtigungen haben. Der Apache liefert die dann nicht mehr aus und der User peilt es nicht.

Durch das world-readable können zwar im Prinzip alle User da dran die nicht in der Gruppe Users sind, nur was bleibt noch über, wenn man alle Kunden in der Gruppe hat. Nur noch Systemdienste wie Postfix und ähnlich, was ich nicht als kritisch ansehe, da die meisten Dienste eh als Root laufen.

Ich selbst setze übrigens auf mod_php, jedoch mit eigenem Apachen je Web, davor ein Proxy, der die Anfragen von einer IP an die jeweiligen Apachen unter de System Benutzern verteilt. Da kann man dann auch nur dem User Rechte am sienem Home geben. Das ganze hat aber den Nachteil, dass je Web ein eigner Apache läuft und Speicher braucht, dafür kann man neben mod_php auch andere Module wie mod_perl oder mod_ruby sicher laufen lassen und dem User mehr erlauben (Z.B. Per .htaccess AllowOveride All, ist ja sein Apache). Für Low-Cost Hosting ist das sicher keine Lösung, aber für Kunden die bereit sind dafür zu zahlen (Bzw. mehr als nur PHP möchten), sicher eine saubere Lösung.

MfG AbRaXeS</description>
		<content:encoded><![CDATA[<p>Hallo Matthias,</p>
<p>das Problem das ich bei dem Sticky Bit sehe sind eher die User, die das evt. mal für ein Dir verstellen und dadurch neu angelegte Verzeichnisse Dirs nicht mehr die passenden Berechtigungen haben. Der Apache liefert die dann nicht mehr aus und der User peilt es nicht.</p>
<p>Durch das world-readable können zwar im Prinzip alle User da dran die nicht in der Gruppe Users sind, nur was bleibt noch über, wenn man alle Kunden in der Gruppe hat. Nur noch Systemdienste wie Postfix und ähnlich, was ich nicht als kritisch ansehe, da die meisten Dienste eh als Root laufen.</p>
<p>Ich selbst setze übrigens auf mod_php, jedoch mit eigenem Apachen je Web, davor ein Proxy, der die Anfragen von einer IP an die jeweiligen Apachen unter de System Benutzern verteilt. Da kann man dann auch nur dem User Rechte am sienem Home geben. Das ganze hat aber den Nachteil, dass je Web ein eigner Apache läuft und Speicher braucht, dafür kann man neben mod_php auch andere Module wie mod_perl oder mod_ruby sicher laufen lassen und dem User mehr erlauben (Z.B. Per .htaccess AllowOveride All, ist ja sein Apache). Für Low-Cost Hosting ist das sicher keine Lösung, aber für Kunden die bereit sind dafür zu zahlen (Bzw. mehr als nur PHP möchten), sicher eine saubere Lösung.</p>
<p>MfG AbRaXeS</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Commy</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-24</link>
		<dc:creator>Commy</dc:creator>
		<pubDate>Wed, 10 Aug 2005 07:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-24</guid>
		<description>Hi AbRaXeS,

einfacher und hinreichend sicher sollte dein Hinweis sein. Allerdings bevorzuge ich irgendwie eine Lösung ohne world-readable, auch wenn hier eine bestimmte Gruppe ausgeschlossen ist...

Grüße,

Matthias</description>
		<content:encoded><![CDATA[<p>Hi AbRaXeS,</p>
<p>einfacher und hinreichend sicher sollte dein Hinweis sein. Allerdings bevorzuge ich irgendwie eine Lösung ohne world-readable, auch wenn hier eine bestimmte Gruppe ausgeschlossen ist&#8230;</p>
<p>Grüße,</p>
<p>Matthias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: AbRaXeS</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-23</link>
		<dc:creator>AbRaXeS</dc:creator>
		<pubDate>Tue, 09 Aug 2005 22:23:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-23</guid>
		<description>Was ein nettes Howto!

Was die Filesystem Berechtigungen angeht, so kann man das auch einfacher ohne +s Bit lösen. Wenn alle Web User in der Gruppe users sind, reichen folgende Berechtigungen für das Home des jeweiligen Webs:

Besitzer : Web-User
Gruppe : users

Rechte Besitzer: rwx 
Rechte Gruppe: (keine)
Rechte Andere: rx

Für den User der das Verzeichnis besitz, ist nach dem Prüfen der Besitzer Rechte schluss. Bei allen anderen Web Usern nach dem Prüfen der Gruppe users.
Da der Apache weder Besitzer noch in der Gruppe ist, gelten für ihn die Rechte für andere.

Zu Powerweb hab ich nur eins zu sagen, mod_php mit geteiltem Apache auf Shared Servern ist ganz ganz baba.

In der WHL hab ich noch gelesen das ihr für exec ein extra Dir habt wo ihr Sachen reinpackt die &quot;sicher sind&quot;, z.B. ImageMagick.

Dummerwiese kann man damit jede Text Datei als Grafik ausgeben lassen. Wenn man dann z.B. davon ausgeht, das in dem DocRoot eines Webs z.B. ein Typo3 liegt, kann man sich den Pfad zur typo3conf.php recht einfach zusammenstellen und schon hat man das Paßwort zur DB.

Aber selbst wenn man das Ausführen per system, exec ganz unterbindet, bleiben in PHP noch zig Libs wie z.B. curl über die ähnliches möglich ist.

Mein Fazit also: mod_php nur wenn man alleine auf dem Server ist oder je Web einen eigenen Apachen unter dem User des Webs laufen läßt. Ansonsten PHP per CGI oder auch FastCGI.

Was mich übrgens mal interessieren würde, wie ist das bei Confixx (Nie gesehen ober benutzt), wird da PHP als CGI ausgeführt, oder läuft es da als mod_php unter einem User für alle Webs?

MfG AbRaXeS</description>
		<content:encoded><![CDATA[<p>Was ein nettes Howto!</p>
<p>Was die Filesystem Berechtigungen angeht, so kann man das auch einfacher ohne +s Bit lösen. Wenn alle Web User in der Gruppe users sind, reichen folgende Berechtigungen für das Home des jeweiligen Webs:</p>
<p>Besitzer : Web-User<br />
Gruppe : users</p>
<p>Rechte Besitzer: rwx<br />
Rechte Gruppe: (keine)<br />
Rechte Andere: rx</p>
<p>Für den User der das Verzeichnis besitz, ist nach dem Prüfen der Besitzer Rechte schluss. Bei allen anderen Web Usern nach dem Prüfen der Gruppe users.<br />
Da der Apache weder Besitzer noch in der Gruppe ist, gelten für ihn die Rechte für andere.</p>
<p>Zu Powerweb hab ich nur eins zu sagen, mod_php mit geteiltem Apache auf Shared Servern ist ganz ganz baba.</p>
<p>In der WHL hab ich noch gelesen das ihr für exec ein extra Dir habt wo ihr Sachen reinpackt die &#8220;sicher sind&#8221;, z.B. ImageMagick.</p>
<p>Dummerwiese kann man damit jede Text Datei als Grafik ausgeben lassen. Wenn man dann z.B. davon ausgeht, das in dem DocRoot eines Webs z.B. ein Typo3 liegt, kann man sich den Pfad zur typo3conf.php recht einfach zusammenstellen und schon hat man das Paßwort zur DB.</p>
<p>Aber selbst wenn man das Ausführen per system, exec ganz unterbindet, bleiben in PHP noch zig Libs wie z.B. curl über die ähnliches möglich ist.</p>
<p>Mein Fazit also: mod_php nur wenn man alleine auf dem Server ist oder je Web einen eigenen Apachen unter dem User des Webs laufen läßt. Ansonsten PHP per CGI oder auch FastCGI.</p>
<p>Was mich übrgens mal interessieren würde, wie ist das bei Confixx (Nie gesehen ober benutzt), wird da PHP als CGI ausgeführt, oder läuft es da als mod_php unter einem User für alle Webs?</p>
<p>MfG AbRaXeS</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Commy</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-21</link>
		<dc:creator>Commy</dc:creator>
		<pubDate>Mon, 08 Aug 2005 08:40:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-21</guid>
		<description>Hallo!

Mit der Idee würdest du allerdings lediglich dem Admiin ein wenig Schreibarbeit abnehmen, da ja die open_basedir auch manuell mit dem gleichen Ergebnis konfiguriert werden kann.

Du übersiehst bei deinem Ansatz allerdings, dass mit den Shell-Funktionen (exec, system, etc.) weiterhin fröhlich im System und vor allem in den Verzeichnissen anderer User rumspaziert werden kann.

Matthias</description>
		<content:encoded><![CDATA[<p>Hallo!</p>
<p>Mit der Idee würdest du allerdings lediglich dem Admiin ein wenig Schreibarbeit abnehmen, da ja die open_basedir auch manuell mit dem gleichen Ergebnis konfiguriert werden kann.</p>
<p>Du übersiehst bei deinem Ansatz allerdings, dass mit den Shell-Funktionen (exec, system, etc.) weiterhin fröhlich im System und vor allem in den Verzeichnissen anderer User rumspaziert werden kann.</p>
<p>Matthias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: PowerWeb</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/comment-page-1/#comment-19</link>
		<dc:creator>PowerWeb</dc:creator>
		<pubDate>Mon, 08 Aug 2005 08:03:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.commy.de/?p=33#comment-19</guid>
		<description>Hi,

ich hatte schon vor Monaten mal an folgendes gedacht:

Man sollte PHP mit open_basedir konfigurieren und PHP so patchen,
dass bei der Pruefung von open_basedir vor dem Ausfuehren des
Scriptes, der open_basedir_path immer mit der basedir
des Scriptes ergaenzt wird, sofern es zu einem
definiertem Wilcard passt.

Also open_basedir in der php.ini z.B. auf:
open_basedir = &quot;/home/^:/tmp:/var/tmp&quot;
Nehmen wir an, dass das Script eines virtualhosts gerade unter
/home/kundexy/website/index.php
liegt und dort aufgerufen werden soll.

PHP sieht die ^ und der open_basedir wildcard passt zur
Lage des Scriptes und wird freigeschaltet, sprich das Script
darf dann ueberall in /home/kundexy starten
und dort lesen/schreiben/aufrufen, sofern die sonstigen
Permissions es erlauben.

Somit wird also verhindert, dass ein Script bei Kunde
xy aufgerufen wird und im Bereich von kundex123
&quot;fischen&quot; geht (oder sonstwo im System).
Und mod_php kann weiter als nobody und als module laufen ...

Ich habe mal einen Patch dafuer gemacht, aber der funktioniert
irgendwie nicht 100%.
ftp://ftp.powerweb.de/pub/php/php-dsh.patch

Vielleicht kann mal einer drueber gucken und das verbessern ...


Gruesse, Frank - PowerWeb</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>ich hatte schon vor Monaten mal an folgendes gedacht:</p>
<p>Man sollte PHP mit open_basedir konfigurieren und PHP so patchen,<br />
dass bei der Pruefung von open_basedir vor dem Ausfuehren des<br />
Scriptes, der open_basedir_path immer mit der basedir<br />
des Scriptes ergaenzt wird, sofern es zu einem<br />
definiertem Wilcard passt.</p>
<p>Also open_basedir in der php.ini z.B. auf:<br />
open_basedir = &#8220;/home/^:/tmp:/var/tmp&#8221;<br />
Nehmen wir an, dass das Script eines virtualhosts gerade unter<br />
/home/kundexy/website/index.php<br />
liegt und dort aufgerufen werden soll.</p>
<p>PHP sieht die ^ und der open_basedir wildcard passt zur<br />
Lage des Scriptes und wird freigeschaltet, sprich das Script<br />
darf dann ueberall in /home/kundexy starten<br />
und dort lesen/schreiben/aufrufen, sofern die sonstigen<br />
Permissions es erlauben.</p>
<p>Somit wird also verhindert, dass ein Script bei Kunde<br />
xy aufgerufen wird und im Bereich von kundex123<br />
&#8220;fischen&#8221; geht (oder sonstwo im System).<br />
Und mod_php kann weiter als nobody und als module laufen &#8230;</p>
<p>Ich habe mal einen Patch dafuer gemacht, aber der funktioniert<br />
irgendwie nicht 100%.<br />
<a href="ftp://ftp.powerweb.de/pub/php/php-dsh.patch" rel="nofollow">ftp://ftp.powerweb.de/pub/php/php-dsh.patch</a></p>
<p>Vielleicht kann mal einer drueber gucken und das verbessern &#8230;</p>
<p>Gruesse, Frank &#8211; PowerWeb</p>
]]></content:encoded>
	</item>
</channel>
</rss>
