<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=ModSecurity%3A_Write_Rules</id>
	<title>ModSecurity: Write Rules - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=ModSecurity%3A_Write_Rules"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;action=history"/>
	<updated>2026-04-21T06:49:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=48305&amp;oldid=prev</id>
		<title>Onnowpurbo at 06:25, 1 June 2017</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=48305&amp;oldid=prev"/>
		<updated>2017-06-01T06:25:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;amp;diff=48305&amp;amp;oldid=47892&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47892&amp;oldid=prev</id>
		<title>Onnowpurbo at 21:36, 11 May 2017</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47892&amp;oldid=prev"/>
		<updated>2017-05-11T21:36:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:36, 11 May 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sumber: https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sumber: https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e of Contents&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1Introduction&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ModSecurity Rule Writing&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3Managing Custom WAF Rules in the LoadMaster&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4Assigning Custom Rules to a Virtual Service&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5Backing Up and Restoring WAF Configuration&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;References&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Document History&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1.1Document Purpose&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1.2Intended Audience&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.1Variables&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.2Operator&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.3Transformation Functions&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.4Actions&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.5Rule Syntax&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.5.1Rule Example 1 – Cross Site Scripting (XSS) Attack&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.5.2Rule Example 2 – Whitelist IP Address&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.5.3Rule Example 3 – Chaining Rules&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.5.4Rule Example 4 – Shellshock Bash Attack&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.6KEMP WUI Settings&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2.7Rule Block Function&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3.1Add a Custom Rule&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3.2Delete/Download a Custom Rule or Data File&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4.1WAF Misconfigured State&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1Introduction&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;KEMP Web Application Firewall (WAF) services are natively integrated in the KEMP LoadMaster. This enables secure deployment of web applications, preventing Layer 7 attacks while maintaining core load balancing services which ensures superior application delivery and security. WAF functionality directly augments the LoadMaster’s existing security features to create a layered defence for web applications - enabling a safe, compliant and productive use of published services.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If you have a WAF license and WAF Support, KEMP provides a number of commercial rules, such as ip_reputation, which can be set to automatically download and update on a daily basis. These commercial rules are targeted to protect against specific threats. The KEMP-provided commercial rules are available when signed up to a WAF subscription.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;You can also upload other rules such as the ModSecurity core rule set which contains generic attack detection rules that provide a base level of protection for any web application.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;You can also write and upload your own custom rules, if required.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;With the WAF-enabled LoadMaster, you can choose whether to use KEMP-provided rules, custom rules which can be uploaded or a combination of both.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For a more detailed overview of the WAF feature, please refer to the WAF section in the KEMP LoadMaster, Product Overview.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For instructions on how to configure the various WAF options in the LoadMaster, refer to the KEMP Web Application Firewall, Feature Description.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1.1Document Purpose&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The purpose of this document is to provide some guidance on how to write your own custom WAF rules. These custom rules can be uploaded to the LoadMaster and assigned to Virtual Services as needed.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1.2Intended Audience&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This document is intended to be read by anyone who is interested in finding out more about how to write custom WAF rules.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2ModSecurity Rule Writing&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2ModSecurity Rule Writing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47639&amp;oldid=prev</id>
		<title>Onnowpurbo: /* Referensi */</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47639&amp;oldid=prev"/>
		<updated>2017-04-15T00:53:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Referensi&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:53, 15 April 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l589&quot;&gt;Line 589:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 589:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Referensi==  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Referensi==  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* https://www.feistyduck.com/books/modsecurity-handbook/modsecurity-rule-writing-workshop.pdf&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://support.kemptechnologies.com/hc/en-us/articles/210399183-WAF-Rule-Writing-Guide&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://support.kemptechnologies.com/hc/en-us/articles/210399183-WAF-Rule-Writing-Guide&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47638&amp;oldid=prev</id>
		<title>Onnowpurbo: Created page with &quot;Sumber: https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing  e of Contents  1Introduction  2ModSecurity Rule Writ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=ModSecurity:_Write_Rules&amp;diff=47638&amp;oldid=prev"/>
		<updated>2017-04-15T00:51:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Sumber: https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing  e of Contents  1Introduction  2ModSecurity Rule Writ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sumber: https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;br /&gt;
&lt;br /&gt;
e of Contents&lt;br /&gt;
&lt;br /&gt;
1Introduction&lt;br /&gt;
&lt;br /&gt;
2ModSecurity Rule Writing&lt;br /&gt;
&lt;br /&gt;
3Managing Custom WAF Rules in the LoadMaster&lt;br /&gt;
&lt;br /&gt;
4Assigning Custom Rules to a Virtual Service&lt;br /&gt;
&lt;br /&gt;
5Backing Up and Restoring WAF Configuration&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
Document History&lt;br /&gt;
&lt;br /&gt;
1.1Document Purpose&lt;br /&gt;
&lt;br /&gt;
1.2Intended Audience&lt;br /&gt;
&lt;br /&gt;
2.1Variables&lt;br /&gt;
&lt;br /&gt;
2.2Operator&lt;br /&gt;
&lt;br /&gt;
2.3Transformation Functions&lt;br /&gt;
&lt;br /&gt;
2.4Actions&lt;br /&gt;
&lt;br /&gt;
2.5Rule Syntax&lt;br /&gt;
&lt;br /&gt;
2.5.1Rule Example 1 – Cross Site Scripting (XSS) Attack&lt;br /&gt;
&lt;br /&gt;
2.5.2Rule Example 2 – Whitelist IP Address&lt;br /&gt;
&lt;br /&gt;
2.5.3Rule Example 3 – Chaining Rules&lt;br /&gt;
&lt;br /&gt;
2.5.4Rule Example 4 – Shellshock Bash Attack&lt;br /&gt;
&lt;br /&gt;
2.6KEMP WUI Settings&lt;br /&gt;
&lt;br /&gt;
2.7Rule Block Function&lt;br /&gt;
&lt;br /&gt;
3.1Add a Custom Rule&lt;br /&gt;
&lt;br /&gt;
3.2Delete/Download a Custom Rule or Data File&lt;br /&gt;
&lt;br /&gt;
4.1WAF Misconfigured State&lt;br /&gt;
 &lt;br /&gt;
1Introduction&lt;br /&gt;
&lt;br /&gt;
KEMP Web Application Firewall (WAF) services are natively integrated in the KEMP LoadMaster. This enables secure deployment of web applications, preventing Layer 7 attacks while maintaining core load balancing services which ensures superior application delivery and security. WAF functionality directly augments the LoadMaster’s existing security features to create a layered defence for web applications - enabling a safe, compliant and productive use of published services.&lt;br /&gt;
&lt;br /&gt;
If you have a WAF license and WAF Support, KEMP provides a number of commercial rules, such as ip_reputation, which can be set to automatically download and update on a daily basis. These commercial rules are targeted to protect against specific threats. The KEMP-provided commercial rules are available when signed up to a WAF subscription.&lt;br /&gt;
&lt;br /&gt;
You can also upload other rules such as the ModSecurity core rule set which contains generic attack detection rules that provide a base level of protection for any web application.&lt;br /&gt;
&lt;br /&gt;
You can also write and upload your own custom rules, if required.&lt;br /&gt;
&lt;br /&gt;
With the WAF-enabled LoadMaster, you can choose whether to use KEMP-provided rules, custom rules which can be uploaded or a combination of both.&lt;br /&gt;
&lt;br /&gt;
For a more detailed overview of the WAF feature, please refer to the WAF section in the KEMP LoadMaster, Product Overview.&lt;br /&gt;
&lt;br /&gt;
For instructions on how to configure the various WAF options in the LoadMaster, refer to the KEMP Web Application Firewall, Feature Description.&lt;br /&gt;
1.1Document Purpose&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to provide some guidance on how to write your own custom WAF rules. These custom rules can be uploaded to the LoadMaster and assigned to Virtual Services as needed.&lt;br /&gt;
1.2Intended Audience&lt;br /&gt;
&lt;br /&gt;
This document is intended to be read by anyone who is interested in finding out more about how to write custom WAF rules.&lt;br /&gt;
2ModSecurity Rule Writing&lt;br /&gt;
&lt;br /&gt;
The ModSecurity Reference Manual should be consulted in any cases where questions arise relating to the syntax of commands: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual&lt;br /&gt;
&lt;br /&gt;
In terms of rule writing, the main directive to know is SecRule, which is used to create rules and thus does most of the work.&lt;br /&gt;
&lt;br /&gt;
Every rule defined by SecRule conforms to the same format, as below:&lt;br /&gt;
&lt;br /&gt;
SecRule VARIABLES OPERATOR \ [TRANSFORMATION_FUNCTIONS,ACTIONS]&lt;br /&gt;
&lt;br /&gt;
Figure 2‑1: Rule Syntax&lt;br /&gt;
&lt;br /&gt;
The rule consists of four parts:&lt;br /&gt;
&lt;br /&gt;
    VARIABLES: Tells the WAF engine where to look in the transactional data.&lt;br /&gt;
    OPERATOR: Tells the WAF engine how to process the variable data.&lt;br /&gt;
    TRANSFORMATION_FUNCTIONS: Tells the WAF engine how to normalize data before an operator is applied.&lt;br /&gt;
    ACTIONS: Tells the WAF engine what to do if a rule matches.&lt;br /&gt;
&lt;br /&gt;
The four parts are explained in the sections below.&lt;br /&gt;
2.1Variables&lt;br /&gt;
&lt;br /&gt;
This specifies which places to check in a HTTP transaction. Examples of variables include:&lt;br /&gt;
&lt;br /&gt;
    ARGS – all arguments including the POST payload&lt;br /&gt;
    REQUEST_METHOD – request method used in the transaction&lt;br /&gt;
    REQUEST_HEADERS – can be used as either a collection of all of the request headers or can be used to inspect selected headers&lt;br /&gt;
    Etc. The full list of variables is available here: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Variables&lt;br /&gt;
&lt;br /&gt;
2.2Operator&lt;br /&gt;
&lt;br /&gt;
This specifies a regular expression, pattern or keyword to be checked in the variable(s). Operators begin with the @ character. The full list of operators is available here: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Operators&lt;br /&gt;
2.3Transformation Functions&lt;br /&gt;
&lt;br /&gt;
There are a number of transformation functions that can be performed, for example:&lt;br /&gt;
&lt;br /&gt;
    Anti-evasion (such as lowercase, normalisePath, removeNulls, replaceComments, compressWhitespace)&lt;br /&gt;
    Decoding (such as base64Decode, hexDecode, jsDecode, urlDecodeUni)&lt;br /&gt;
    Encoding (such as base64Encode, hexEncode)&lt;br /&gt;
    Hashing (such as sha1, md5)&lt;br /&gt;
&lt;br /&gt;
2.4Actions&lt;br /&gt;
&lt;br /&gt;
This specifies what to do if the rule matches. Actions are defined in seven categories, listed below:&lt;br /&gt;
&lt;br /&gt;
    Disruptive – used to allow ModSecurity to take an action, for example allow or block&lt;br /&gt;
    Flow – affect the flow, for example skip&lt;br /&gt;
    Meta-data – used to provide more information about rules&lt;br /&gt;
    Variable – used to set, change and remove variables&lt;br /&gt;
    Logging – used to influence the way logging takes place&lt;br /&gt;
    Special – used to provide access to another class of functionality&lt;br /&gt;
    Miscellaneous – contain actions that do not belong in any other groups.&lt;br /&gt;
&lt;br /&gt;
If no actions are provided, default actions apply as per SecDefaultAction (phase:2,log,auditlog,pass). The full list of actions are available here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Actions&lt;br /&gt;
&lt;br /&gt;
When constructing the rules, you can specify at what phase the rule should run. Specifying the correct phase can be beneficial in order to reduce CPU processing.&lt;br /&gt;
2.5Rule Syntax&lt;br /&gt;
&lt;br /&gt;
The following rule looks at the request Uniform Resource Identifier (URI) and tries to match the regular expression pattern &amp;lt;script&amp;gt; against it. The double quotes are used because the second parameter contains a space:&lt;br /&gt;
&lt;br /&gt;
SecRule REQUEST_URI “@rx &amp;lt;script&amp;gt;”&lt;br /&gt;
&lt;br /&gt;
To split a long line into two, use a single backslash character, followed by a new line:&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS KEYWORD \&lt;br /&gt;
&lt;br /&gt;
phase:1,t:none,block&lt;br /&gt;
&lt;br /&gt;
Multiple variables can be used in a rule as long as they are separated using the pipe character, for example:&lt;br /&gt;
&lt;br /&gt;
SecRule REQUEST_URI|REQUEST_PROTOCOL &amp;lt;script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SecDefaultAction directive is used if no actions are defined for a rule. For example, the following rule:&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS D1&lt;br /&gt;
&lt;br /&gt;
Is equivalent to:&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS D1 phase2:log:auditlog,pass&lt;br /&gt;
2.5.1Rule Example 1 – Cross Site Scripting (XSS) Attack&lt;br /&gt;
&lt;br /&gt;
The following rule is used to avoid XSS attacks by checking for a &amp;lt;script&amp;gt; pattern in the request parameters and header and generates an ‘XSS Attack’ message with a 404 status response.&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS|REQUEST_HEADERS “@rx &amp;lt;script&amp;gt;” id:101,msg: ‘XSS Attack’,severity:ERROR,deny,status:404&lt;br /&gt;
2.5.1.1Variables&lt;br /&gt;
&lt;br /&gt;
Details about the variables in this rule example are in the table below:&lt;br /&gt;
&lt;br /&gt;
Variable&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Definition&lt;br /&gt;
&lt;br /&gt;
ARGS&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Request parameters&lt;br /&gt;
&lt;br /&gt;
REQUEST_HEADERS&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
All of the request headers&lt;br /&gt;
2.5.1.2Operator&lt;br /&gt;
&lt;br /&gt;
“@rx &amp;lt;script&amp;gt;” – Performs a regular expression match of the pattern (in this case &amp;lt;script&amp;gt;) provided as a parameter.&lt;br /&gt;
2.5.1.3Actions&lt;br /&gt;
&lt;br /&gt;
Details of the actions contained in this rule example are provided in the table below:&lt;br /&gt;
&lt;br /&gt;
Action(s)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
id, msg, severity, deny, status&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
These are all of the actions to be performed if the pattern is matched.&lt;br /&gt;
&lt;br /&gt;
id:101&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The unique ID that is assigned to the rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
msg: “XSS Attack”&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The custom message (i.e. XSS Attack) assigned to the rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
Severity:ERROR&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The severity of the rule. Severities include:&lt;br /&gt;
&lt;br /&gt;
EMERGENCY (0)&lt;br /&gt;
&lt;br /&gt;
ALERT (1)&lt;br /&gt;
&lt;br /&gt;
CRITICAL (2)&lt;br /&gt;
&lt;br /&gt;
ERROR (3)&lt;br /&gt;
&lt;br /&gt;
WARNING (4)&lt;br /&gt;
&lt;br /&gt;
NOTICE (5)&lt;br /&gt;
&lt;br /&gt;
INFO (6)&lt;br /&gt;
&lt;br /&gt;
DEBUG (7)&lt;br /&gt;
&lt;br /&gt;
deny&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This stops rule processing and intercepts transaction. This is a disruptive action.&lt;br /&gt;
&lt;br /&gt;
status:404&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This specifies the response status code (404) with actions deny and redirect.&lt;br /&gt;
2.5.2Rule Example 2 – Whitelist IP Address&lt;br /&gt;
&lt;br /&gt;
The following example shows how to whitelist an IP address to bypass the ModSecurity engine:&lt;br /&gt;
&lt;br /&gt;
SecRule REMOTE_ADDR “@ipMatch 192.168.1.101” \&lt;br /&gt;
&lt;br /&gt;
id:102,phase:1,t:none,nolog,pass,ctl:ruleEngine=off&lt;br /&gt;
2.5.2.1Variables&lt;br /&gt;
&lt;br /&gt;
Variable Name:REMOTE_ADDR&lt;br /&gt;
&lt;br /&gt;
Variable Definition: The IP address of the remote client&lt;br /&gt;
2.5.2.2Operator&lt;br /&gt;
&lt;br /&gt;
“@ipMatch 192.168.1.101” – Performs an IPv4 or IPv6 match of the REMOTE_ADDR variable data. In this care – this is the whitelisted IP address.&lt;br /&gt;
2.5.2.3Actions&lt;br /&gt;
&lt;br /&gt;
Action(s)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
id:101&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The unique ID that is assigned to the rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
phase:1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Places the rule (or chain) in Phase 1 processing. There are five phases, including:&lt;br /&gt;
&lt;br /&gt;
Request Headers (1)&lt;br /&gt;
&lt;br /&gt;
Request Body (2)&lt;br /&gt;
&lt;br /&gt;
Response Headers (3)&lt;br /&gt;
&lt;br /&gt;
Response Body (4)&lt;br /&gt;
&lt;br /&gt;
Logging (5)&lt;br /&gt;
&lt;br /&gt;
t:none&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Indicates that no action is used to transform the value of the variable used in the rule before matching. For example, t:utf8toUnicode converts all UTF-8 character sequences to Unicode to assist in input normalization.&lt;br /&gt;
&lt;br /&gt;
nolog&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Prevents rule matches from appearing in both the error and audit logs.&lt;br /&gt;
&lt;br /&gt;
pass&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Continues processing with the next rule in spite of a successful match.&lt;br /&gt;
&lt;br /&gt;
ctl:ruleEngine=off&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This action changes ModSecurity configuration on a transient, per-transaction basis. This only affects the transaction in which the action is executed. In this case, the ModSecurity rule engine is turned off.&lt;br /&gt;
2.5.3Rule Example 3 – Chaining Rules&lt;br /&gt;
&lt;br /&gt;
Chained rules allow for more complex rule matches where a number of different VARIABLES are used to create a better rule and to help prevent false positives. In programming language concepts – think of chained rules as somewhat similar to AND conditional statements. The actions specified in the first portion of the chained rule will only be triggered if all of the variable checks return positive hits. If one aspect of the chained rule is negative, then the entire rule chain is negative. The most unique portion should be specified on the first line – this will reduce the number of “normal” requests that will have to be evaluated against the rest of the chained rule set.&lt;br /&gt;
&lt;br /&gt;
In addition to using a number of different VARIABLES in the one rule, it is also possible to chain more than one rule. Below is an example of chaining two rules. In this example, the first rule checks if the username (ARGS:username) for the string admin (streq admin) using a string comparison. If the first rule holds true, the second rule is activated which denies all requests that are not from the REMOTE_ADDR 192.168.1.111 IP Address (!streq 192.168.1.111).&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS:username “@streq admin” chain,deny&lt;br /&gt;
&lt;br /&gt;
SecRule REMOTE_ADDR “!streq 192.168.1.111”&lt;br /&gt;
2.5.4Rule Example 4 – Shellshock Bash Attack&lt;br /&gt;
&lt;br /&gt;
This section shows an example of the rules requires to mitigate the Shellshock Bash attack. There are two rules needed in this case. Details of both rules are provided in the sections below.&lt;br /&gt;
2.5.4.1First Rule&lt;br /&gt;
&lt;br /&gt;
This is the first rule:&lt;br /&gt;
&lt;br /&gt;
SecRule REQUEST_LINE|REQUEST_HEADERS|REQUEST_HEADERS_NAMES &amp;quot;@contains () {&amp;quot; &amp;quot;phase:1,id:&amp;#039;2100080&amp;#039;,block,t:none,t:utf8toUnicode,t:urlDecodeUni,t:compressWhitespace,msg:&amp;#039;SLR: Bash ENV Variable Injection Attack&amp;#039;,tag:&amp;#039;CVE-2014-6271&amp;#039;,tag:&amp;#039;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271&amp;#039;,tag:&amp;#039;https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/&amp;#039;&amp;quot;&lt;br /&gt;
2.5.4.1.1Variables&lt;br /&gt;
&lt;br /&gt;
Details about the variables in this example rule are provided in the table below:&lt;br /&gt;
&lt;br /&gt;
Variable&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Definition&lt;br /&gt;
&lt;br /&gt;
REQUEST_LINE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This variable holds the complete request line sent to the server (including the request method and HTTP version information).&lt;br /&gt;
&lt;br /&gt;
REQUEST_HEADERS&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
All of the request headers&lt;br /&gt;
&lt;br /&gt;
REQUEST_HEADERS_NAMES&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
All of the names of the request headers.&lt;br /&gt;
2.5.4.1.2Operator&lt;br /&gt;
&lt;br /&gt;
&amp;quot;@contains () {&amp;quot; – Checks the REQUEST_LINE|REQUEST_HEADERS|REQUEST_HEADERS_NAMES variables for the string ‘() {’ and returns true if found.&lt;br /&gt;
2.5.4.1.3Actions&lt;br /&gt;
&lt;br /&gt;
Action(s)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
phase:1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Places the rule (or chain) in Phase 1 processing. There are five phases, including:&lt;br /&gt;
&lt;br /&gt;
Request Headers (1)&lt;br /&gt;
&lt;br /&gt;
Request Body (2)&lt;br /&gt;
&lt;br /&gt;
Response Headers (3)&lt;br /&gt;
&lt;br /&gt;
Response Body (4)&lt;br /&gt;
&lt;br /&gt;
Logging (5)&lt;br /&gt;
&lt;br /&gt;
id:&amp;#039;2100080&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The unique ID that is assigned to this rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
block&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This performs the disruptive action defined by the previous SecDefaultAction. This allows rule writers to request a blocking action without specifying how the blocking is to be done. The SecRuleUpdateActionById directive allows you to override how a rule handles blocking. Please refer to Rule Block Function for further details.&lt;br /&gt;
&lt;br /&gt;
t:none&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Indicates that no action is used to transform the value of the variable used in the rule before matching.&lt;br /&gt;
&lt;br /&gt;
t:utf8toUnicode&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Converts all UTF-8 character sequences to Unicode to assist in input normalization.&lt;br /&gt;
&lt;br /&gt;
t:urlDecodeUni&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Decodes a URL-encoded input string with support for the Microsoft-specific %u encoding.&lt;br /&gt;
&lt;br /&gt;
t:compressWhitespace&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Converts any of the whitespace characters (0x20, \f, \t, \n, \r, \v, 0xa0) to spaces (ASCII 0x20), compressing multiple consecutive space characters into one.&lt;br /&gt;
&lt;br /&gt;
msg:&amp;#039;SLR: Bash ENV Variable Injection Attack&amp;#039;,tag:&amp;#039;CVE-2014-6271&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The custom message (i.e. XSS Attack) assigned to the rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
tag:&amp;#039;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271&amp;#039;&lt;br /&gt;
&lt;br /&gt;
tag:&amp;#039;https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Assigns a tag (category) to a rule (or chain). This is metadata allows easy automated categorization of events. Multiple tags can be specified on the same rule.&lt;br /&gt;
2.5.4.2Second Rule&lt;br /&gt;
&lt;br /&gt;
The second rule is as follows:&lt;br /&gt;
&lt;br /&gt;
SecRule REQUEST_BODY &amp;quot;@contains () {&amp;quot; &amp;quot;phase:2,id:&amp;#039;2100081&amp;#039;,block,t:none,t:utf8toUnicode,t:urlDecodeUni,t:compressWhitespace,msg:&amp;#039;SLR: Bash ENV Variable Injection Attack&amp;#039;,tag:&amp;#039;CVE-2014-6271&amp;#039;,tag:&amp;#039;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271&amp;#039;,tag:&amp;#039;https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/&amp;#039;&amp;quot;&lt;br /&gt;
2.1.4.2.1Variables&lt;br /&gt;
&lt;br /&gt;
Variable Name:REQUEST_BODY&lt;br /&gt;
&lt;br /&gt;
Variable Definition: All of the request body.&lt;br /&gt;
2.1.4.2.2Operator&lt;br /&gt;
&lt;br /&gt;
&amp;quot;@contains () {&amp;quot; – Checks the REQUEST_BODY variable for the string ‘() {’ and returns true if found.&lt;br /&gt;
2.1.4.2.3Actions&lt;br /&gt;
&lt;br /&gt;
Action(s)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
phase:2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Places the rule (or chain) in Phase 2 processing. There are five phases, including:&lt;br /&gt;
&lt;br /&gt;
Request Headers (1)&lt;br /&gt;
&lt;br /&gt;
Request Body (2)&lt;br /&gt;
&lt;br /&gt;
Response Headers (3)&lt;br /&gt;
&lt;br /&gt;
Response Body (4)&lt;br /&gt;
&lt;br /&gt;
Logging (5)&lt;br /&gt;
&lt;br /&gt;
id:&amp;#039;2100081&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The unique ID that is assigned to this rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
block&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
This performs the disruptive action defined by the previous SecDefaultAction. This allows rule writers to request a blocking action, but without specifying how the blocking is to be done. The SecRuleUpdateActionById directive allows you to override how a rule handles blocking. Please refer to Rule Block Function for further details.&lt;br /&gt;
&lt;br /&gt;
t:none&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Indicates that no action is used to transform the value of the variable used in the rule before matching.&lt;br /&gt;
&lt;br /&gt;
t:utf8toUnicode&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Converts all UTF-8 character sequences to Unicode to assist in input normalization.&lt;br /&gt;
&lt;br /&gt;
t:urlDecodeUni&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Decodes a URL-encoded input string with support for the Microsoft-specific %u encoding.&lt;br /&gt;
&lt;br /&gt;
t:compressWhitespace&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Converts any of the whitespace characters (0x20, \f, \t, \n, \r, \v, 0xa0) to spaces (ASCII 0x20), compressing multiple consecutive space characters into one.&lt;br /&gt;
&lt;br /&gt;
msg:&amp;#039;SLR: Bash ENV Variable Injection Attack&amp;#039;,tag:&amp;#039;CVE-2014-6271&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
The custom message (i.e. XSS Attack) assigned to the rule (or chain) in which it appears.&lt;br /&gt;
&lt;br /&gt;
tag:&amp;#039;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271&amp;#039;&lt;br /&gt;
&lt;br /&gt;
tag:&amp;#039;https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Assigns a tag (category) to a rule (or chain). This is metadata which allows easy automated categorization of events. Multiple tags can be specified on the same rule.&lt;br /&gt;
2.6KEMP WUI Settings&lt;br /&gt;
&lt;br /&gt;
In the LoadMaster Web User Interface (WUI), WAF settings can be configured for each individual Virtual Service.&lt;br /&gt;
&lt;br /&gt;
Figure 2‑2: WAF Options&lt;br /&gt;
&lt;br /&gt;
In the WAF Options section of the Virtual Service modify screen (Virtual Services &amp;gt; View/Modify Services &amp;gt; Modify), there is a drop-down list called Default Operation. The Default Operation can be set to Audit Only or Block Mode.&lt;br /&gt;
&lt;br /&gt;
The Audit Only mode of operation sets the SecDefaultAction to phase:2,log,auditlog,pass.&lt;br /&gt;
&lt;br /&gt;
The Block Mode of operation sets the SecDefaultAction to phase:2,log,auditlog,block,drop.&lt;br /&gt;
2.7Rule Block Function&lt;br /&gt;
&lt;br /&gt;
The rule block function is quite complicated. This section offers further explanation of the rule block function. The following example has been taken from https://github.com/Spiderlabs/ModSecurity/wiki/Reference-Manual#block and further explanatory text has been added.&lt;br /&gt;
&lt;br /&gt;
The block action is essentially a placeholder that is intended to be used by rule writes to request a blocking action, but without specifying how the blocking is to be done. The SecDefaultAction command specifies how the blocking is to be done. The block action is a placeholder that will be replaced by the action from the last SecDefaultAction in the same context.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Block Example 1&lt;br /&gt;
&lt;br /&gt;
The following example shows the SecDefaultAction set to deny. The second rule will “deny” because the SecDefaultAction is set to deny.&lt;br /&gt;
&lt;br /&gt;
SecDefaultAction phase:2,deny,id:101,status:403,log,auditlog&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS attack2 phase:2,pass,id:103&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS attack1 phase:2,block,id:102&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Block Example 2&lt;br /&gt;
&lt;br /&gt;
The following example shows the usage of the SecRuleUpdateActionById command to override how a rule handles blocking. The SecRuleUpdateActionById command allows a rule to be reverted back to the previous SecDefaultAction. In this example, the first rule (SecRule ARGS attack1 phase:2,deny,id:1) would deny based on meeting the successful conditions associated with the rule.&lt;br /&gt;
&lt;br /&gt;
By using the SecRuleUpdateActionById against rule Id 1 and indicating block, we are associating the first rule action to that of the SecDefaultAction which is pass. So in the case, the first rule would pass based on meeting the successful conditions associated with the rule; it would not deny.&lt;br /&gt;
&lt;br /&gt;
SecDefaultAction phase:2,pass,log,auditlog&lt;br /&gt;
&lt;br /&gt;
SecRule ARGS attack1 phase:2,deny,id:1&lt;br /&gt;
&lt;br /&gt;
SecRuleUpdateActionById 1 block&lt;br /&gt;
3Managing Custom WAF Rules in the LoadMaster&lt;br /&gt;
3.1Add a Custom Rule&lt;br /&gt;
&lt;br /&gt;
Follow the steps below to find out how to add custom WAF rules in the Web User Interface (WUI) of the LoadMaster:&lt;br /&gt;
&lt;br /&gt;
    In the main menu, select Virtual Services &amp;gt; WAF Settings.&lt;br /&gt;
&lt;br /&gt;
Figure 3‑1: WAF Rule Management&lt;br /&gt;
&lt;br /&gt;
    To upload custom rules, click Choose File in the Installed Rules section.&lt;br /&gt;
&lt;br /&gt;
Individual rules can be uploaded as .conf files, or you can load a package of rules in a tar.gz file.&lt;br /&gt;
&lt;br /&gt;
    Browse to and select the rules to be uploaded.&lt;br /&gt;
    To upload any additional data files, click Choose File in the Custom Rule Data section.&lt;br /&gt;
&lt;br /&gt;
The additional files are for the rules’ associated data files. If using a Tarball, the rules and data files can be packaged together.&lt;br /&gt;
&lt;br /&gt;
    Browse to and select the additional data files.&lt;br /&gt;
    Click Add Ruleset.&lt;br /&gt;
&lt;br /&gt;
The rules will now be available to assign within the Virtual Services modify screen (Virtual Services &amp;gt; View/Modify Services &amp;gt; Modify). Refer to the Section 4 to find out how to configure the Virtual Service.&lt;br /&gt;
3.2Delete/Download a Custom Rule or Data File&lt;br /&gt;
&lt;br /&gt;
Figure 3‑2: Custom Rules&lt;br /&gt;
&lt;br /&gt;
Custom rules and data files can be deleted or downloaded by clicking the relevant buttons.&lt;br /&gt;
&lt;br /&gt;
If a rule is assigned to a Virtual Service, it will not be available for deletion.&lt;br /&gt;
4Assigning Custom Rules to a Virtual Service&lt;br /&gt;
&lt;br /&gt;
Custom rules can be assigned as needed to each individual Virtual Service. Follow the steps below to assign.&lt;br /&gt;
&lt;br /&gt;
    In the main menu of the LoadMaster WUI, select Virtual Services &amp;gt;View/Modify Services.&lt;br /&gt;
&lt;br /&gt;
Figure 4‑1: Section of the Virtual Services screen&lt;br /&gt;
&lt;br /&gt;
    Click Modify on the relevant Virtual Service.&lt;br /&gt;
    Expand the WAF Options section.&lt;br /&gt;
&lt;br /&gt;
Figure 4‑2: WAF Options&lt;br /&gt;
&lt;br /&gt;
    Select Enabled.&lt;br /&gt;
&lt;br /&gt;
A message will be displayed next to the Enabled check box displaying how many WAF-enabled Virtual Services exist and it will also display the maximum number of WAF-enabled Virtual Services that can exist. If the maximum number of WAF-enabled Virtual Services have been reached, the Enabled check box will be greyed out.&lt;br /&gt;
&lt;br /&gt;
    Assign rulesets by ticking them in the Available Rulesets section.&lt;br /&gt;
    Individual rules can be enabled/disabled per ruleset by ticking/unticking them in the box on the right.Rules can be filtered by entering a filter term in the Rule Filter text box.Clicking Clear All will disable all rules for the selected ruleset.Clicking Set All will enable all rules for the selected ruleset.Clicking the Reset button will disable all rules and rulesets.&lt;br /&gt;
    When finished enabling/disabling the relevant rulesets and rules, click the Apply button.&lt;br /&gt;
&lt;br /&gt;
4.1WAF Misconfigured State&lt;br /&gt;
&lt;br /&gt;
Figure 4‑3: WAF Misconfigured status&lt;br /&gt;
&lt;br /&gt;
On the View/Modify Services screen in the LoadMaster WUI, the Status of each Virtual Service is displayed. If the WAF for a particular Virtual Service is misconfigured, for example if there is an issue with a rule file, the status changes to WAF Misconfigured and turns to red. If the Virtual Service is in this state, all traffic is blocked. WAF can be disabled for that Virtual Service to stop the traffic being blocked, if required, while troubleshooting the problem.&lt;br /&gt;
5Backing Up and Restoring WAF Configuration&lt;br /&gt;
&lt;br /&gt;
Figure 5‑1: Back Up and Restore&lt;br /&gt;
&lt;br /&gt;
A backup of the LoadMaster configuration can be taken by going to System Administration &amp;gt; Backup/Restore and clicking Create Backup File.&lt;br /&gt;
&lt;br /&gt;
The configuration can be restored from this screen also. Please keep in mind that the Virtual Service settings can be restored by selecting VS Configuration and the rules can be restored by selecting LoadMaster Base Configuration.&lt;br /&gt;
&lt;br /&gt;
A WAF configuration can only be restored onto a LoadMaster with an WAF license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referensi== &lt;br /&gt;
&lt;br /&gt;
* https://support.kemptechnologies.com/hc/en-us/articles/209635223-How-to-write-a-WAF-rule-Modsecurity-Rule-Writing&lt;br /&gt;
* https://support.kemptechnologies.com/hc/en-us/articles/210399183-WAF-Rule-Writing-Guide&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>