AA_holzindianer_PO-22892-123RF_FranciscoJavierQuintana_Galvan.jpg

© Francisco Javier Quintana Galvàn, 123 RF

Schlanker, sicherer Webserver Hiawatha

Wachsamer Häuptling

Der freie Webserver Hiawatha legt den Fokus auf Sicherheit und geringen Ressourcenverbrauch. Damit eignet er sich besonders für kleinere Web-Projekte, für die Apache zu schwerfällig und komplex erscheint.

Der Entwickler von Hiawatha [1], Hugo Leising, begann 2002 mit der Programmierung eines eigenen Webservers, weil es seinerzeit keinen Vertreter dieser Gattung gab, der seinen Vorstellungen von Sicherheit, Einfachheit und im Umgang mit Ressourcen gerecht wurde. Leisings Bonmot, Apache sei eine fette Kuh mit einer ziemlich hässlichen Konfigurationsdatei, trifft im Jahr 2012 zwar nicht mehr in allen Punkten zu. Dennoch gibt es nach wie vor einen Bedarf an kompakten, einfach zu konfigurierenden Webservern – unter anderem deshalb, viele Web-Anwendungen dann damit punkten können, "out-of-the-box" zu funktionieren, indem Sie den Webserver einfach vorkonfiguriert mitliefern. Auch Hiawatha eignet sich mit seiner kompakten Größe von 620 KByte hervorragend als "Beipack-Lösung".

Der komplett monolithisch aufgebaute Hiawatha sieht ein Laden von Modulen beim Programmstart nicht vor. Seine hohe Geschwindigkeit verdankt Hiawatha der Tatsache, dass der Server ausschließlich Threads verwendet. Hiawatha enthält zudem eine Reihe von Funktionen im Standardumfang, die Sie bei anderen Webservern nachrüsten oder aufwändig konfigurieren müssen, wie etwa Support für IPv6, CGI und FastCGI, XSLT, VirtualHosts oder Basic/Digest-HTTP-Authentifizierung.

Herausragend sind aber vor allem die Sicherheitsfunktionen von Hiawatha, wie der Schutz vor Cross-Site-Scripting (CSS), Cross-Site Request Forgery (CSRF), SQL-Injection-Angriffen und Denial-of-Service-Attacken. Ferner kann der Webserver Clients auf IP-Ebene anhand ihrer Adresse blockieren ("Banning") und lässt sich über einen separaten Port kontrollieren ("Command Channel"). Hiawatha unterstützt außerdem auch URL-Rewriting anhand regulärer Ausdrücke. Allerdings heißt die Funktion bei Hiawatha UrlToolkit. Eine komplette Feature-Liste steht unter [2] zur Verfügung.

Hiawatha in Betrieb nehmen

Hiawatha installieren Sie am besten aus den Quellen. Dazu benötigen Sie an Voraussetzungen neben einem C-Compiler und den Entwicklerversionen der Libc5, Glib2 und Libxslt noch eine aktuelle Cmake-Version. Daneben sollten Sie auch darauf achten, dass OpenSSL installiert ist. Nach dem Herunterladen des Hiawatha-Quellcode-Archivs entpacken sie es mit tar -xfzv hiawatha-8.4.tar.gz, wechseln in das neu entstandene Verzeichnis und starten die Installation mit den Befehlen aus Listing 1.

Listing 1

$ mkdir build
$ cd build
$ sudo cmake ..
$ sudo make install/strip

Bei dieser Minimalversion erhalten Sie zwar elementare Dinge wie SSL-Unterstützung, das UrlToolkit und XSLT-Support, verzichten aber auf ein paar ausgefeiltere Features, wie etwa den Chroot-Support, den Command-Channel oder den Hiawatha-Monitor. Diese binden Sie bei Bedarf beim Aufruf von Cmake über entsprechende Optionen ein (siehe Tabelle "Cmake-Optionen"). Um Hiawatha mit Chroot-Support zu übersetzen, verwenden Sie statt cmake .. beispielsweise cmake -DENABLE_CHROOT=on ... Vergessen Sie aber beim Cmake-Aufruf auf keinen Fall die beiden Punkte, die das Tool anweisen, im darüber liegenden Verzeichnis zu arbeiten.

Cmake-Optionen

Option Vorgabe Funktion
-DENABLE_CACHE=on|off on Cache-Unterstützung
-DENABLE_CHROOT=on|off on Chroot-Support
-DENABLE_COMMAND=on|off off Command-Channel aktivieren
-DENABLE_DEBUG=on|off off Debug-Information ausgeben
-DENABLE_IPV6=on|off on Unterstützung für IPv6
-DENABLE_MONITOR=on|off off Hiawatha-Monitor aktivieren
-DENABLE_RPROXY=on|off on Reverse-Proxy-Support
-DENABLE_SSL=on|off on SSL ermöglichen
-DENABLE_TOOLKIT=on|off on UrlToolkit nutzen
-DENABLE_XSLT=on|off on XSLT-Support

TIPP

Möchten Sie Hiawatha speziell für Debian, Mac OS X oder Windows (via Cygwin) übersetzen, finden Sie im Unterverzeichnis extras spezielle Build-Skripte für die genannten Plattformen, wie etwa make_debian_package.

Hiawatha konfigurieren

Der Hauptvorteil von Hiawatha besteht in seiner einfachen und übersichtlichen Konfiguration. Diese erfolgt in einer einzigen, kompakten Konfigurationsdatei namens hiawatha.conf, die per Default im Verzeichnis /usr/local/etc/hiawatha/ liegt. Abzüglich der auskommentierten Zeilen und der Pfadangaben zu den Log-Files setzt sich die mitgelieferte Datei aus lediglich sieben Einträgen zusammen. Für erste Tests sollten Sie die Default-Konfiguration sichern und entweder eine komplett neue Konfigurationsdatei anlegen oder mit den in der Default-Konfiguration auskommentierten Parametern experimentieren.

Eine Minimalkonfiguration zeigt Listing 2; im Normalfall steht in jeder Zeile genau eine Definition. Eine sogenannte Sektion in geschweiften Klammern ist auch schon das komplexeste Strukturmerkmal der Konfigurationsdatei.

Listing 2

Binding {
  Port = 8080
  Interface = 192.168.0.45
}
WebsiteRoot = /usr/local/var/www/hiawatha
Hostname = localhost

Mit der Binding-Definition (eingeschlossenen in geschweifte Klammern) legen Sie fest, auf welchem Interface und auf welchem Port der Webserver Verbindungen entgegen nimmt. Soll der Webserver auf allen vorhandenen Netzwerkschnittstellen auf Verbindungen warten, lassen Sie die Interface-Angabe einfach weg. Selbstverständlich können Sie auch mehrere Binding-Sektionen einbauen, etwa eine eigene für den SSL-Port 443.

Das bei Apache als DocumentRoot bezeichnete Webserver-Verzeichnis heißt bei Hiawatha schlicht WebsiteRoot. Sie können hierfür zwar jeden beliebigen Ordner auf der Festplatte angegeben, unter /usr/local/var/www/hiawatha liegt aber bereits eine vorbereitete Beispielseite index.html.

Außerdem müssen Sie noch einen Namen oder eine IP-Adresse angeben, unter der sich die Webseite erreichen lässt. Dazu kommt wie bei Apache der Parameter Hostname zum Einsatz. Da Hiawatha wie eingangs erwähnt von Haus aus mit IPv6-Adressen zurecht kommt, stellt es kein Problem dar, eine solche einfach zu verwenden – Sogar das Mischen ist erlaubt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 10/2016: Kryptographie

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 3 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...
windows bootloader bei instalation gelöscht
markus Schneider, 12.09.2016 23:03, 1 Antworten
Hallo alle zusammen, ich habe neben meinem Windows 10 ein SL 7.2 Linux installiert und musste...
Ubuntu 16 LTE installiert, neustart friert ein
Matthias Nagel, 10.09.2016 01:16, 3 Antworten
hallo und guten Abend, hab mich heute mal darangewagt, Ubuntu 16 LTE parallel zu installieren....