Mod qos
mod_qos | |
---|---|
Basisdaten
| |
Entwickler | Apache Software Foundation |
Aktuelle Version | 10 |
Betriebssystem | Cross-platform |
Programmiersprache | C |
Kategorie | Apache-Modul |
Lizenz | GPL License |
http://mod-qos.sourceforge.net/ |
mod_qos ist ein Quality-of-Service (QoS) Modul für den Apache HTTP Server. Es implementiert Mechanismen, um Zugriffe auf Ressourcen eines Web Servers unterschiedlich zu priorisieren und zu steuern.
Beschreibung
Ein Web Server kann nur eine limitiere Anzahl von gleichzeitigen Anfragen verarbeiten. QoS wird verwendet, um sicher zu stellen, dass wichtige Ressourcen auch unter hoher Last verfügbar bleiben, indem Anfragen auf diese Ressourcen höher priorisiert werden, als Anfragen auf weniger wichtige.
mod_qos bietet verschiedene Kontrollmechanismen auf unterschiedlichen Ebenen:
- Pro HTTP Request: mod_qos kontrolliert die Anzahl gleichzeitiger Anfragen auf einen Namensraum (URL). mod_qos kann Anfragen auf Ressourcen niedriger Priorität ablehnen, wenn derer Anzahl zu hoch wird, damit der Web Server weiterhin wichtige Anfragen bearbeiten kann.
- Auf Verbindungsebene: mod_qos kontrolliert die Anzahl der TCP Verbindungen auf den Web Server und kann beispielsweise die Anhalt Verbindungen eines einzelnen Benutzers limitieren.
- Bandbreite: Anfragen auf bestimmte Ressourcen können verlangsamt werden, um die verfügbare Bandbreite nicht voll auszuschöpfen.
- Generische Filter können ungültige Anfragen auf einen Web Server ablehnen.
Das Modul kann speziell ein einem Reverse Proxy hilfreich sein, wo viele verschiedene Ressourcen und Applikationen über einen einzelnen Zugriffspunkt erreichbar sind (möglicher Flaschenhals).
Anwendungsfälle
Langsame Applikation
Bietet ein einzelner Web Server Zugriff auf verschiedene Applikation, so kann sich das Verhalten einer Applikation negativ auf die Verfügbarkeit anderer Applikationen auswirken. Ist beispielsweise eine Applikation (im oben gezeigten Beispiel URL Pfad /ccc) sehr langsam, kann es passieren, dass die viele Anfragen auf diese Applikationen anstauen und so alle Verbindungen zum Web Server blockieren. Andere Applikationen (hier /aaa oder /bbb), die noch einwandfrei funktionieren würden, sind für die Benutzer nicht mehr erreichbar. mod_qos kann in einem solchen Fall die maximale Anzahl gleichzeitiger Anfragen auf die langsame Applikation limitieren, damit die anderen beiden Applikationen verfügbar bleiben.
HTTP Keep-Alive
Die Keep-Alive Erweiterung von HTTP 1.1 erlaubt persistente TCP Verbindungen zwischen Client und Server über die mehrere HTTP Requests ausgeführt werden können. Dies beschleunigt das Laden einer Web Seite im Browser. Ein Nachteil dabei ist, dass währende den Wartezeiten, in denen kein Request verarbeitet wird, auf dem Server trotzdem Ressourcen blockiert sind. mod_qos erlaubt es einem Server Keep-Alive zu unterstützen, solange er noch genügend freie Ressourcen hat, diese Funktion aber zu deaktivieren, falls zu viele Verbindungen zum Server geöffnet werden.
Viele Anfragen auf die selbe URL
mod_qos erleubt die Anzahl gleichzeitiger Anfragen auf eine URL zu limitieren. Weiter kann die maximale Anzahl der Anfragen pro Zeit und auch die maximal erlaubte Bandbreite definiert werden.
Abwehr von Denial of Service (DoS) Attacken
mod_qos kann helfen, einen Web Server vor sogenannten "low-bandwidth denial of service" Attacken zu schützen. Dabei versuchen Angreifer mit Tools wie Slowloris oder LOIC einen Web Server zu blockieren, in dem sie auf offenen TCP nur sehr wenige Daten zum Server senden. mod_qos versucht solche Verbindungen zu unterbinden, in dem es Verbindungen mit zu wenig Datenaustausch schliesst[1].
Geschichte
Der erste Release von mod_qos erschien im Mai 2007. Die Software wurde auf SourceForge.net[2] als Open Source Projekt veröffentlicht. Die erste Version war in der Lage die Anzahl paralleler Requests auf vordefinierte Ressourcen zu limitieren. Nach und nach wurden mehr Funktionen implementiert und einige davon wurden zur Bekämpfung von DoS Attacken eingesetzt[3][4]. Im Jahr 2012 wurde mod_qos in das Software Repository der Linux Distribution Ubuntu aufgenommen[5].
Referenzen
- ↑ mod_qos manual. Abgerufen am 29. November 2012.
- ↑ mod_qos on SourceForge.net. 18. Mai 2007, abgerufen am 24. November 2012.
- ↑ Marcus Spiegel: How To Defend slowloris DDoS With mod_qos. HowtoForge, 15. Juli 2009, abgerufen am 24. November 2012.
- ↑ Charly Kuehnast: Aus dem Alltag eines Sysadmin: Mod_qos gegen Slowloris. Linux Magazin, Mai 2010, abgerufen am 24. November 2012.
- ↑ mod_qos package for Ubuntu. Abgerufen am 24. November 2012.