ADC

HTTP-Konfigurationen

Wichtig:

Ab NetScaler Release 13.0 Build 71.x kann eine NetScaler-Appliance HTTP-Anfragen mit großen Header-Größen verarbeiten, um die L7-Anwendungsanforderungen zu erfüllen. Die Header-Größe kann bis zu 120 KB konfigurierbar sein.

HTTP-Konfigurationen für eine NetScaler-Appliance können in einer Entität angegeben werden, die als HTTP-Profil bezeichnet wird, bei der es sich um eine Sammlung von HTTP-Einstellungen handelt. Das HTTP-Profil kann dann mit Diensten oder virtuellen Servern verknüpft werden, die diese HTTP-Konfigurationen verwenden möchten.

Ein Standard-HTTP-Profil kann konfiguriert werden, um die HTTP-Konfigurationen festzulegen, die standardmäßig global auf alle Dienste und virtuellen Server angewendet werden.

Hinweis:

Wenn ein HTTP-Parameter unterschiedliche Werte für Service, virtuellen Server und global aufweist, erhält der Wert der spezifischsten Entität (des Dienstes) die höchste Priorität.

Die NetScaler-Appliance bietet auch andere Ansätze zur Konfiguration von HTTP. Lesen Sie weiter für weitere Informationen.

Der NetScaler unterstützt ein WebSocket-Protokoll, das es Browsern und anderen Clients ermöglicht, eine bidirektionale Vollduplex-TCP-Verbindung zu den Servern herzustellen. Die NetScaler-Implementierung von WebSocket ist RFC 6455 konform.

Hinweis:

Eine NetScaler-Appliance unterstützt die Konfiguration der User Source IP (USIP) -Adresse für die Protokolle HTTP/1.1 und HTTP/2.

Einstellen globaler HTTP-Parameter

Mit der NetScaler-Appliance können Sie Werte für HTTP-Parameter angeben, die für alle NetScaler-Dienste und virtuellen Server gelten. Dies kann geschehen mit:

  • Standard-HTTP-Profil
  • Globaler HTTP-Befehl

Standard-HTTP-Profil

Ein HTTP-Profil mit dem Namen nshttp_default_profile wird verwendet, um HTTP-Konfigurationen anzugeben, die verwendet werden, wenn auf Dienst- oder virtueller Serverebene keine HTTP-Konfigurationen bereitgestellt werden.

Hinweise:

  • Nicht alle HTTP-Parameter können über das Standard-HTTP-Profil konfiguriert werden. Einige Einstellungen werden mit dem globalen HTTP-Befehl vorgenommen (siehe folgenden Abschnitt).

  • Das Standardprofil muss nicht explizit an einen Dienst oder einen virtuellen Server gebunden sein.

So konfigurieren Sie das Standard-HTTP-Profil

  • Geben Sie über die Befehlszeilenschnittstelle an der Eingabeaufforderung Folgendes ein:

    set ns httpProfile nshttp_default_profile …

  • Navigieren Sie auf der GUI zu System > Profile, klicken Sie auf HTTP-Profile und aktualisieren Sie nshttp_default_profile.

Globaler HTTP-Befehl

Ein anderer Ansatz, mit dem Sie globale HTTP-Parameter konfigurieren können, ist der globale HTTP-Befehl. Zusätzlich zu einigen eindeutigen Parametern dupliziert dieser Befehl einige Parameter, die mithilfe eines HTTP-Profils festgelegt werden können. Jede Aktualisierung dieser doppelten Parameter spiegelt sich im entsprechenden Parameter im Standard-HTTP-Profil wider.

Wenn beispielsweise der maxReusePool-Parameter mit diesem Ansatz aktualisiert wird, wird der Wert im maxReusePool-Parameter des Standard-HTTP-Profils (nshttp_default_profile) widergespiegelt.

Hinweis:

Wir empfehlen Ihnen, diesen Ansatz nur für HTTP-Parameter zu verwenden, die im Standard-HTTP-Profil nicht verfügbar sind.

So konfigurieren Sie den globalen HTTP-Befehl

  • Geben Sie über die Befehlszeilenschnittstelle an der Eingabeaufforderung Folgendes ein:

    set ns httpParam …

  • Navigieren Sie auf der GUI zu System > Einstellungen, klicken Sie auf HTTP-Parameter ändern und aktualisieren Sie die erforderlichen HTTP-Parameter.

So konfigurieren Sie ein Ignorieren-Codierungsschema für Connect-Anfrage

Um HTTP/2 zu aktivieren und HTTP/2-Parameter so festzulegen, dass das Codierungsschema in der Verbindungsanforderung ignoriert wird, geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpParam [-ignoreConnectCodingScheme ( ENABLED | DISABLED )]

Beispiel:

set ns httpParam -ignoreConnectCodingScheme ENABLED

So binden Sie das HTTP-Profil über die NetScaler-Befehlszeile an einen virtuellen Server

Konfigurieren Sie das HTTP-Profil zum Löschen von ungültigen TRACE- oder TRACK-Anfragen

Sie können den markTraceReqInval-Parameter aktivieren, um TRACK- und TRACK-Anfragen als ungültig zu markieren. Wenn Sie diese Option zusammen mit der Option dropInvalidReqs für die virtuelle IP-Adresse aktivieren, können Sie einen Client zurücksetzen, der TRACE- oder TRACK-Anfragen an eine NetScaler-Appliance sendet.

So konfigurieren Sie das HTTP-Profil mit der CLI

Geben Sie in der Befehlszeile Folgendes ein:

set ns httpProfile <profile name> [-markTraceReqInval ENABLED | DISABLED ]

Beispiel:

set ns httpProfile profile1 -markTraceReqInval ENABLED

Konfigurieren des HTTP-Profils für eine Dienstgruppe

Geben Sie in der Befehlszeile Folgendes ein:

add serviceGroup <serviceGroupName>@ <serviceType> [-cacheType <cacheType>] [-td <positive_integer>] [-maxClient <positive_integer>] [-maxReq <positive_integer>] [-cacheable ( YES | NO )] [-cip ( ENABLED | DISABLED ) [<cipHeader>]] [-usip ( YES | NO )] [-pathMonitor ( YES | NO )] [-pathMonitorIndv ( YES | NO )] [-useproxyport ( YES | NO )] [-healthMonitor ( YES | NO )] [-sp ( ON | OFF )] [-rtspSessionidRemap ( ON | OFF )] [-cltTimeout <secs>] [-svrTimeout <secs>] [-CKA ( YES | NO )] [-TCPB ( YES | NO )] [-CMP ( YES | NO )] [-maxBandwidth
<positive_integer>] [-monThreshold <positive_integer>] [-state ENABLED DISABLED )][-downStateFlush ( ENABLED | DISABLED )] [-tcpProfileName <string>] [-httpProfileName <string>] [-comment <string>] [-appflowLog ( ENABLED | DISABLED )] [-netProfile <string>] [-autoScale <autoScale> -memberPort <port> [-autoDisablegraceful ( YES | NO )] [-autoDisabledelay <secs>] ] [-monConnectionClose ( RESET | FIN )]

<!--NeedCopy-->

Beispiel:

add serviceGroup Service-Group-1 HTTP -maxClient 0 -maxReq 0 -cip ENABLED -usip NO -useproxyport YES -cltTimeout 200 -svrTimeout 300 -CKA NO -TCPB NO -CMP NO -httpProfileName profile1

Konfigurieren Sie das HTTP-Profil mit der NetScaler GUI

Führen Sie das folgende Verfahren aus, um TRACE oder TRACK ungültige Anfragen zu markieren.

  1. Melden Sie sich bei der NetScaler-Appliance an und navigieren Sie zu Konfiguration > System > Profile.
  2. Klicken Sie auf der Registerkarte HTTP-Profile auf Hinzufügen.
  3. Wählen Sie auf der Seite HTTP-Profil erstellen die Option TRACE-Anfragen als ungültig markieren aus.
  4. Klicken Sie auf Erstellen.

Festlegen von dienst- oder virtuellen serverspezifischen HTTP-Parametern

Mithilfe von HTTP-Profilen können Sie HTTP-Parameter für Dienste und virtuelle Server angeben. Sie müssen ein HTTP-Profil definieren (oder ein integriertes HTTP-Profil verwenden) und das Profil mit dem entsprechenden Dienst und dem entsprechenden virtuellen Server verknüpfen.

Hinweis:

Sie können auch die HTTP-Parameter von Standardprofilen gemäß Ihren Anforderungen ändern.

So geben Sie HTTP-Konfigurationen auf Service- oder virtuelle Serverebene mit der Befehlszeilenschnittstelle an

Führen Sie an der Eingabeaufforderung folgende Schritte aus:

  1. Konfigurieren Sie das HTTP-Profil.

    set ns httpProfile <profile-name>...

  2. Binden Sie das HTTP-Profil an den Dienst oder den virtuellen Server.

    So binden Sie das HTTP-Profil an den Dienst:

set service <name> .....

Beispiel:

> set service service1 -httpProfileName profile1
<!--NeedCopy-->

So binden Sie das HTTP-Profil an den virtuellen Server:

set lb vserver <name> .....

Beispiel:

> set lb vserver lbvserver1 -httpProfileName profile1
<!--NeedCopy-->

So geben Sie HTTP-Konfigurationen auf Dienstebene oder virtuelle Serverebene mit der GUI an

Führen Sie an der GUI Folgendes aus:

  1. Konfigurieren Sie das HTTP-Profil.

    Navigieren Sie zu System > Profile > HTTP-Profile und erstellen Sie das HTTP-Profil.

  2. Binden Sie das HTTP-Profil an den Dienst oder den virtuellen Server.

    Navigieren Sie zu Traffic Management > Load Balancing > Dienste/Virtuelle Server und erstellen Sie das HTTP-Profil, das an den Service/virtuellen Server gebunden sein muss.

Integrierte HTTP-Profile

Zur Vereinfachung der Konfiguration bietet der NetScaler einige integrierte HTTP-Profile. Überprüfen Sie die aufgelisteten Profile und verwenden Sie sie so, wie es ist, oder ändern Sie sie an Ihre Anforderungen. Sie können diese Profile an die erforderlichen Dienste oder virtuellen Server binden.

Eingebautes Profil Beschreibung
nshttp_default_profile Stellt die standardmäßigen globalen HTTP-Einstellungen auf der Appliance dar.
nshttp_default_strict_validation Einstellungen für Bereitstellungen, die eine strikte Validierung von HTTP-Anfragen und -Antworten erfordern.

Beispiel für HTTP-Konfigurationen

Beispiele für Beispiele für eine Befehlszeilenschnittstelle, um Folgendes zu konfigurieren:

  • HTTP-Band-Statistiken
  • WebSocket-Verbindungen

HTTP-Band-Statistiken

Geben Sie die Bandgröße für HTTP-Anfragen und -Antworten an.

> set protocol httpBand reqBandSize 300 respBandSize 2048
Done
> show protocol httpband -type REQUEST
<!--NeedCopy-->

WebSocket-Verbindungen

Aktivieren Sie WebSocket für das erforderliche HTTP-Profil.

> set ns httpProfile http_profile1 -webSocket ENABLED
Done
> set lb vserver lbvserver1 -httpProfileName profile1
Done
<!--NeedCopy-->

Konfigurieren Sie die NetScaler-Appliance so, dass der Upgrade-Header gelöscht oder an den Backend-Server übergeben wird

Der Parameter PassProtocolUpgrade im HTTP-Profil verhindert Angriffe auf die Backend-Server. Abhängig vom Status dieses Parameters wird der Upgrade-Header in der an den Back-End-Server gesendeten Anfrage übergeben oder vor dem Senden der Anfrage gelöscht.

  • Wenn der Parameter PassProtocolUpgrade aktiviert ist, wird der Upgrade-Header an den Back-End-Server übergeben. Der Server akzeptiert die Upgrade-Anfrage und benachrichtigt sie in seiner Antwort.
  • Wenn der Parameter deaktiviert ist, wird der Upgrade-Header gelöscht und die verbleibende Anfrage wird an den Backend-Server gesendet.

Der Parameter passProtocolUpgrade wird den folgenden Profilen hinzugefügt:

  • nshttp_default_profile - standardmäßig aktiviert
  • nshttp_default_strict_validation - standardmäßig deaktiviert
  • nshttp_default_internal_apps - standardmäßig deaktiviert
  • nshttp_default_http_quic_profile − standardmäßig aktiviert

Wir empfehlen Ihnen, den Parameter PassProtocolUpgrade standardmäßig auf disabled zu setzen.

Stellen Sie den PassProtocolUpgrade-Parameter über die CLI ein

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpProfile <name> [-passProtocolUpgrade ( ENABLED | DISABLED )]

Beispiel:

set ns httpProfile profile1 -passProtocolUpgrade ENABLED

Stellen Sie den PassProtocolUpgrade-Parameter mithilfe der GUI ein

  1. Navigieren Sie zu System > Profile > HTTP-Profile.
  2. Erstellen oder bearbeiten Sie ein HTTP-Profil.
  3. Wählen Sie Pass Protocol Upgradeaus.

Konfigurieren Sie das HTTP-Profil zur Überprüfung von Host-Headern

Ab NetScaler Version 14.1-21.x unterstützt NetScaler die Validierung der Host-Header in den eingehenden HTTP-Anfragen, um Host-Header-Injektionen oder Angriffe zu verhindern.

Wenn die Host-Header-Validierung aktiviert ist, werden die folgenden Prüfungen durchgeführt:

  • Die Länge des Host-Headers, der die IP-Adresse oder der DNS-Namensteil des Host-Headers ist, beträgt nicht mehr als 255 Zeichen.
  • Die Portnummer ist, falls angegeben, nicht mehr als 5 Zeichen lang, da die maximale Portnummer 65535 ist.

Wenn der Host-Header die definierten Bedingungen nicht erfüllt, werden solche HTTP-Anfragen verworfen.

Standardmäßig ist die Host-Header-Validierung in Standardprofilen deaktiviert und in sicheren oder strengen HTTP-Profilen aktiviert.

Überprüfen Sie HTTP-Host-Header mit der NetScaler CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpprofile <name> -hostHeaderValidation (ENABLED | DISABLED)
<!--NeedCopy-->

Beispiel:

set ns httpProfile http_profile1 -hostHeaderValidation ENABLED
<!--NeedCopy-->

Validieren Sie HTTP-Host-Header mit der NetScaler-GUI

  1. Navigieren Sie zu System > Profile > HTTP-Profile.
  2. Erstellen oder bearbeiten Sie ein HTTP-Profil.
  3. Wählen Sie auf der Seite HTTP-Profil konfigurieren die Option Host-Header-Validierung aus.