by Nobbie » 20. August 2017 09:55
Ich kenne kein Tutorial über Apache und Sicherheit. Das Problem ist auch deutlich vielschichtiger, als Du momentan annimmst. Nur Apache selbst stellt zunächst kein großes Sicherheitsrisiko dar und auch die HTML Dateien, die man aus dem DocumentRoot ausliefert, sind keine Sicherheitslücke. Insbesondere kann man von außen zunächst auch nur auf den DocumentRoot zugreifen.
Interessanter wird es immer dann, wenn CGI-Scripts ins Spiel kommen, u.a. natürlich auch PHP Scripte. Die sind nicht beschränkt auf den DocumentRoot, sondern die greifen auf das Betriebssystem und alle Geräte zu, meistens mit den Benutzerrechten, mit denen der Apache ausgestattet ist. Da gibt es also theoretisch eine Gefährdung durch infizierten Code, der auf die Betriebssystemebene zugreift.
Dann hat natürlich auch jedes PHP Script, insbesonder die mit Datenbanken arbeiten, seine eigene Rechteverwaltung, beispielweise ein Shopsystem oder eine Wordpress-Installation. Da sollte ja auch nicht jeder Hinz und Kunz als Admin zugreifen können. Und dann entstehen auch noch Sicherheitslücken "von unten nach oben", weil beispielsweise in WordPress auch Plugins installiert werden können, wie ich aus eigener schmerzlicher Erfahrung gelernt habe, ist das ein Riesensicherheitsproblem in WordPress, mir ist zwei mal mein Online Server gehackt worden, inzwischen verzichte ich auf WordPress.
Nun kann man versuchen, Apache und auch das Betriebssystem aufeinander abzustimmen und das ganze auf die WordPress Strukturen abzustimmen, dass bestimmte Dateien und Verzeichnisse mit eingeschränkten Rechten (meistens nur Leserechte) ausgestattet sind. Das ist aber aus meiner Sicht schon halb der falsche Weg, weil es eigentlich eine Sicherheitslücke im WordPress Kontext ist, die man auf einer anderen Ebene beheben soll. Diese Vorgehensweise wird aber vom WordPress Team vorgeschlagen, kann ich ja auch nachvollziehen, dass das so vorgeschlagen wird, aber eigentlich ist das ein fauler Kompromiss, denn eigentlich müßte WordPress sicherstellen, dass keine Trojaner über WordPress auf den Server installiert werden können.
Wie Du siehst, es gibt keine allgemeine Apache Sicherheit und Apache selbst ist auch nur eine Komponente in dem ganzen Scenario. Viel mannigfaltiger sind die möglichen Sicherheitslücken im Umfeld der CGI Scrtips und da kann es keine allgemeinen Tutorials geben, es gibt allenfalls Richtlinien, wie man eigene PHP Scripts halbwegs sicher gestalten kann (die Benutzung bestimmter Funktionen, wenn es um MySQL Zugriffe geht, die mit Anwenderdaten vom Browser bestückt werden), aber es gibt so unendliche viele spezifische Sicherheitslücken, da kann man kein Tutorial verfassen, wie solche Lücken zu vermeiden sind. Und ganz sciwierig ist eben der häufigste Fall, dass man ein fertiges Script (WordPress, Joomla usw.) installiert, da ist man den Entwicklern dieses Scripts ausgeliefert, weil die für Sicherheitslücken verantwortlich sind. Nur Apache macht da die wenigsten Probleme.