Apache-Server gegen Attacken schützen

Workshop - Linux-Webserver richtig abschotten

17.11.2011
Von Thomas Hümmler

Risiken von Server Side Includes (SSI)

CGI-Skripte und SSI (Server Side Includes) bergen einerseits Sicherheitsrisiken. Andererseits sind SSI bei Homepage-Betreibern vor allem deswegen beliebt, weil man mit ihnen schnell dynamische Seiten erzeugen kann. Per SSI kann beispielsweise das Datum abgefragt, ein CGI-Programm gestartet oder sogar ein Shell-Befehl ausgeführt werden. SSI-Direktiven werden direkt von einer HTML-Seite ausgeführt, sobald diese im Browser angefordert wird. SSI muss lediglich mit

Options +Includes

in der Apache-Konfiguration eingeschaltet sein. Dann sind zum Beispiel solche Kommandos innerhalb des HTML-Codes möglich:

<pre>

<!--#exec cmd="Irgendein-CGI-Skript" -->

</pre>

Ein Nachteil von SSI ist, dass alle Dateien zunächst von Apache auf SSI-Inhalte geparst werden - unabhängig davon, ob SSI-Direktiven drinstehen oder nicht. Das erhöht die Serverlast und kann sich vor allem auf Rechnern negativ auswirken, auf denen mehrere Webserver arbeiten, etwa virtuelle Maschinen bei einem Hoster. Dem kann man vorbeugen, indem man den SSI-fähigen Seiten andere Endungen gibt, etwa "shtml", und das in der Konfiguration entsprechend berücksichtigt:

AddType text/html .shtmlAddOutputFilter INCLUDES .shtml

Außerdem empfiehlt es sich, die Option explizit auf ein gewünschtes Verzeichnis anzuwenden. Der Grund: Optionsdirektiven können einander überschreiben. So kann es passieren, dass eine zuvor abgeschaltete Direktive weiter hinten in der Konfiguration wieder eingeschaltet wird.

SSI: Der Wikipedia-Eintrag erläutert die Befehle include, set, echo und if, die man in SSI einsetzen kann.
SSI: Der Wikipedia-Eintrag erläutert die Befehle include, set, echo und if, die man in SSI einsetzen kann.

Eine weitere Möglichkeit: Schalten Sie die Ausführung von Skripten und Programmen aus SSI-fähigen Seiten einfach ab. Ersetzen Sie dazu in der Optionsdirektive "Includes" durch "IncludesNOEXEC".