Hiawatha Webserver
| Hiawatha Webserver
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Entwickler | Hugo Leisink |
| Erscheinungsjahr | 2002 |
| Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | Unix-Derivate, Linux, macOS, Windows mit Cygwin |
| Programmiersprache | C |
| Kategorie | Webserver |
| Lizenz | GPL (Freie Software) |
| deutschsprachig | ja |
| hiawatha.leisink.net | |
Hiawatha ist ein von Hugo Leisink seit 2002 entwickelter freier Webserver. Er implementiert alle wichtigen Funktionen eines Webservers.
Funktionsumfang / Besonderheiten
Das Programm ist monolithisch aufgebaut und verzichtet im Gegensatz zu den meisten anderen Programmen dieser Kategorie (z. B. Apache HTTP Server, Lighttpd) auf die Möglichkeit, einzelne Module beim Start des Programms zu laden. Ab Version 2.0 nutzt das Programm ausschließlich Threads, dies führt zu einer verbesserten Geschwindigkeit. Die aktuelle Version bietet darüber hinaus einige Funktionen, die nicht zum Standard gehören und sonst teilweise nur durch externe Zusatzprogramme realisiert werden können:
- Unterstützung von XSL Transformation
- Schutz vor SQL-Injection-Angriffen, DoS-Attacken und Cross-Site-Scripting
- Banning: Clients kann auf IP-Ebene anhand ihrer Adresse der Zugriff blockiert werden.
- CommandChannel: Über einen separaten Port kann der Server kontrolliert werden.
- Unterstützung von VirtualHosts
- URL-rewrite anhand regulärer Ausdrücke, wird bei Hiawatha als URL-Toolkit bezeichnet.
- Unterstützung von CGI und FastCGI
- Unterstützung der Basic und Digest Access HTTP-Authentifizierung
- IPv6-Unterstützung
- Überwachung des Datenverkehrs mit Hiawatha Monitor
- Unterstützung von WebSocket-Verbindungen
Eine vollständige Liste der Funktionen findet sich auf der Webseite des Projekts<ref name="FeatureListe"><templatestyles src="Webarchiv/styles.css" />Features. ( vom 29. Mai 2014 im Internet Archive) In: Hiawatha (englisch).</ref>.
Geschichte
Die Entwicklung von Hiawatha begann im Januar 2002, da Hugo Leisink nach eigenen Angaben mit den seinerzeit verfügbaren Webservern nicht zufrieden war. Der Fokus bei der Entwicklung liegt auf Sicherheit, geringem Ressourcenverbrauch sowie einfacher Konfiguration. Nachstehend der Entwicklungsverlauf:
- Version 1.0 (September 2002): Erste funktionale Version
- Version 2.0 (März 2004): Umstellung des Programms auf thread-basierte Ausführung (statt fork)
- Version 3.0 (September 2004): SSL-Unterstützung
- Version 4.0 (Dezember 2005): Unterstützung für den Aufruf externer CGI-Programme
- Version 5.0 (Oktober 2006): Implementierung von FastCGI, erstmalige Integration im FreeBSD-Portstree im Dezember 2006<ref>Hiawatha. bei freshports.org.</ref>, bei OpenBSD im März 2007<ref><templatestyles src="Webarchiv/styles.css" />secure webserver. ( vom 29. Dezember 2011 im Internet Archive) In: openports.se.</ref>
- Version 6.0 (Oktober 2007): Implementierung von IPv6
- Version 7.0 (Februar 2010): Einführung von Hiawatha Monitor, eine auf PHP5, MySQL und Banshee basierende Überwachungsanwendung<ref>monitor (Seite nicht mehr abrufbar, festgestellt im März 2026. Suche im Internet Archive )</ref>, IPv6 steht nun auch unter Windows zur Verfügung
- Version 7.5 (Mai 2011): Unterstützung des Do Not Track HTTP-Header-Feldes<ref>Aktivieren der Funktion „Do Not Track“ (Nicht-Verfolgen Ihrer Internetaktivitäten). In: mozilla.org.</ref>
- Version 8.0 (Januar 2012): CMake ersetzt Autoconf und mbed TLS (zum Zeitpunkt des Erscheinens noch PolarSSL genannt) ersetzt OpenSSL, Einführung des HTTP-Statuscodes: 414 Request-URI Too Long
- Version 9.0 (März 2013): Verwendung eines Thread-Pools (statt Multithreading)
- Version 9.8 (September 2014): Implementierung des WebSocket-Protokolls<ref name="changelog" />
- Version 10.11 (Juli 2020)
Zwischen diesen Hauptversionen gab es regelmäßige Updates z. B. für die Schließung von Sicherheitslücken oder die Beseitigung von Fehlern.<ref name="changelog" /><ref>Fehlerhinweis im Zusammenhang mit squirrelmail. In: nabble.com. (Seite nicht mehr abrufbar, festgestellt im April 2018. Suche im Internet Archive )Vorlage:Toter Link/archivebot</ref>
Sicherheit
Der Hiawatha Webserver bringt eine Reihe von optionalen Sicherheitsfunktionen mit sich, darunter die automatische Erkennung und Abwehr von SQL-Injection-, XSS und CSRF-Angriffen, sowie von DoS-Attacken. Außerdem wird für die Verschlüsselung von HTTPS-Verbindungen die leichtgewichtigere Bibliothek PolarSSL anstelle von OpenSSL verwendet, die zu einer höheren Sicherheit führen soll. PolarSSL (und somit auch Hiawatha) war im Gegensatz zu OpenSSL (und darauf aufbauenden Webservern wie Apache Web Server oder Nginx) nicht von der Heartbleed-Sicherheitslücke betroffen.<ref>Heartbleed – Weblog. In: Hiawatha webserver</ref><ref>PolarSSL Security Advisory 2014-01. (Seite nicht mehr abrufbar, festgestellt im Juni 2025. Suche im Internet Archive ) In: polarssl.org.</ref>
Zwischenzeitlich tauchten jedoch vereinzelt Bugs in Hiawatha auf, welche die Sicherheitsfunktionen vollständig oder in bestimmten Situationen außer Kraft setzten.<ref name="changelog" /> Zuletzt wurde am 31. Mai 2014 bekannt, dass sich die Erkennung von SQL-Injection-Angriffen ab der Version 8.6 durch die Verwendung von SQL-Kommentaren /* */ umgehen ließ.<ref>SQL injection detection patterns – Weblog. In: Hiawatha webserver.</ref> Außerdem funktionierte die Abwehr von XSS-Angriffen nicht für Reverse Proxys. Beide Sicherheitslücken wurden daraufhin in der Version 9.6 geschlossen.<ref name="changelog" />
Verbreitung
Zuverlässige Zahlen über die Anzahl der Hiawatha Installationen sind nicht verfügbar. Da Hiawatha am besten mit Lighttpd vergleichbar ist, spricht er auch überwiegend die Zielgruppe der Administratoren an, die einen möglichst schlanken Webserver einsetzen wollen.
Weblinks
- Offizielle Website (englisch)
- Hiawatha auf GitLab
- Erste Vorstellung bei IT-Toolbox im Dezember 2006 (englisch)
- Artikel über Hiawatha im Admin-Magazin
Quellenangaben
<references> <ref name="changelog"> Hiawatha Changelog. In: Hiawatha. </ref> </references>