Skip to content

Add a web server protection (WAF) rule

With WAF rules, you can protect web applications from attacks and data leakage by filtering HTTP traffic.

You configure a WAF rule for an IP address assigned to a network interface, port, and one or more domain names. The firewall matches traffic based on the IP address assigned to the interface.

For HTTPS traffic, it uses Server Name Indication (SNI) to determine the server that corresponds to the hostname in the client request.

Restriction

You can only create up to 60 WAF rules. Exceeding the limit results in performance degradation and production impact. See WAF limitation.

  1. Go to Rules and policies > Firewall, select IPv4 and click Add firewall rule.
  2. Rules are turned on by default. You can turn off a rule if you don’t want to apply its matching criteria.
  3. Enter the general details.

    Setting Description
    Rule name Enter a name.
    Rule position

    Specify the position of the rule.

    Available options:

    • Top
    • Bottom
    Rule group

    Specify the rule group to which you want to add the firewall rule. You can also create a new rule group by using Create new from the list.

    If you select Automatic, the firewall rule is added to an existing group based on the first match with the rule type and source-destination zones.

    Action Select Protect with web server protection.
    Preconfigured template

    Select a template to apply:

    • None: Specify the web server protection details.
    • Exchange Autodiscover
    • Exchange Outlook Anywhere
    • Exchange General
    • Microsoft Lync
    • Microsoft RDG
    • Microsoft RD Web
  4. Enter the Hosted server details.

    Setting Description
    Hosted address

    Select the public IP address assigned to an interface through which users access the internal server or host. The WAF rule is bound to the IP address assigned to the interface.

    You can use the public IP address assigned to the interface or use an alias to bind the required public IP address.

    When a client establishes a connection and accesses the web server, the web server obtains the interface address of the web application firewall (WAF) and not the client’s IP address. The HTTP header X-Forwarded-For carries the client’s IP address.

    Listening port

    Enter the port number on which to reach the hosted web server. The defaults are port 80 for HTTP and port 443 for HTTPS.

    Make sure WAF is different in at least one of the following attributes from the VPN portal and SSL VPN: WAN IP address, port, protocol. See Port sharing among services.

    You can't use some ports as these are reserved by the firewall for system services. For details, see Reserved ports.

    HTTPS If you turn this on, the hosted server is accessible through HTTPS and not through HTTP.
    HTTPS certificate

    If you selected HTTPS, select the certificate.

    The domains of the selected certificate automatically appear under Domains and overwrite the existing ones.

    The firewall supports SNI (Server Name Indication), allowing you to create more than one virtual web server that's accessible over the same IP address and port. You can assign a different certificate to each server. Servers are presented to clients based on the requested hostname.

    To create or upload a certificate, go to Certificates > Certificates.

    Redirect HTTP Select to redirect port 80 traffic to port 443.
    Domains

    Enter the FQDN configured for the web server, for example, shop.example.com.

    If you've turned on HTTPS, domain names of the selected HTTPS certificate show in the list. You can edit or delete these or add new domain names.

    You can use the wildcard *. at the start of a domain name only.

    Example: *.company.com

    A single WAF policy supports multiple wildcard domains. Virtual web servers with wildcard domains are only matched when there are no virtual web servers with specific domains configured.

    Example: A client request to the domain, test.company.com, will match with test.company.com before it matches with *.company.com before matching with *.com.

  5. Specify the details of the Protected servers. You can specify the web servers, authentication method, and allowed and blocked client networks. If you select path-specific routing, in addition to these settings, you can bind sessions to servers, specify the primary and backup servers, and use the WebSocket protocol.

    Note

    If you select multiple web servers, requests are balanced between the webservers.

    If you don't want to configure path-specific routing, specify the Web servers and Access permissions.

    Setting Description
    Web server Select the web servers from the Web server list. Alternatively, you can create new ones. You can see the selected web servers under Selected web servers.
    Allowed client networks Specify the IP addresses and networks that can connect to the hosted web server.
    Blocked client networks Specify the IP addresses and networks to block from connecting to the hosted web server.
    Authentication Specify an authentication profile for web applications.
    Blocked countries Specify the countries or country groups you want to block from connecting to the hosted web server.
    Block IP addresses of unknown country-origin

    Turn on to block IP addresses whose country of origin is unknown.

    Use caution when turning this on because you might get blocked from this resource if you're connecting from an IP address of unknown country-origin. You can check if your IP address has a country-origin or not. See GeoIP2 Databases Demo.

  6. Select Path-specific routing to forward specific path requests to the selected web servers. For example, if you specify the domain www.test.com, the path /web, and the web server Web server 1, a request for www.test.com/web is forwarded to Web server 1.

    Note

    The firewall doesn't evaluate requests based on the order of path listing. It applies the paths, starting with the longest path and ending with the default path route. The default path is used only if a more specific path doesn't match the request.

    Some instances in which you can specify path-specific routing are as follows:

    • Send requests with a specific path (example: /products/) to a specific web server.
    • Bind each session to a web server, using Sticky session cookie. Example: If you host an e-commerce site and want a single server to serve users for the duration of a shopping session.
    • Send all requests to the specified web server with the others remaining as backup servers, using Hot-standby mode.
    Setting Description
    Default path (path /) Select the edit button and select a web server for the default path. Requests that don't match a listed path are sent to the default route. If you delete the default route, the firewall denies requests that don't match a listed path with a 404 Not found response.
    Add new path

    Select to add a new path.

    You can add a path if you've added a web server.

    Path Enter the website path. Example: /products/
    Web server Select the web servers from the Web server list. Alternatively, you can create new ones. You can see the selected web servers under Selected web servers.
    Authentication Specify an authentication profile for web applications.
    Allowed client networks Specify the IP addresses and networks that can connect to the hosted web server. The firewall only implements the protection for IP host type IP and Network. Don't specify an IP range or IP list.
    Blocked client networks

    Specify the IP addresses and networks to block from connecting to the hosted web server.

    The firewall only implements the protection for IP host type IP and Network. Don't specify an IP range or IP list.

    Blocked countries Specify the countries or country groups you want to block from connecting to the hosted web server.
    Block IP addresses of unknown country-origin

    Turn on to block IP addresses whose country of origin is unknown.

    Use caution when turning this on because you might get blocked from this resource if you're connecting from an IP address of unknown country-origin. You can check if your IP address has a country-origin or not. See GeoIP2 Databases Demo.

    Sticky session cookie

    Turn it on to bind a session to a web server. The firewall forwards a cookie to the user’s browser, enabling it to route requests from the browser to the same web server.

    If the server isn't available, the cookie is updated, and the session is switched to another web server.

    Hot-standby mode

    Turn it on to send all requests to the first selected web server. The other web servers remain as backup servers and are used if the first server fails.

    When the main server starts functioning again, the sessions are switched back to it. If you select Sticky session cookie, the session continues with the backup web server.

    WebSocket passthrough

    Turn it on to allow applications hosted on the specified site path to use the WebSocket protocol.

    Since RFC standards don't specify the protocol's data format, checks can't be implemented and WebSocket traffic is allowed without protection.

  7. Select Add new exception to specify the security checks to skip.

    Select the paths, sources, categories, and security checks to skip. For more information about categories, see the Common threat filter settings in Add a protection policy.

    You can specify more than one exception in a WAF rule.

    Setting Description
    Paths Specify the paths for which you want to create an exception. You can use wildcards in the paths. Example: /products/*/images/*
    Operation Select the Boolean operation for paths and source networks.
    Sources Specify the IP addresses, range, list, or networks from which the traffic originates.
    Cookie signing Skips check for cookie tampering. Cookie signing mitigates attempts to obtain private session data and engage in fraudulent activity by tampering with cookies. When the web server sets a cookie, a second cookie is added to the first cookie containing a hash built from the primary cookie's name and value and a secret known only to the firewall. If a request can't provide the correct cookie pair, the cookie is dropped.
    Static URL hardening

    Allows rewritten links for the specified paths and source networks.

    Static URL hardening prevents users from manually constructing deep links that lead to unauthorized access. When a client requests a website, all static URLs of the website are signed using a procedure similar to cookie signing. In addition, the response from the web server is analyzed regarding which links can be validly requested next.

    When you turn on static URL hardening, the entries for URL paths become case-sensitive. For example, if you add the path /rule.html and users enter /Rule.html, the firewall reports that the signature can't be found.

    Form hardening Skips checks for web form rewriting. To prevent tampering with forms, the firewall saves the original structure of a web form and signs it. If the structure has changed when the form is submitted, the firewall rejects the request.
    Antivirus Skips anti-virus scanning for requests from the specified source networks and to the paths that you specify.
    Block clients with bad reputation Skips checks for clients that have a bad reputation according to real-time blackhole lists (RBLs) and GeoIP information.
    Never change HTML during static URL hardening or form hardening If you select this exception, the firewall doesn't perform an HTML rewrite during static URL hardening or form hardening. For example, it doesn't update the links inside an HTML page and retains the full link returned by the web server. You may have to skip static URL hardening or form hardening to allow access to these links. So, if a web application needs anything in the HTML page to function, it isn't dropped by HTML rewrite.
    Accept unhardened form data Even if you select the Form hardening exception, the firewall doesn't accept form data if the form hardening signature is missing. With this option, the firewall accepts unhardened form data.
  8. Specify the advanced protection policies.

    Setting Description
    Protection Specify a protection policy for the servers.
    Intrusion prevention Specify an intrusion prevention policy.
    Traffic shaping Specify a traffic shaping policy to allocate bandwidth.
  9. Specify the Advanced settings.

    Setting Description
    Disable compression support

    When clients request compressed data, the firewall sends data in compressed form.

    Select this setting to turn off compression if web pages appear incorrectly or if users experience content-encoding errors. The firewall then requests uncompressed data from web servers and sends it to the client irrespective of the request’s encoding parameter.

    Rewrite HTML

    Select to rewrite the links of returned web pages to retain link validity.

    Example: If a web server's hostname is yourcompany.local, but the hosted web server’s hostname is yourcompany.com, absolute links like [a href="http://yourcompany.local/"] are broken if the link is not rewritten to [a href="http://yourcompany.com/"] before delivery to the client.

    You don't need to select this option if yourcompany.com is configured on your web server or if internal links on your web pages are always realized as relative links.

    We recommend that you use the option with Microsoft Outlook web access or SharePoint portal server.

    HTML rewriting affects all files with HTTP content type text/* or *xml*. * is a wildcard. To prevent corruption during HTML rewriting, make sure that other file types (example: binary files) have the correct HTTP content type.

    Rewrite cookies Select to rewrite cookies of the returned web pages.
    Pass host header

    Select to forward the host header requested by the client to the web server.

    You can use this to match the requested hostname with the web server when you've hosted more than one website on a server.

  10. Click Save. When you save a new or edited web server protection rule, the firewall restarts all web server rules. Live connections using any of these rules will be lost and need to be re-established.

You can see the WAF rule you created in the Firewall rules table.

More resources