Setup Apache2 HTTP Server

Die Aufgabe des HTTP-Server ist es, Inhalte über HTTP auszuliefern. Diese als Resourcen bezeichneten Inhalte können statische Dateien, ganze Ordnerstrukturen oder aber auch WEB-Anwendungen sein. Um nicht zwischen statischen Dateien und WEB-Anwendungen unterscheiden zu müssen wird fortan nur noch von WEB-Anwendungen und Resourcen gesprochen. Als Site bezeichnet man die Konfiguration mit der eine Resource über HTTP ausgeliefert werden soll.

Der Apache HTTP Server ist ein flexibel einsetzbarer und mittels Module erweiterbarer WEB-Server. Einige dieser Module werden – wie der HTTP Server von der Apache Software Foundation – quelloffen (Apache httpd SVN) entwickelt. Andere Module gehören nicht zu den Apache-Sourcen, werden aber ebenfalls quelloffen im Internet entwickelt (z.B. Apache mod_authnz_external).

So flexibel wie der WEB-Server einsetzbar ist, so steil ist u.U. auch die Lernkurve, die man nehmen muss, um ein einfaches und griffiges Setup für den Apache WEB-Server aufzustellen. Die Debian’s default Apache2 Installation stellt ein Konzept dar, auf dem auch dieses Setup aufbaut. Das hier vorgestellte Setup eignet sich sehr gut für Intranet Anwendungen. Ein geradliniges Setup wie dies hier ist auch die Grundlage für den sicheren Betrieb eines WEB-Servers im Internet. Auf einige Sicherheitsaspekte wird auch eingegangen und soweit es den Apache Dienst angeht werden diese auch umgesetzt.

Zu diesem Setup existiert ein Script, das alle Setups vornimmt:

$ ${SCRIPT_FOLDER}/apache_setup.sh install

Das Setup besteht aus den folgenden Abschnitten und kann mit dem Script (teilweise) auch einzeln vorgenommen werden:

Die Absicherung eines Hosts, der ins Internet gestellt wird (auch härten genannt) ist nicht Inhalt des hier vorgestellten Setups. Hier wird nur auf den HTTP-Dienst des Apache und dessen Absicherung eingegangen.

Vorsicht

Neben den Anwendungen die über den Apache-Server bereit gestellt werden und die immer potentielle Schwachstellen mit sich bringen, gibt es auf dem Host – den man im Internet betreiben will – meist noch andere Dienste (SMB, FTP usw.) die ggf. abgeschaltet, deinstalliert oder ebenfalls gehärtet werden müssen. Hosts, die im Internet stehen sollten mit einer Firewall (Paketfilter) ausgestattet werden, wovon iptables und ipv6tables wohl die bekanntesten Vertreter sind (siehe netfiltering.org).

Nachdem nun geklärt ist, was nicht Inhalt dieses Setups ist, soll auf die Debian’s default Apache2 Installation eingegangen werden. Diese Infrastruktur ist auch die Basis des hier vorgestellten Konzepts.