Apache-Server gegen Attacken schützen

Workshop - Linux-Webserver richtig abschotten

17.11.2011
Von Thomas Hümmler

Risiken von Common Gateway Interface (CGI)

Die Optionsdirektive "IncludesNOEXEC" verhindert SSI, aber nicht das Ausführen von CGI-Skripten. Denn die können mit

<-- #inlcude virtual="Irgendein-CGI-Skript" -->

noch gestartet werden, wenn die Skripte in einem Verzeichnis liegen, das mit der ScriptAlias-Direktive festgelegt wurde. Wenn Sie CGI-Skripte auf dem Webserver einsetzen, sollten Sie dem Programmierer unbedingtes Vertrauen entgegenbringen. Denn CGI-Skripte können beliebige Befehle mit den Benutzerrechten des Webservernutzers ausführen und somit prinzipiell sehr gefährlich sein.

Achtung: Wer CGI-Skripte wie dieses von der Website selfhtml.org nutzen will, sollte genau wissen, was der - in diesem Fall - Perl-Code auf seinem Server macht.
Achtung: Wer CGI-Skripte wie dieses von der Website selfhtml.org nutzen will, sollte genau wissen, was der - in diesem Fall - Perl-Code auf seinem Server macht.

Darüber hinaus laufen alle CGI-Skripte mit denselben Benutzerrechten und können sich daher gegenseitig ins Gehege kommen. Hier gibt es seit Apache 1.2 zwei Lösungen: suEXEC und CGIWrap.

Mit dem suEXEC-Wrapper laufen jedes CGI-Programm und jede SSI-Direktive nur mit der Benutzer-ID des Webservers. Anfragen an den Wrapper kann der Administrator weiterleiten, indem er innerhalb eines virtuellen Hosts eine SuexecUserGroup definiert, etwa so:

SuexecUserGroup USER GRUPPE

oder mit der UserDir-Direktive Benutzerverzeichnisse festlegt. Die Direktive

UserDir /home/*/webUserDir disabled root

in der Konfiguration definiert zum Beispiel im Home-Verzeichnis jedes Benutzers (*) das web-Verzeichnis für den eigenen Webauftritt. Dieses wird dann im Browser angezeigt, wenn man

http://meinhost.de/~BENUTZER/

eingibt. Ganz wichtig ist die zweite Zeile der Direktive. Dieser Befehl schließt ab der Apache-Version 1.3 das Home-Verzeichnis des Benutzers root explizit aus. Sonst besteht die Gefahr, dass man nach der Eingabe

http://meinhost.de/~root

im Wurzelverzeichnis des Systems landet.