Power(Shell) für Ihren WAF-Einsatz

Veröffentlicht am

Es ist sinnvoll, Skripte zu entwickeln, mit denen Sie Ihren Load Balancer und Ihre Web Application Firewall (WAF) konfigurieren können.  Die Skripte können dabei helfen, diese Dienste in Ihre Netzwerk-Orchestrierung zu integrieren.  Sie sorgen für Konsistenz und ersparen Ihnen die Zeit, die Sie benötigen, um die Befehle nachzuschlagen und sie manuell einzugeben.

Heute werde ich die PowerShell-Befehle für die Kemp LoadMaster WAF demonstrieren. Dazu gehören die Konfiguration eines neuen virtuellen Dienstes mit IP 10.35.56.50, die Zuweisung eines realen Servers mit IP 10.35.56.24 und die Demonstration der WAF-Einstellungen und der zugehörigen PowerShell-Befehle. Ich habe hier die Windows PowerShell (x86) mit dem neuesten PowerShell-Modul verwendet.

Erstellen eines virtuellen Dienstes

Um einen neuen virtuellen Dienst mit der IP-Adresse 10.35.56.50 zu erstellen, verwende ich den Befehl New-AdcVirtualService , wie in Abbildung 1 dargestellt.

Abbildung 1: Erstellen eines virtuellen Diensts

Einen echten Server hinzufügen

Um diesem virtuellen Dienst mit der IP 10.35.56.24 einen realen Server mit der IP 10.35.56.50 zuzuweisen, verwende ich den Befehl New-AdcRealServerwie in Abbildung 2 dargestellt.

Abbildung 2: Zuweisen eines realen Servers zu einem bestimmten virtuellen Dienst

WAF aktivieren

Es stehen drei Einstellungen zum Aktivieren und Deaktivieren der WAF zur Verfügung. Diese werden mit dem Parameter InterceptMode festgelegt und in Tabelle 1 dargestellt.

InterceptMode-WertBeschreibung
0Deaktivieren Sie "Legacy-WAF" und WAF
1Aktivieren Sie "Legacy-WAF"
2WAF aktivieren

Ich aktiviere die WAF, wobei InterceptMode auf "2" festgelegt ist, und verwende den Befehl Set-AdcVirtualService , wie in Abbildung 3 dargestellt.

Abbildung 3: WAF aktivieren

An diesem Punkt können wir den LoadMaster überprüfen und sehen, dass der virtuelle Dienst, der reale Server und die WAF mit dem Standardprofil aktiviert sind, wie in Abbildung 4 dargestellt.

Welche API-Optionen stehen also zur Konfiguration zur Verfügung?

Nachdem ich nun WAF für den virtuellen Dienst aktiviert habe, werde ich alle verfügbaren PowerShell-API-Parameter skizzieren. Um die aktuellen Einstellungen der PowerShell-API-Parameter zu überprüfen, verwende ich den Befehl Get-AdcVirtualService, wie in Abbildung 5 dargestellt.

Abbildung 5: WAF-Einstellungen

In der folgenden Tabelle sind die spezifischen API-Parameter, ihre Beschreibung und der entsprechende Eintrag auf der LoadMaster-Benutzeroberfläche aufgeführt. Alle Einstellungen der LoadMaster-Benutzeroberfläche befinden sich unter Virtual Services -> WAF oder Virtual Services -> WAF -> Erweiterte Einstellungen.

Tabelle 2: PowerShell-API-Parameter

Im Folgenden finden Sie einige Beispielbefehle aus den Parametern in Tabelle 2: Legen Sie die Überwachungsprotokollierung so fest, dass alle überwacht werden

Set-AdcVirtualService -VirtualService 10.35.56.50 -VSPort 80 -VSProtocol tcp -OWASPOpts auditall

Aktivieren der Überprüfung von HTTP POST-Anforderungstexten

Set-AdcVirtualService -VirtualService 10.35.56.50 -VSPort 80 -VSProtocol tcp -OwaspOpts reqdataenable

JSON-Parser deaktivieren

Set-AdcVirtualService -VirtualService 10.35.56.50 -VSPort 80 -VSProtocol tcp -OwaspOpts jsondisable

Blockländer Irland und Afghanistan

Set-AdcVirtualService -VirtualService 10.35.56.50 -VSPort 80 -VSProtocol tcp -BlockedCountries "IE,AF"

Wie verwalte ich die Standardregeln und Workloads?

Der LoadMaster verwendet die OWASP CRS 3.3.2 Regeln. Standardmäßig sind alle Anforderungsregelsätze aktiviert. Die Zuordnung zwischen dem LoadMaster-UI-Regelsatznamen, dem PowerShell-API-Regelsatzbezeichner und den zugehörigen Regeln ist in Tabelle 3 dargestellt.

Tabelle 3: Regelsatzzuordnungen

Alle Anforderungsregelsätze sind standardmäßig aktiviert. Wenn Sie auch über den OwaspOps -> resdataenable Satz verfügen , sind alle Anforderungs- und Antwortregelsätze aktiviert, wie in Abbildung 6 dargestellt.

Um einen bestimmten Regelsatz zu deaktivieren, verwenden Sie den Regelsatzbezeichner aus Tabelle 3 im Befehl Set-AdcVirtualService . In diesem Beispiel deaktiviere ich den Regelsatzbezeichner '911', der Regeln zur Methodenerzwingung auf der LoadMaster-Benutzeroberfläche darstellt.

Dies ist in Abbildung 7 mit der LoadMaster-Benutzeroberfläche nach dem Ausführen des Befehls dargestellt.

Um eine bestimmte Regel zu deaktivieren, verwenden Sie den Regelsatzbezeichner und die zugeordnete Regel-ID aus Tabelle 3 im Befehl Set-AdcVirtualService. In diesem Beispiel deaktiviere ich die Regel-ID "913110" aus dem Regelsatzbezeichner "913", der Scannererkennungsregeln auf der LoadMaster-Benutzeroberfläche darstellt.

Dies ist in Abbildung 8 mit der LoadMaster-Benutzeroberfläche nach dem Ausführen des Befehls dargestellt.

Mehrere Regelsätze mit mehreren Regeln können mit einem einzigen Set-AdcVirtualService-Befehl deaktiviert werden. Zum Beispiel mit den Parametern-RuleSets "913,920" -DisabledRules "913120,913110,920160,920171".

Workloads aus der LoadMaster-Benutzeroberfläche funktionieren auf die gleiche Weise wie RuleSets. Die Drupal-, Workpress-, Nextcloud-, Dokuwiki-, Cpanel- und Xenforo-Workloads können über die PowerShell-API aktiviert/deaktiviert werden. Dies ist in Abbildung 9 mit der LoadMaster-Benutzeroberfläche nach dem Ausführen des Befehls dargestellt.

Um den WordPress-Workload zu deaktivieren, verwenden Sie den Befehl Set-AdcVirtualService mit dem Parameter -ExcludedWorkloads "drupal,nextcloud,dokuwiki,cpanel,xenforo". Dies kann für alle erforderlichen Workloads wiederholt werden.

Was ist mit Regeln, die ich selbst schreibe?

Diese werden auf der LoadMaster-Benutzeroberfläche als benutzerdefinierte Regeln bezeichnet. Regeln können mit Daten verknüpft sein, die als benutzerdefinierte Regeldaten bezeichnet werden. Diese können importiert, exportiert, auf Virtual Services angewendet und über die PowerShell-API aus dem LoadMaster entfernt werden. Dies wird mit mehreren Befehlen erreicht, wie in Tabelle 4 beschrieben.

PowerShell-API-BefehlBeschreibung
New-OWASPCustomRuleSetHochladen einer benutzerdefinierten Regeldatei in den LoadMaster
Export-OWASPCustomRuleSetExportieren/Speichern einer benutzerdefinierten Regeldatei aus dem LoadMaster
Uninstall-OWASPCustomRuleSetDeinstallieren einer benutzerdefinierten Regeldatei aus dem LoadMaster
New-OWASPCustomRuleDataHochladen einer benutzerdefinierten Regeldatendatei in den LoadMaster
Export-OWASPCustomRuleDataExportieren/Speichern einer benutzerdefinierten Regeldatendatei aus dem LoadMaster
Uninstall-OWASPCustomRuleDataDeinstallieren einer benutzerdefinierten Regeldatendatei aus dem LoadMaster

Alle hochgeladenen Dateien mit benutzerdefinierten Regeln und benutzerdefinierten Regeldaten werden auf der LoadMaster-Benutzeroberfläche unter Web Application Service –> Benutzerdefinierte Regeln angezeigt.

Die folgenden Abbildungen (Abbildung 10 und  Abbildung 11) zeigen funktionierende Beispiele für diese Befehle. 

Abbildung 10: Benutzerdefinierte Regeln

Im Befehl Export-OWASPCustomRuleSet exportiere/speichere ich die Datei lokal nach c:\temp\ps_work\exported_rules.conf.

Abbildung 11: Benutzerdefinierte Regeldaten

Um diese benutzerdefinierte Regeldatei für einen bestimmten virtuellen Dienst zu aktivieren, verwende ich den Befehl Set-AdcVirtualService mit dem Parameter -CustomRule.

Dies ist in Abbildung 12 mit der LoadMaster-Benutzeroberfläche nach dem Ausführen des Befehls dargestellt.

Abbildung 12: Angewendete benutzerdefinierte Regel für den virtuellen Dienst
Abbildung 12: Virtueller Dienst mit angewandter benutzerdefinierter Regel

Mehrere benutzerdefinierte Regeldateien können gleichzeitig auf einen Virtuellen Dienst angewendet werden, z.B. -CustomRule 'rule_file_1,rule_file_2'.Benutzerdefinierte Regeln können auf dem Virtuellen Dienst mit -CustomRule " vollständig deaktiviert werden.Laden Sie die neueste Version herunter und legen Sie los!

Ich hoffe, Sie haben diesen Artikel als nützlich empfunden und ich empfehle Ihnen, ihn als Lesezeichen zu speichern, um ihn bei der Konfiguration und Erstellung Ihrer PowerShell-Skripte für Ihre LoadMaster WAF-Implementierungen zu verwenden. Bevor Sie beginnen, empfehle ich Ihnen, den LoadMaster PowerShell-API-Wrapper und die neueste  LoadMaster-Software herunterzuladen. Viel Spaß!

Veröffentlicht am

David O'Connor

David O'Connor ist Produktmanager bei Kemp und arbeitet in Limerick, Irland. Er hat einen Bachelor-Abschluss in Informatik von der University of Limerick. David hat einen Telekommunikationshintergrund mit früheren Positionen in der Entwicklung, im Kundensupport und im Presales mit Schwerpunkt auf dem Product-Market-Fit und der Entwicklung von Technologieprodukten, die Kunden lieben.