<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>..:: Commy online ::.. &#187; Arbeit</title>
	<atom:link href="http://www.commy.de/category/arbeit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.commy.de</link>
	<description>Neuigkeiten und Gedanken über Apple, Münster, Stargate und Meinereiner</description>
	<lastBuildDate>Sun, 20 Feb 2011 13:19:42 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Stromausfall in Münster</title>
		<link>http://www.commy.de/2008/05/09/stromausfall-in-munster/</link>
		<comments>http://www.commy.de/2008/05/09/stromausfall-in-munster/#comments</comments>
		<pubDate>Fri, 09 May 2008 12:20:14 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Privat]]></category>

		<guid isPermaLink="false">http://www.commy.de/?p=105</guid>
		<description><![CDATA[Und mal wieder hat es unsere beschauliche Stadt (ach ne, wir sind ja jetzt ein Provinzkaff, wenn es nach den Musikhallenbefürwortern geht) erwischt. Ein großflächiger Stromausfall sorgte dafür, dass ich hier zuhause (Urlaub) erstmal ne halbe Stunde nicht viel machen konnte. Und eigentlich sollte gerade Essen gekocht und Wäsche gewaschen werden. Nunja. In der Firma [...]]]></description>
			<content:encoded><![CDATA[<p>Und mal wieder hat es unsere beschauliche Stadt (ach ne, wir sind ja jetzt ein Provinzkaff, wenn es nach den Musikhallenbefürwortern geht) erwischt. Ein großflächiger Stromausfall sorgte dafür, dass ich hier zuhause (Urlaub) erstmal ne halbe Stunde nicht viel machen konnte. Und eigentlich sollte gerade Essen gekocht und Wäsche gewaschen werden.</p>
<p>Nunja. In der Firma in Emsdetten sprang als Auswirkung kurz die USV an. In der Überwachung ist schön zu sehen, dass für den Bruchteil einer Sekunde um 11:32 Uhr der Strom fehlte. Das war dann doch etwas zu kurz, als das der Diesel hätte anspringen müssen. In vielen Firmen in Münster und den umliegenden Kreisen war dies aber wohl ein Problem und so standen selbst bei einem sehr kurzen Ausfall von nichtmal einer Sekunde die Computer.</p>
<p>Da sind wir mal gespannt, was sonst noch so passiert in Zukunft&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2008/05/09/stromausfall-in-munster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bald gibt es wieder was</title>
		<link>http://www.commy.de/2007/03/10/bald-gibt-es-wieder-was/</link>
		<comments>http://www.commy.de/2007/03/10/bald-gibt-es-wieder-was/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 23:17:57 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Commy online]]></category>

		<guid isPermaLink="false">http://www.commy.de/2007/03/10/bald-gibt-es-wieder-was/</guid>
		<description><![CDATA[Sorry, dass ich so lange nichts geschrieben habe. Soviele Dinge schwirren mir um die Ohren, ein neuer Job, Mikko entwickelt sich rasend schnell&#8230; Über das Wochenende bin ich erstmal nicht im Lande.. Mehr aber in den nächsten Tagen!]]></description>
			<content:encoded><![CDATA[<p>Sorry, dass ich so lange nichts geschrieben habe. Soviele Dinge schwirren mir um die Ohren, ein neuer Job, Mikko entwickelt sich rasend schnell&#8230; Über das Wochenende bin ich erstmal nicht im Lande.. Mehr aber in den nächsten Tagen!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2007/03/10/bald-gibt-es-wieder-was/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ein neues Heim</title>
		<link>http://www.commy.de/2006/07/24/ein-neues-heim/</link>
		<comments>http://www.commy.de/2006/07/24/ein-neues-heim/#comments</comments>
		<pubDate>Mon, 24 Jul 2006 08:32:27 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Commy online]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2006/07/24/ein-neues-heim/</guid>
		<description><![CDATA[Nein, kein tatsächlicher Umzug, aber ein virtueller. Nach langem Hin und Her mache ich nun endlich Nägel mit Köpfen und werde meinen eigenen Server, den ich derzeit bei Globe stehen habe, ein wenig umbauen. Seit ich Xen kenne, war mir dabei klar, dass der neue Server irgendeine Form von Virtualisierung bekommen sollte. Jetzt am Wochenende [...]]]></description>
			<content:encoded><![CDATA[<p>Nein, kein tatsächlicher Umzug, aber ein virtueller. Nach langem Hin und Her mache ich nun endlich Nägel mit Köpfen und werde meinen eigenen Server, den ich derzeit bei <a target="_blank" href="http://www.globe.de">Globe</a> stehen habe, ein wenig umbauen.</p>
<p>Seit ich <a target="_blank" href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">Xen</a> kenne, war mir dabei klar, dass der neue Server irgendeine Form von Virtualisierung bekommen sollte. Jetzt am Wochenende wollte ich beginnen und stand erstmal wieder vor der Frage, welches Produkt denn nun einzusetzen sei?</p>
<p><img width="200" height="47" align="right" title="OpenVZ-Projekt" id="image52" alt="OpenVZ-Projekt" src="http://blog.commy.de/wp-content/uploads/2006/07/openvz-nn-logo-slogan.png" />Xen oder OpenVZ hieß es schließlich und ich habe mich nun für <a target="_blank" href="http://openvz.org/">OpenVZ</a> entschieden. Für meine Zwecke einer homogenen Serverlandschaft ist OpenVZ absolut ausreichend und bietet &#8211; so die verschiedenen Quellen &#8211; auch in Punkto Performance und Bedienbarkeit ein paar Vorteile gegenüber Xen.</p>
<p><span id="more-51"></span> <strong>Doch warum überhaupt eine Virtualisierung?</strong></p>
<p>Ich denke mal die Geschichte meiner Jadzia ist ziemlich ähnlich dem, was mit anderen Servern passiert. Man richtet sich irgendwann mal einen dedizierten Server ein und mehr und mehr kommen neue Dienste auf die Maschine, bis sich schließlich Webserver, Mailserver, Nameserver und Telefonanlage (und das ist noch der günstigste Fall) auf ein und derselben Maschine tummeln.</p>
<p>Und damit beginnen die Probleme. Man nimmt sich vor an einem Abend mal ein Update des Systems zu machen. Pustekuchen. Nach fünf Stunden Arbeit funktionieren manche Pakete dann immer noch nicht wie sie sollen. Gerne und gerade passiert dies auch im Zusammenhang mit der Tatsache, dass man für ein bestimmtes Feature die neuesten Softwareversionen benötigt und die &#8220;instabilen&#8221; Pakete installiert. Dann darf man die eben genannte Zeit gerne verdoppeln&#8230;</p>
<p>Von der fehlenden Sicherheit natürlich ganz zu schweigen. Ich hänge zwar hinter einer prima <a target="_blank" href="http://www.stein-security.de/htcms/produkte/enterprise.html">Security-Appliance</a> mit Firewall, IPS und dem ganzen Zipp und Zapp, aber Sicherheitslücken tauchen immer wieder auf und es ist wie in allen Lebenslagen ein Wettrennen zwischen Jäger und Gejagtem, dass das IPS eventuelle Angriffe erkennt. Kompromitiert nun ein Bösewicht meinen Server, bleiben alle Daten davon unberührt. DAS ist klasse <img src='http://www.commy.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Wie gehe ich nun weiter vor?</strong></p>
<p>Nun, da ich mitlerweile einen spitzen <a target="_blank" href="http://www.apple.com/de/imac/">iMac mit Intel-Prozessor</a> habe, habe ich den Samstag bereits damit verbracht ein neues <a target="_blank" href="http://www.gentoo.org">Gentoo</a> auf einer <a target="_blank" href="http://www.parallels.com/">Parallels-VM</a> einzurichten. Dort habe ich OpenVZ installiert und werden nun die jeweiligen Server einrichten. Ich denke die Vorgehensweise bekommt noch einen eigenen Blog-Eintrag.</p>
<p>Ich werde hoffentlich in den nächsten Tagen zwischendurch immer wieder Zeit finden über meine Fortschritte zu berichten, so dass hier eventuell auch ein kleines How-To entstehen kann, wie ich diesen Umzug gestalte.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2006/07/24/ein-neues-heim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Helfer in der Not</title>
		<link>http://www.commy.de/2006/07/21/helfer-in-der-not/</link>
		<comments>http://www.commy.de/2006/07/21/helfer-in-der-not/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 13:13:09 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Medien]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2006/07/21/helfer-in-der-not/</guid>
		<description><![CDATA[Ich bin ja bei einem Internetprovider tätig und so bekommt man auch hin und wieder Anrufe von Kunden, deren Probleme nicht unbedingt direkt mit den angebotenen Produkten zu tun haben. So hatte ich mich gestern mit einem langjährigen Kunden unterhalten, der eigentlich alles über uns gebucht hat, nur seinen Internetzugang nicht, dessen Tocher auf eine [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin ja bei einem Internetprovider tätig und so bekommt man auch hin und wieder Anrufe von Kunden, deren Probleme nicht unbedingt direkt mit den angebotenen Produkten zu tun haben.</p>
<p>So hatte ich mich gestern mit einem langjährigen Kunden unterhalten, der eigentlich alles über uns gebucht hat, nur seinen Internetzugang nicht, dessen Tocher auf eine zwar alte, aber leider immer noch sehr aktive <a target="_blank" href="http://www.google.com/search?hl=de&#038;client=safari&#038;rls=de-de&#038;q=songtexte-heute&#038;btnG=Suche&#038;lr=">Betrugsmasche</a> hereingefallen ist.</p>
<p><span id="more-49"></span> In diesem speziellen Fall, lockt der Anbieter Menschen zu sich auf die Seiten, die sich von der Aufmachung Songtexte, Hausaufgaben oder Vornamen für ihr neugeborenes Kind versprechen. Lediglich seine Kontaktdaten müsse man zur Registrierung angeben, den Zugriff auf die Datenbank gibt es <span style="font-weight: bold">heute</span> kostenlos.</p>
<p>Bei seriösen Anbietern bedeutet das, man darf sich <span style="font-weight: bold">heute</span> für eine unbegrenzte Zeit kostenfrei anmelden. Nicht so bei unseriösen Anbietern. Diese nehmen das &#8220;<span style="font-weight: bold">heute</span>&#8221; wörtlich und Punkt Mitternacht wird die Rechnung fertig gemacht, zu &#8220;günstigen&#8221; Konditionen von 7,00 € pro Monat bei jährlicher Vorauszahlung.</p>
<p>Was ist nun zu tun, wenn einen eine solche Rechnung überrascht? Erstmal sollte man Ruhe bwahren und genau prüfen, ob man sich überhaupt bei solch einem Verein angemeldet hat. Oftmals berichten Menschen nämlich von Rechnungen, obwohl sie ganz sicher sind, niemals eine solche Dienstleistung in Anspruch genommen zu haben.</p>
<p>Hat man sich dann doch irgendwo angemeldet, sollte man die Gegebenheiten prüfen. Sind Preise, Bedingungen usw. deutlich ausgewiesen oder nur irgendwo versteckt? In diesem Falle begibt sich der Anbieter aufs Glatteis und in Grauzonen. Niemand kann sagen, ob solche &#8220;Preisauszeichnungen&#8221; vor Gericht bestand haben würden.</p>
<p>Eine sehr gute Möglichkeit bietet aber auch die Quelle dieses Unheils: Das Internet selbst. Einfach mal den Firmen oder Angebotsnamen in eine Suchmaschine eingeben und die dann eventuell aufkommenden Foren- und Geschädigtenseiten durchforsten. Gibt es eine Betrugsmasche, kann man sicher sein, dass sich schon bald viele Betroffene im Internet finden und die Besten Strategien ausfuchsen, um unbeschadet aus dieser Sache herauszukommen.</p>
<p>Daher kann man bei der Mehrzahl der Angebote eher davon ausgehen, dass die Anbieter davon ausgehen, dass nur ein kleiner Teil der Rechnungsempfänger tatsächlich bezahlen, weil sie sich durch die aufgebauten Drohkulissen eingeschüchtert fühlen. In diesem Fall kann man es ruhigen Gewissens darauf ankommen lassen und damit rechnen, dass der Anbieter nicht den gerichtlichen Weg einschlagen wird. Schließlich will er ja selbst keine Präzedenzfälle schaffen und mit gewissen Gebühren in Vorleistung treten, wenn die große Gefahr besteht den Prozess zu verlieren.<br />
<strong>Reagieren muss man erst, wenn der gerichtliche Mahnbescheid ins Haus flattert!</strong> Dann aber zügig und auf jeden Fall. Denn versäumt man die Frist steht man in der Schuld des Anbieters und hat keine Möglichkeit mehr, sich vor der Zahlung zu drücken.</p>
<p>Ganz wichtig sollte übrigens noch sein, sich jedes Angebot ganz genau anzuschauen. <strong>Niemand hat etwas zu verschenken</strong> auch und gerade im Internet nicht. Und sämtliche Alarmglocken sollten läuten, wenn man den Anbieter mit Adresse und Geburtsdatum füttern muss, nur um Lyrics seines Lieblingsliedes anzurufen. Auch sollte man sich AGB und Nutzungsbedingen tatsächlich aufmerksam durchlesen und nicht nur abhaken um schnell zum Angebot zu kommen.</p>
<p>Hui, der Artikel ist ja länger geworden als gewollt.. Na hoffen wir mal, dass es hilft <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2006/07/21/helfer-in-der-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manchmal&#8230;</title>
		<link>http://www.commy.de/2005/08/16/manchmal/</link>
		<comments>http://www.commy.de/2005/08/16/manchmal/#comments</comments>
		<pubDate>Tue, 16 Aug 2005 14:00:25 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2005/08/16/manchmal/</guid>
		<description><![CDATA[&#8230;mag ich meinen Job sehr, zb. wenn ich der Telekom erklären darf, wie ein KK so abläuft&#8230; Vielleicht sollte ich das in Zukunft in Rechnung stellen&#8230;]]></description>
			<content:encoded><![CDATA[<p>&#8230;mag ich meinen Job sehr, zb. wenn ich der Telekom erklären darf, wie ein KK so abläuft&#8230; Vielleicht sollte ich das in Zukunft in Rechnung stellen&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/08/16/manchmal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo: Sicherer Webserver mit PHP + FastCGI</title>
		<link>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/</link>
		<comments>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/#comments</comments>
		<pubDate>Sat, 06 Aug 2005 18:14:42 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Commy online]]></category>

		<guid isPermaLink="false">http://blog.commy.de/?p=33</guid>
		<description><![CDATA[Nachdem ich mir die halbe letzte Nacht um die Ohren geschlagen habe und auch direkt heute Morgen an dieses Thema gedacht habe, dachte ich so bei mir, dass ich meine Erkenntnisse und Gedanken eigentlich prima in einem Howto verpacken könnte. Worum geht es eigentlich? Es geht um sichere Webserver. Dabei allerdings weniger um Gefahren von [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mir die halbe letzte Nacht um die Ohren geschlagen habe und auch direkt heute Morgen an dieses Thema gedacht habe, dachte ich so bei mir, dass ich meine Erkenntnisse und Gedanken eigentlich prima in einem Howto verpacken könnte.</p>
<p>Worum geht es eigentlich? Es geht um sichere Webserver. Dabei allerdings weniger um Gefahren von außen, sondern um die Gefahr, die von innen kommt. Zwar gibt es immer mehr Nutzer, die einen eigenen Server verwalten und somit genau kontrollieren können, welche Informationen nach außen dringen, aber noch immer macht das Massenhosting einen Großteil der Homepages aus.</p>
<p>Massenhosting bedeutet, dass ein physikalischer Server von mehreren Homepages gleichzeitig genutzt wird, die allesamt parallel auf dem Server existieren. Zwar ist es kein großes Sicherheitsproblem, wenn die Nutzer per FTP ihre Daten hochladen und über HTTP abrufen können, problematisch wird es aber dann, wenn die hochgeladenen Daten Programme jeglicher Art sind, die auf dem Server ausgeführt werden können.</p>
<p>Gerade mit der unglaublich steigenden Bekanntheit von PHP, stiegen auch die Sicherheitsprobleme. Und ich habe nun einmal einige Gedanken zusammengetragen, wie man einen möglichst sicheren Webserver mit PHP-Unterstützung realisieren kann, da ich bei meiner Suche im Internet bisher leider noch nichts vergleichbares finden konnte.</p>
<p><span id="more-33"></span></p>
<p><strong>Das Problem</strong></p>
<p>Sicherheit steht immer im Gegensatz zur Bequemlichkeit. Eine Alarmanlage im Haus bringt große Sicherheit, stört mich aber sehr, wenn ich in der Nacht etwas erledigen muss und sie erst deaktivieren muss. Bodyguards bringen mir auch große Sicherheit nur schirmen sie mich eventuell unnötig ab und ich habe kaum noch Privatspäre.</p>
<p>Daher muss ein Kompromiss gefunden werden, der zum einen eine gute Sicherheit bietet, zum anderen aber auch dem Kunden sowenig Schwierigkeiten macht wie nur möglich.</p>
<p>Das grundlegende Problem ist folgendes:</p>
<p>Die meisten Webserver, auf denen PHP als Scriptsprache angeboten wird, nutzen das PHP-Modul für den Apache. Dieses Modul wird zentral in den Apache-Webserver eingebunden und steht danach allen Homepages, respektive Virtual-Hosts, zur Verfügung. Der Vorteil: Die Ausführung der PHP-Programme ist sehr schnell und die Konfiguration ist sehr einfach. Außerdem sind die PHP-Programme in dieser Konfiguration sehr flexibel und können nahezu jegliche Arbeiten verrichten, die gefordert werden.</p>
<p>Genau hier liegt das Problem. PHP-Programme, die über das Apache-Modul ausgeführt werden, werden im Linux/Unix-System unter dem Benutzer ausgeführt, unter dem auch der Apache ausgeführt wird. Natürlich muss der Apache auf sämtliche Dateien zugreifen können, die er an die Besucher der Internetseiten ausliefern möchte. Das bedeutet, sämtliche Dateien, die ausgeliedert werden sollen oder als PHP-Programm ausgeführt werden sollen, müssen für den Apache lesbar sein. </p>
<p>Im Umkehrschluss bedeutet das dann, ein PHP-Script, egal an welcher Stelle im System, welches über das Internet aufgerufen wird, hat Zugriff auf sämtliche Dateien, die vom Apache gelesen oder vom PHP-Modul ausgeführt werden sollen. Das umschließt die PHP-Programme selbst im Quelltext (jemand anderes kann also das geistige Eigentum stehlen), .inc-Dateien, die zb. Passwörter für den SQL-Zugriff enthalten oder .htpasswd-Dateien, die von Apache zum Schutz von Verzeichnissen genutzt werden.</p>
<p>Und genau diese Sicherheitslücke werden wir uns nun vornehmen.</p>
<p><strong>Der Weg</strong></p>
<p>Es gibt einige Möglichkeiten, das Problem zu lösen:</p>
<ol>
<li><strong>PHP wird nicht mehr angeboten:</strong> Zugegeben, ein drastischer Schritt, den kein Anbieter von Webhosting gehen wird, aber sicher der wirksamste <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><strong>Safe-Mode:</strong> Safe-Mode sind verschiedene Funktionen innerhalb von PHP, die diese Sicherheitsprobleme gezielt angehen sollen. Zwei Funktionen werde ich in meiner Lösung einsetzen. Generell ist der Safe-Mode allerdings eher unwirksam, da er mehr Probleme erzeugt, denn löst. So streuben sich einige sehr bekannte PHP-Applikationen unter Safe-Mode zu laufen, da zb. populäre Funktionen, wie der Upload von Dateien immer wieder zu Problemen führen.</li>
<li><strong>abgespeckter Safe-Mode + disable_functions: </strong> Dies dürfte die beste Lösung für Administratoren sein, die einigermaßen &#8220;humane&#8221; Kunden haben. Der Safe-Mode wird generell ausgeschaltet. Mit der open_basedir-Richtlinie setzt man die PHP-Funktionen für den Dateizugriff auf das eigene Verzeichnis fest, so dass hier nur noch Dateien der eigenen Homepage angezeigt werden können. Schließlich werden mit disable_functions alle PHP-Funktionen ausgeschaltet, die normale Unix-Befehle ausführen können und somit dennoch fremde Dateien ausspionieren können.
<p>Leider gibt es hier allerdings auch den Haken, dass manche Applikationen diese Funktionen zwingend benötigen, da sie auf externe Software angewiesen sind. Ein Beispiel ist Gallery. Hinzu kommt, dass disable_functions leider nur sehr unflexibel ist, da es nur global definiert werden kann.</li>
<li><strong>PHP-CGI + suexec: </strong> Fast meine Lösung. PHP wird als externe Software über einen sog. suexec-wrapper ausgeführt. Die genaue Bedeutung kommt später. Allerdings bietet diese Lösung eine generell schlechtere Performance als die Nutzung von PHP als Modul.</li>
</ol>
<p><strong>Die Lösung</strong></p>
<p>Zunächst, warum PHP als CGI ausführen?</p>
<p>Nun, zusammen mit suexec wird PHP als der Benutzer ausgeführt, dem der virtuelle Webserver gehört. Das bedeutet natürlich, dass ich nur auf Dateien Zugriff habe, die ich mit meinen eigenen Berichtungen lesen darf. Die PHP-Scripte meines &#8220;Server-Nachbarn&#8221; werden mit seinen Berechtigungen ausgeführt. Sind die Berechtigungen sorgfältig gesetzt, kann diese Lösung als sicher erachtet werden.</p>
<p>Daher ist zu beachten, dass gerade auf die Berechtigungen ein großes Augenmerk gelegt werden. Diese ganze Lösung ist nämlich dann für die Katz, wenn Dateien trotzdem von jedem gelesen werden können.</p>
<p>Um die Abarbeitung der PHP-Scripte auch schnell zu machen, kommt noch eine Komponente hinzu: <a href="http://www.fastcgi.com">FastCGI</a> FastCGI ist ein Apache-Modul mit sehr guten Caching-Möglichkeiten, bei dem PHP als Server gestartet wird und so die Aufträge schnell abgearbeitet werden können. Es gibt sogar die Möglichkeit, externe PHP-Server zu nutzen und so zb. ein Loadbalancing der PHP-Last zu erreichen.</p>
<p>Dieses Howto richtet sich weniger an die grundlegende Installation von Apache, FastCGI und PHP, da sie sich unter Gentoo, welches ich nutze, recht einfach gestaltet. Wer von Source installiert, findet dazu einige Howtos im Netz, die dann allerdings meiner Meinung nach zuwenig auf die Berechtigungen der Nutzer eingehen. Wichtig ist nur, dass beim Apache die suexec-Möglichkeiten eingebunden werden und PHP mit FastCGI-Unterstützung kompiliert wird.</p>
<p>Unter Gentoo reicht dazu ein:</p>
<p><code>emerge -v apache php-cgi mod_fastcgi</code></p>
<p>Natürlich sollte man sich noch seine entsprechenden USE-Variablen zusammensuchen, gerade PHP bietet da eine sehr umfangreiche Liste:</p>
<p><code>emerge -pv php-cgi</code></p>
<p>Wichtig ist natürlich mitlerweile auch <em>USE=&#8221;apache2&#8243;</em>, da wir für den Apache Version 2 kompilieren werden.</p>
<p>Nach der Installation der drei Komponenten müssen wir in der <em>/etc/conf.d/apache2</em> das FastCGI-Modul aktivieren:</p>
<p><code>APACHE2_OPTS="-D SSL -D DAV -D FASTCGI"</code></p>
<p>Hier ist natürlich nur der Part &#8220;-D FASTCGI&#8221; der notwendige.</p>
<p>FastCGI unterscheidet zwischen drei Arten von Applikationsservern, also zb. drei Arten von PHP-Servern, die in Zukunft die Arbeit machen sollen. </p>
<ol>
<li><strong>statische Server</strong> werden beim Start des Webservers gestartet und stehen dann dauerhaft zur Verfügung.</li>
<li><strong>dynamische Server</strong> werden dann gestartet, wenn eine Anfrage an den Server gestellt wird, die die Ausführung eines PHP-Scripts beinhaltet.</li>
<li><strong>externe Server</strong> können per TCP/UDP angesprochen werden und so zb. freie Resourcen anderer Server mit nutzen.</li>
</ol>
<p>Hier muss man nun entscheiden, ob man virtuelle Server hat, die mit einer hohen Besucherfrequenz einen nutzen aus statischen Servern ziehen würden oder ob man virtuelle Server hat, auf denen nur sehr wenige Besucher sind. Gerade im Massenhosting macht es eher Sinn auf dynamische Server zu setzen, da das Gästebuch des lokalen Taubenzüchtervereins vielleicht einmal pro Monat aufgerufen wird. Natürlich bringt ein dynamischer Server eine leichte Verzögerung bei der <strong>ersten</strong> Anfrage. Ist der Server geladen steht er auch für weitere Anfragen des gleichen Benutzers zur Verfügung, bis er nach einer konfigurierbaren Zeit stirbt.</p>
<p>Da der dynamische Server zunächst Grundlage auch für die statischen Server ist kümmern wir uns erstmal darum. Folgende Zeilen kommen in den VirtualHost der jeweiligen Webservers:</p>
<p><code><br />
ScriptAlias /cgi-bin /var/www/private/blog.commy.de/cgi-bin</p>
<p>AddHandler php-fastcgi .php<br />
<location /cgi-bin/php><br />
   SetHandler fastcgi-script<br />
</location><br />
Action php-fastcgi /cgi-bin/php<br />
DirectoryIndex index.html index.shtml index.cgi index.php<br />
AddType application/x-httpd-php .php</p>
<p>SuexecUserGroup "matthias" "users"<br />
</code></p>
<p>Sämtliche Anfragen nach .php-Dateien werden auf ein Shellscript unter dem relativen Pfad <em>/cgi-bin/php </em>geleitet. Aus diesem Grunde benötigt man natürlich die Definition eines cgi-bin-Verzeichnisses. Ich nutze dafür die <em>ScriptAlias</em>-Angabe, euch stehen natürlich auch die anderen Möglichkeiten zur Verfügung.</p>
<p>Damit der Server auch unter den korrekten Benutzerdaten läuft, benötigt man die <em>SuexecUserGroup</em>-Angabe. Unter Gentoo funktioniert es nicht, das PHP unter dem Apache-Benutzer <em>apache</em> zu starten. Daher sollte man hier ohnehin den jeweiligen Benutzer des Webservers angeben und eine allgemeine Gruppe (alternativ kann man natürlich auch eine Gruppe webuser o.ä. anlegen).</p>
<p>Um PHP nun zu aktivieren, benötigt man nun auch das Shell-Script im cgi-bin-Verzeichnis. Dazu nutzt man folgendes:</p>
<p><code>#!/bin/sh<br />
umask 027<br />
PHPRC="/etc/php/cgi-php4/"<br />
export PHPRC<br />
PHP_FCGI_CHILDREN=4<br />
export PHP_FCGI_CHILDREN<br />
exec /usr/bin/php-cgi</code></p>
<p>Die <em>umask</em>-Angabe werde ich später noch erklären.</p>
<p>PHPRC definiert den Ort, an dem der PHP-Server die PHP-Konfigurationsdateien finden kann. Hiermit ist es also sogar möglich, jedem Kunden zu ermöglichen, mit einer php.ini im entsprechenden Verzeichnis, eigene Parameter des PHP-Servers zu definieren.</p>
<p>PHP_FCGI_CHILDREN definiert die Anzahl von PHP-Instanzen, die initial gestartet werden sollen. Je nach Besucherfrequenz des Servers können dies mehr oder auch weniger sein.</p>
<p>exec startet schließlich PHP. Der Pfad sollte natürlich entsprechend angepasst werden. Hier zeigt sich aber ein weiterer Vorteil von fastcgi; Ohne andere Webserver auf dem Server zu stören, kann hierdurch eine neue PHP-Version getestet oder unterschiedliche PHP-Versionen auf einem physikalischen Server laufen.</p>
<p>In der <em>/etc/apache2/httpd.conf</em> fehlt nun noch die Angabe des zu nutzenden suexec-Wrappers:</p>
<p><code>FastCgiWrapper /usr/sbin/suexec2</code></p>
<p>Möchte man nun statische Server nutzen, richtet man diese unter Angabe des Pfades für das obige Shell-Script und der identischen Benutzer/Gruppen-Angaben mit folgenden Zeilen ein:</p>
<p><code>FastCgiServer /var/www/private/blog.commy.de/cgi-bin/php -user matthias -group users<br />
FastCgiServer /var/www/_SERVICES/cgi-bin/php -user wwwsystem -group users<br />
</code></p>
<p>Mit diesen Zeilen würden dann beim Start von Apache zwei PHP-Server mit jeweils unterschiedlichen Benutzerdaten starten.</p>
<p>Nun wird es spannend. PHP läuft jetzt zwar soweit, aber in den Standardeinstellungen ist es wenig benutzer, weil wir immer noch Sicherheitsprobleme haben. Die können wir jetzt lösen, indem wir einige Dateiberechtigungen ändern.</p>
<p>Durch das suexec haben wir nun erreicht, dass PHP-Dateien und Dateien, die nur von PHP gelesen werden sollen, lediglich vom Benutzer gelesen werden brauchen. Die Gruppe oder alle anderen brauchen die Dateien nicht mehr lesen, was für PHP-Dateien schon einmal ein sehr großer Vorteil ist.</p>
<p>Um nun die größtmögliche Sicherheit zu erhalten, habe ich folgende Berechtigungen erarbeitet:</p>
<p>Es sollten alle Dateien und Verzeichnisse in dem Webserver-Verzeichnis eines Nutzers dem Nutzer gehören (klar). Die Gruppe sollte dem Webserver-Benutzer gehören (im Falle von Gentoo apache). Der Benutzer sollte alles können, die Gruppe sollte nur lesen und alle anderen sollten nichts können. </p>
<p>Das größte Problem sind hierbei Dateien, die durch PHP neu angelegt werden. Standardmäßig bekommen diese Dateien nämlich keine Rechte für Gruppen und alle anderen. Für geheime Daten ist das OK, für Daten die hochgeladen werden und wie bei der Gallery dann zb. resized werden, ist das aber sehr schlecht, da die dann nicht per Webbrowser angezeigt werden können. </p>
<p>Außerdem erhalten diese Dateien die Gruppenzugehörigkeit &#8220;users&#8221;, da wir unter &#8220;users&#8221; ja den PHP-Server laufen haben. </p>
<p>Letzteres können wir verhindern, in dem wir mit</p>
<p><code>chmod -R g+s <verzeichnis></verzeichnis></code></p>
<p>die entsprechenden Verzeichnisse mit dem SetGID-Bit versehen. Somit behalten alle Dateien, die inden Verzechnissen erzeugt werden die entsprechende Gruppenzugehörigkeit.</p>
<p>Das Problem der Berechtigungen haben wir schon gelöst. Die Angabe <em>umask 027</em> im Shell-Script bewirkt, dass neue Dateien mit den entsprechenden Berechtigungen erzeugt werden.</p>
<p>Nun haben wir folgendes erreicht. Dateien gehören dem jeweiligen Benutzer und können so per PHP gelesen und geschrieben werden. Ebenso ist der FTP-Zugriff voll möglich. Die Gruppenzugehörigkeit liegt beim Apache-Server, somit können alle Dateien zwar per Apache gelesen werden, aber die PHP-Scripte, die unter der Gruppe &#8220;users&#8221; laufen, können nicht auf andere Verzeichnisse zugreifen.</p>
<p>Zusätzlich können wir sensible Daten, die für PHP-Scripte benötigt werden, in Dateien auslagern, die nur für den Benutzer lesbar sind. Somit kann  das PHP des Benutzers zwar auf diese Datei zugreifen, Apache aber nicht mehr. </p>
<p>Alle anderen Schutzmechanismen kann der Nutzer mit .htaccess-Dateien selbst herstellen.</p>
<p>Ein Sicherheitsproblem besteht allerdings weiterhin. Es gibt standardmäßig eine Vielzahl von Dateien, die jeder lesen kann. Hier ist zu beachten, dass nicht jeder sie lesen muss. Eine sorgfältige Wahl der Berechtigungen, insbesondere vieler Konfigurationsdateien, ist hier die Lösung. </p>
<p>Größere Sicherheit bietet nur eine chroot-Umgebung, in der der Webserver abgeschlossen läuft. </p>
<p>Ich hoffe dieser Leitfaden hat euch ein wenig geholfen eure Webserver etwas sicherer zu machen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/08/06/howto-sicherer-webserver-mit-php-fastcgi/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Arschtritt &#8211; hostblogger.de</title>
		<link>http://www.commy.de/2005/07/03/arschtritt-hostbloggerde/</link>
		<comments>http://www.commy.de/2005/07/03/arschtritt-hostbloggerde/#comments</comments>
		<pubDate>Sun, 03 Jul 2005 15:59:02 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2005/07/03/arschtritt-hostbloggerde/</guid>
		<description><![CDATA[Manuel Schmitt berichtet regelmäßig aus dem Alltag im Provideralltag. Vorgestern gab es einen Kommentar über eine Verhaltensweise von Kunden, die ich ebenfalls absolut nicht leiden kann. Man hat ein wunderbares Verhältnis zu bestimmten Kunden, bietet einzigartigen Service und dann irgendwann kommt aus heiterem Himmel die Kündigung. Fragt man dann einfach mal nach, kommt öfters das [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hostblogger.de/blog/archives/199-Arschtritt.html">Manuel Schmitt</a> berichtet regelmäßig aus dem Alltag im Provideralltag. Vorgestern gab es einen Kommentar über eine Verhaltensweise von Kunden, die ich ebenfalls absolut nicht leiden kann.</p>
<p>Man hat ein wunderbares Verhältnis zu bestimmten Kunden, bietet einzigartigen Service und dann irgendwann kommt aus heiterem Himmel die Kündigung. Fragt man dann einfach mal nach, kommt öfters das Argument, dass wir ja so teuer wären. </p>
<p>Dabei kann man doch mit uns reden. Überall scheint Handeln zur Zeit <strong>in</strong> zu sein. Nur bei uns scheint die Preisliste Gesetz zu seiin. Natürlich sind nicht alle Preise verhandelbar, aber man sollte sich auch trauen zu fragen. Man findet garantiert immer einen Weg.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/07/03/arschtritt-hostbloggerde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bereitschaftsdienst</title>
		<link>http://www.commy.de/2005/05/26/bereitschaftsdienst/</link>
		<comments>http://www.commy.de/2005/05/26/bereitschaftsdienst/#comments</comments>
		<pubDate>Thu, 26 May 2005 14:04:59 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2005/05/26/bereitschaftsdienst/</guid>
		<description><![CDATA[Feiertag in NRW. Laut Dashboard-Anzeige 29°C warmer Feiertag in NRW. In meiner Wohnung allerdings schön kühl (Altbau, im Winter blöd zu heizen, im Sommer genial). Aber ich muss bereit sein. Als Firma der New-Economy verlieren sämtliche Kunden, denen man seine Dienste in Rechnung stellt, natürlich ca. 10.000 Euro pro Minute, wenn keine E-Mails abgerufen werden [...]]]></description>
			<content:encoded><![CDATA[<p>Feiertag in NRW. Laut Dashboard-Anzeige 29°C warmer Feiertag in NRW. In meiner Wohnung  allerdings schön kühl (Altbau, im Winter blöd zu heizen, im Sommer genial). Aber ich muss bereit sein. </p>
<p>Als Firma der New-Economy verlieren sämtliche Kunden, denen man seine Dienste in Rechnung stellt, natürlich ca. 10.000 Euro pro Minute, wenn keine E-Mails abgerufen werden können oder so. Daher gibt es natürlich eine 24-Stunden Hotline. Und an diesem langen Wochenende mach ich das.</p>
<p>OK, das wird sehr gut entlohnt, ist aber natürlich auch blöd, wenn irgendein Server heute Nacht auf einmal keine Lust mehr hat zu arbeiten. Schauen wir mal <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/05/26/bereitschaftsdienst/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Der obwohl-kein-Kunde-anruft-weil-heute-eh-alle-frei- machen-muss-ich-dennoch-im-Büro-sitzen-Tag geht zuende</title>
		<link>http://www.commy.de/2005/05/06/der-obwohl-kein-kunde-anruft-weil-heute-eh-alle-frei-machen-muss-ich-dennoch-im-buro-sitzen-tag-geht-zuende/</link>
		<comments>http://www.commy.de/2005/05/06/der-obwohl-kein-kunde-anruft-weil-heute-eh-alle-frei-machen-muss-ich-dennoch-im-buro-sitzen-tag-geht-zuende/#comments</comments>
		<pubDate>Fri, 06 May 2005 15:13:06 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Gedanken]]></category>
		<category><![CDATA[Privat]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2005/05/06/der-obwohl-kein-kunde-anruft-weil-heute-eh-alle-frei-machen-muss-ich-dennoch-im-buro-sitzen-tag-geht-zuende/</guid>
		<description><![CDATA[Ok, zugegeben, es haben Kunden angerufen. Und ja, es gab auch einen Notfall. Ein Mandrake-Server, der nicht mehr vernünftig hochfahren wollte und den der Kunde nun in sein Auto gepackt hat, um ihn zuhause durchzuchecken. Aber was will man von solch einem Brückentag schon erwarten. Natürlich ist nicht allzu viel los. Das habe ich heute [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, zugegeben, es haben Kunden angerufen. Und ja, es gab auch einen Notfall. Ein Mandrake-Server, der nicht mehr vernünftig hochfahren wollte und den der Kunde nun in sein Auto gepackt hat, um ihn zuhause durchzuchecken.</p>
<p>Aber was will man von solch einem Brückentag schon erwarten. Natürlich ist nicht allzu viel los. Das habe ich heute morgen schon gemerkt, als ich doch tatsächlich in eine ganz ungewohnte Ampelphase reingerutscht bin, weil so wenig Autos unterwegs waren. Und die Kunden, die angerufen hatten, waren auch ganz dankbar, wenn man etwas ausgiebiger fachsimpeln wollte, als sonst&#8230;</p>
<p>Das Wetter in Münster ist jedenfalls &#8211; nun sagen wir mal &#8211; abwechslungsreich. Ich konnte heute schon Regen- und Hagelschauer, sowie heftige Windböen beobachten. Und jetzt gerade? Alles wieder normal, blanglos, bewölkt, grau&#8230;</p>
<p>Ich stürze mich nun in das verdiente Wochenende, nach diesem so wahnsinnig anstrengenden Tag <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/05/06/der-obwohl-kein-kunde-anruft-weil-heute-eh-alle-frei-machen-muss-ich-dennoch-im-buro-sitzen-tag-geht-zuende/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Komplett veräppelt</title>
		<link>http://www.commy.de/2005/05/03/komplett-verappelt/</link>
		<comments>http://www.commy.de/2005/05/03/komplett-verappelt/#comments</comments>
		<pubDate>Tue, 03 May 2005 14:06:05 +0000</pubDate>
		<dc:creator>Commy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Arbeit]]></category>

		<guid isPermaLink="false">http://blog.commy.de/2005/05/03/komplett-verappelt/</guid>
		<description><![CDATA[Lange, lange, lange musste ich auf Ihn warten, aber in der letzten Woche stand der freundliche Herr unseres lokalen Apple-Händlers endlich vor der Bürotür und präsentierte mir den kleinen, süßen Karton, in dem sich ein kompletter Computer befinden sollte. Der Mac mini schafft es irgendwie auch die eingefleischten Mac-Hasser zu versöhnen und erntete nur positive [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" src='http://www.commy.de/wp-content/thumb-hero20050111.jpg' alt='Mac mini' />Lange, lange, lange musste ich auf Ihn warten, aber in der letzten Woche stand der freundliche Herr unseres <a href="http://www.bense.net">lokalen Apple-Händlers</a> endlich vor der Bürotür und präsentierte mir den kleinen, süßen Karton, in dem sich ein kompletter Computer befinden sollte.</p>
<p>Der <a href="http://www.apple.com/de/macmini/">Mac mini</a> schafft es irgendwie auch die eingefleischten <strong>Mac-Hasser</strong> zu versöhnen und erntete nur positive Resonanz <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Allerdings ist es eigentlich eine Unverschämtheit, was sich <a href="http://www.apple.de">Apple</a> mit der Standard-Speicherausrüstung von lediglich <strong>256 MB</strong> gedacht hat. Ein vernünftiges Arbeiten war jedenfalls nicht möglich.</p>
<p>Wenigstens kamen dann gestern die ersehnten 1024 MB und das Arbeiten macht nun richtig <strong>Spaß</strong>. Immer wieder erstaunlich, wieviel Leistung doch eigentlich durch zu wenig Speicher verbraten werden kann.</p>
<p>Jedenfalls ist nun auch im Büro mein bisheriger Linux-Rechner <strong>rausgeflogen</strong> und ich bin nun auch die restlichen 8 Stunden am Tag <em>veräppelt</em> <img src='http://www.commy.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commy.de/2005/05/03/komplett-verappelt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

