AA_holzindianer_PO-22892-123RF_FranciscoJavierQuintana_Galvan.jpg

© Francisco Javier Quintana Galvàn, 123 RF

Wachsamer Häuptling

Schlanker, sicherer Webserver Hiawatha

19.07.2012
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
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...