Skip to content

Commit 166a2a0

Browse files
authored
Nap usecase stage1 (#817)
* feat: Integration steps: NAP-WAF into NGINX One Console - Basic transparant v. blocking policies - Strict policy - Adjustments - API info - Changelog Co-authored-by: yar <[email protected]> Apply suggestions from code review Co-authored-by: Daniel Edgar <[email protected]> Apply suggestions from code review * Update changelog release date
1 parent a1a004b commit 166a2a0

File tree

11 files changed

+2228
-594
lines changed

11 files changed

+2228
-594
lines changed

content/includes/nap-waf/config/common/nginx-app-protect-waf-terminology.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
---
22
nd-docs: "DOCS-1605"
3+
files:
4+
- content/nap-waf/v5/configuration-guide/configuration.md
5+
- content/nginx-one/glossary.md
36
---
47

58
This guide assumes that you have some familiarity with various Layer 7 (L7) Hypertext Transfer Protocol (HTTP) concepts, such as Uniform Resource Identifier (URI)/Uniform Resource Locator (URL), method, header, cookie, status code, request, response, and parameters.
@@ -26,4 +29,4 @@ This guide assumes that you have some familiarity with various Layer 7 (L7) Hype
2629
|Tuning | Making manual changes to an existing security policy to reduce false positives and increase the policy’s security level. |
2730
|URI/URL | The Uniform Resource Identifier (URI) specifies the name of a web object in a request. A Uniform Resource Locator (URL) specifies the location of an object on the Internet. For example, in the web address, `http://www.siterequest.com/index.html`, index.html is the URI, and the URL is `http://www.siterequest.com/index.html`. In NGINX App Protect WAF, the terms URI and URL are used interchangeably. |
2831
|Violation | Violations occur when some aspect of a request or response does not comply with the security policy. You can configure the blocking settings for any violation in a security policy. When a violation occurs, the system can Alarm or Block a request (blocking is only available when the enforcement mode is set to Blocking). |
29-
{{</bootstrap-table>}}
32+
{{</bootstrap-table>}}

content/nginx-one/_index.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ F5 NGINX One Console makes it easy to manage NGINX instances across locations an
1919
[//]: # "You can add a maximum of three cards: any extra will not display."
2020
[//]: # "One card will take full width page: two will take half width each. Three will stack like an inverse pyramid."
2121
[//]: # "Some examples of content could be the latest release note, the most common install path, and a popular new feature."
22+
2223
{{<card-layout>}}
2324
{{<card-section showAsCards="true" isFeaturedSection="true">}}
2425
{{<card title="Get started" titleUrl="/nginx-one/getting-started/" isFeatured="true" icon="unplug">}}
@@ -36,6 +37,9 @@ F5 NGINX One Console makes it easy to manage NGINX instances across locations an
3637
{{<card title="Manage your NGINX instances" titleUrl="/nginx-one/nginx-configs/" >}}
3738
Manage one instance or groups of instances. Monitor certificates. Set up metrics.
3839
{{</card>}}
40+
{{<card title="Secure with NGINX App Protect" titleUrl="/nginx-one/nap-integration/" >}}
41+
Manage one instance or groups of instances. Monitor certificates. Set up metrics.
42+
{{</card>}}
3943
{{<card title="Organize users with RBAC" titleUrl="/nginx-one/rbac/" >}}
4044
Assign responsibilities with role-based access control
4145
{{</card>}}
@@ -58,10 +62,23 @@ F5 NGINX One Console makes it easy to manage NGINX instances across locations an
5862
{{</card-section>}}
5963
{{</card-layout>}}
6064

65+
### More information
66+
67+
{{<card-layout>}}
68+
{{<card-section showAsCards="true" >}}
69+
{{<card title="Glossary" titleUrl="/nginx-one/glossary/" >}}
70+
See latest updates: New features, improvements, and bug fixes
71+
{{</card>}}
72+
{{<card title="Changelog" titleUrl="/nginx-one/changelog/" icon="clock-alert">}}
73+
See latest updates: New features, improvements, and bug fixes
74+
{{</card>}}
75+
{{</card-section>}}
76+
{{</card-layout>}}
77+
6178
## NGINX One components
6279
[//]: # "You can add any extra content for the page here, such as additional cards, diagrams or text."
6380

64-
{{< card-layout >}}
81+
{{<card-layout>}}
6582
{{< card-section title="Kubernetes Solutions">}}
6683
{{< card title="NGINX Ingress Controller" titleUrl="/nginx-ingress-controller/" brandIcon="NGINX-Ingress-Controller-product-icon">}}
6784
Kubernetes traffic management with API gateway, identity, and observability features.

content/nginx-one/changelog.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ h2 {
3030

3131
Stay up-to-date with what's new and improved in the F5 NGINX One Console.
3232

33+
## July 15, 2025
34+
35+
### Set up F5 NGINX App Protect WAF security policies
36+
37+
You can now incorporate [NGINX App Protect WAF]({{< ref "/nap-waf/" >}}) in NGINX One Console UI. For details, see [Secure with NGINX App Protect]({{< ref "/nginx-one/nap-integration/" >}}).
38+
39+
In NGINX One Console, you can:
40+
41+
- Toggle between [Default policy bundles]({{< ref "/nap-waf/v5/configuration-guide/configuration/#updating-default-policy-bundles" >}})
42+
- Set a blocking or transparant [Policy enforcement mode]({{< ref "/nap-waf/v5/configuration-guide/configuration/#policy-enforcement-modes" >}})
43+
3344
## July 1, 2025
3445

3546
### NGINX Agent version 3 support

content/nginx-one/glossary.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type:
1010

1111
This glossary defines terms used in the F5 NGINX One Console and F5 Distributed Cloud.
1212

13+
## General terms
1314

1415
{{<bootstrap-table "table table-striped table-bordered">}}
1516
| Term | Definition |
@@ -24,6 +25,10 @@ This glossary defines terms used in the F5 NGINX One Console and F5 Distributed
2425
| **Tenant** | A tenant in F5 Distributed Cloud is an entity that owns a specific set of configuration and infrastructure. It is fundamental for isolation, meaning a tenant cannot access objects or infrastructure of other tenants. Tenants can be either individual or enterprise, with the latter allowing multiple users with role-based access control (RBAC). |
2526
{{</bootstrap-table>}}
2627

28+
## NGINX App Protect WAF terminology
29+
30+
{{< include "nap-waf/config/common/nginx-app-protect-waf-terminology.md" >}}
31+
2732
## Legal notice: Licensing agreements for NGINX products
2833

2934
Using NGINX One is subject to our End User Service Agreement (EUSA). For [NGINX Plus]({{< ref "/nginx" >}}), usage is governed by the End User License Agreement (EULA). Open source projects, including [NGINX Agent](https://github.com/nginx/agent) and [NGINX Open Source](https://github.com/nginx/nginx), are covered under their respective licenses. For more details on these licenses, follow the provided links.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Secure with NGINX App Protect
3+
description:
4+
weight: 400
5+
url: /nginx-one/nap-integration
6+
---
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: "Add and configure a policy"
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 200
6+
# Creates a table of contents and sidebar, useful for large documents
7+
toc: false
8+
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9+
nd-content-type: how-to
10+
# Intended for internal catalogue and search, case sensitive:
11+
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12+
nd-product: NGINX One
13+
---
14+
15+
This document describes how you can configure a security policy in the F5 NGINX One Console. When you add a policy, NGINX One Console includes several UI-based options and presets, based on NGINX App Protect WAF.
16+
17+
18+
If you already know NGINX App Protect WAF, you can go beyond the options available in the UI.
19+
20+
## Add a policy
21+
22+
From NGINX One Console, select App Protect > Policies. In the screen that appears, select **Add Policy**. That action opens a screen where you can:
23+
24+
- In General Settings, name and describe the policy.
25+
- You can also set one of the following enforcement modes:
26+
- Transparent
27+
- Blocking
28+
29+
For details, see the [Glossary]({{< ref "/nginx-one/glossary.md#nginx-app-protect-waf-terminology" >}}), specifically the entry: **Enforcement mode**. You'll see this in the associated configuration file,
30+
with the `enforcementMode` property.
31+
32+
You can also set a character encoding. The default encoding is `Unicode (utf-8)`. To set a different character encoding, select **Show Advanced Fields** and select the **Application Language** of your choice.
33+
34+
## Configure a policy
35+
36+
With NGINX One Console User Interface, you get a default policy. You can also select **NGINX Strict** for a more rigorous policy:
37+
38+
### Basic Configuration and the Default Policy
39+
40+
{{< include "/nap-waf/concept/basic-config-default-policy.md" >}}
41+
42+
## Save your policy
43+
44+
NGINX One Console includes a Policy JSON section which displays your policy in JSON format. What you configure here is written to your instance of NGINX App Protect WAF.
45+
46+
With the **Edit** option, you can customize this policy. It opens the JSON file in a local editor. When you select **Save Policy**, it saves the latest version of what you've configured. You'll see your new policy under the name you used.
47+
48+
From NGINX One Console, you can review the policies that you've saved, along with their versions. Select **App Protect** > **Policies**. Select the policy that you want to review or modify.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: "Deploy policy"
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 400
6+
# Creates a table of contents and sidebar, useful for large documents
7+
toc: false
8+
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9+
nd-content-type: how-to
10+
# Intended for internal catalogue and search, case sensitive:
11+
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12+
nd-product: NGINX One
13+
---
14+
15+
After you've set up a policy, it won't do anything, until you deploy it to one or more instances and Config Sync Groups.
16+
17+
This page assumes you've created a policy in NGINX One Console that you're ready to deploy.
18+
19+
## Deploy a policy
20+
21+
To deploy a policy from NGINX One Console, take the following steps:
22+
23+
1. Select **App Protect** > **Policies**.
24+
1. Select the policy that you're ready to deploy.
25+
1. Select the **Details** tab.
26+
1. In the **Deploy Policy** window that appears, you can confirm the name of the current policy and the version to deploy. NGINX One Console defaults to the selected policy and latest version.
27+
1. In the **Target** section, select Instance or Config Sync Group.
28+
1. In the drop-down menu that appears, select the instance or Config Sync Group available in the current NGINX One Console.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: "NGINX App Protect integration overview"
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 100
6+
# Creates a table of contents and sidebar, useful for large documents
7+
toc: false
8+
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9+
nd-content-type: concept
10+
# Intended for internal catalogue and search, case sensitive:
11+
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12+
nd-product: NGINX One
13+
---
14+
15+
You can now integrate the features of F5 NGINX App Protect WAF v4 and v5 in F5 NGINX One Console. NGINX App Protect offers advanced Web Application Firewall (WAF) capabilities.
16+
Through the NGINX One Console UI, you can now set up the [NGINX App Protect WAF]({{< ref "/nap-waf/" >}}) firewall. This solution provides robust security and scalability.
17+
18+
## Features
19+
20+
Once you've connected to the NGINX One Console, select **App Protect > Policies**. You can add new policies or edit existing policies, as defined in the [NGINX App Protect WAF Administration Guide]({{< ref "/nap-waf/v5/admin-guide/overview.md" >}})
21+
22+
Through the NGINX One Console UI, you can:
23+
24+
- [Add and configure a policy]({{< ref "/nginx-one/nap-integration/configure-policy.md/" >}})
25+
- [Review existing policies]({{< ref "/nginx-one/nap-integration/review-policy.md/" >}})
26+
- [Deploy policies]({{< ref "/nginx-one/nap-integration/deploy-policy.md/" >}}) on instances and Config Sync Groups
27+
28+
You can also set up policies through the [NGINX One Console API]({{< ref "/nginx-one/nap-integration/security-policy-api.md/" >}}).
29+
30+
## Set up NGINX App Protect
31+
32+
You can install and upgrade NGINX App Protect:
33+
34+
Version 4:
35+
36+
- [Install]({{< ref "/nap-waf/v4/admin-guide/install.md" >}})
37+
- [Upgrade]({{< ref "/nap-waf/v4/admin-guide/upgrade-nap-waf.md" >}})
38+
39+
Version 5:
40+
41+
- [Install]({{< ref "/nap-waf/v5/admin-guide/install.md" >}})
42+
- [Upgrade]({{< ref "/nap-waf/v5/admin-guide/upgrade-nap-waf.md" >}})
43+
44+
### Container-related configuration requirements
45+
46+
NGINX App Protect WAF Version 5 has specific requirements for the configuration with Docker containers:
47+
48+
- Directory associated with the volume, which you may configure in a `docker-compose.yaml` file.
49+
- You may set it up with the `volumes` directive with a directory like `/etc/nginx/app_protect_policies`.
50+
- You need to set up the container volume. So when the policy bundle is referenced in the `nginx` directive, the file path is what the container sees.
51+
- You need to also include an `app_protect_policy_file`, as described in [App Protect Specific Directives]({{< ref "/nap-waf/v5/configuration-guide/configuration.md#app-protect-specific-directives" >}})
52+
53+
- You'll need to set a policy bundle (in compressed tar format) in a configured `volume`.
54+
- Make sure the directory for [NGINX Agent]({{< ref "/agent/configuration/" >}}) includes `/etc/nginx/app_protect_policies`.
55+
56+
When you deploy NAP policy through NGINX One Console, do not also use plain JSON policy in the same NGINX instance.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: "Review policy"
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 300
6+
# Creates a table of contents and sidebar, useful for large documents
7+
toc: false
8+
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9+
nd-content-type: how-to
10+
# Intended for internal catalogue and search, case sensitive:
11+
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12+
nd-product: NGINX One
13+
---
14+
15+
Before you implement a policy on an NGINX instance or Config Sync Group, you may want to review it. F5 NGINX One Console creates a policy for your NGINX App Protect WAF system.
16+
17+
## Review NGINX App Protect policies
18+
19+
From NGINX One Console, select **App Protect** > **Policies**. Select the name of the policy that you want to review. You'll see the following tabs:
20+
21+
- Details, which includes:
22+
- Policy Details: Descriptions, status, enforcement type, latest version, and last deployed time.
23+
- Deployments: List of instances and Config Sync Groups where the NGINX App Protect policy is deployed.
24+
- Policy JSON: The policy, in JSON format. With the **Edit** button, you can modify this policy.
25+
- Versions: Policy versions that you've written. You can apply an older policy to your deployments.
26+
27+
## Modify existing policies
28+
29+
From the NGINX One Console, you can also manage existing policies. In the Policies screen, identify a policy, and select **Actions**. From the menu that appears, you can:
30+
31+
- **Edit** an existing policy.
32+
- **Save As** to save an existing policy with a new name. You can use an existing policy as a baseline for further customization.
33+
- **Deploy Latest Version** to apply the latest revision of an existing policy to the configured instances and Config Sync Groups.
34+
- **Export** the policy in JSON format.
35+
- **Delete** the policy. Once confirmed, you'll lose all work you've done on that policy.
36+
37+
{{< note >}}
38+
If you use **Save As** to create a new policy, include the `app_protect_cookie_seed` [directive]({{< ref "/nap-waf/v5/configuration-guide/configuration.md#directives" >}}).
39+
{{< /note >}}
40+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: "Set security policies through the API"
3+
weight: 700
4+
toc: true
5+
type: reference
6+
product: NGINX One
7+
docs: DOCS-000
8+
---
9+
10+
You can use F5 NGINX One Console API to manage security policies. With our API, you can:
11+
12+
- [List existing policies]({{< ref "/nginx-one/api/api-reference-guide/#operation/listNapPolicies" >}})
13+
- You can set parameters to sort policies by type.
14+
- [Create a new policy]({{< ref "/nginx-one/api/api-reference-guide/#operation/createNapPolicy" >}})
15+
- You need to translate the desired policy.json file to base64 format.
16+
- [Get policy details]({{< ref "/nginx-one/api/api-reference-guide/#operation/getNapPolicy" >}})
17+
- Returns details of the policy you identified with the policy `object_id`.
18+
- [List NGINX App Protect Deployments]({{< ref "/nginx-one/api/api-reference-guide/#operation/listNapPolicyDeployments" >}})
19+
- The output includes:
20+
- Target of the deployment
21+
- Time of deployment
22+
- Enforcement mode
23+
- Policy version
24+
- Threat campaign
25+
- Attack signature
26+
- Bot signature

0 commit comments

Comments
 (0)