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.
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.
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-Wert | Beschreibung |
0 | Deaktivieren Sie "Legacy-WAF" und WAF |
1 | Aktivieren Sie "Legacy-WAF" |
2 | WAF aktivieren |
Ich aktiviere die WAF, wobei InterceptMode auf "2" festgelegt ist, und verwende den Befehl Set-AdcVirtualService , wie in Abbildung 3 dargestellt.
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.
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.
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.
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-Befehl | Beschreibung |
New-OWASPCustomRuleSet | Hochladen einer benutzerdefinierten Regeldatei in den LoadMaster |
Export-OWASPCustomRuleSet | Exportieren/Speichern einer benutzerdefinierten Regeldatei aus dem LoadMaster |
Uninstall-OWASPCustomRuleSet | Deinstallieren einer benutzerdefinierten Regeldatei aus dem LoadMaster |
New-OWASPCustomRuleData | Hochladen einer benutzerdefinierten Regeldatendatei in den LoadMaster |
Export-OWASPCustomRuleData | Exportieren/Speichern einer benutzerdefinierten Regeldatendatei aus dem LoadMaster |
Uninstall-OWASPCustomRuleData | Deinstallieren 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.
Im Befehl Export-OWASPCustomRuleSet exportiere/speichere ich die Datei lokal nach c:\temp\ps_work\exported_rules.conf.
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.
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ß!