Skip to content

Commit 98a9e39

Browse files
committed
feat: Push updates
1 parent 0752d78 commit 98a9e39

File tree

9 files changed

+199
-50
lines changed

9 files changed

+199
-50
lines changed

content/waf/configure/compiler.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@ nd-product: NAP-WAF
1414

1515
This document describes how to use the F5 WAF for NGINX compiler, a tool for converting security policies and logging profiles from JSON to a bundle file that F5 WAF can process and apply.
1616

17-
You can use it to get the latest security updates for Attack Signatures, Threat Campaigns and Bot Signatures. The compiler is packaged as a Docker image and can executed using the Docker CLI or as part of a continuous integration/continuous delivery (CI/CD) pipeline.
17+
You can use it to get the latest security updates for [Attack signatures]({{< ref "/waf/policies/attack-signatures.md" >}}), Threat campaigns and Bot signatures.
18+
19+
The compiler is packaged as a Docker image and can executed using the Docker CLI or as part of a continuous integration/continuous delivery (CI/CD) pipeline.
20+
21+
With a virtual machine/bare-metal installation, read the [Update F5 WAF for NGINX signatures]({{< ref "/waf/install/update-signatures.md" >}}) topic.
1822

1923
One or more bundle files can be referenced in the NGINX configuration file, and you can configure global settings such as the cookie seed and user-defined signatures.
2024

25+
For more information about policies, read the [Configure policies]({{< ref "/waf/policies/configuration.md" >}}) topic.
26+
2127
## Before you begin
2228

2329
To complete this guide, you will need the following prerequisites:

content/waf/configure/nginx-features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This document shows example of how to modify your NGINX configuration to enable
1616

1717
It is intended as a reference for, small self-contained examples of how F5 WAF for NGINX is configured.
1818

19-
Certain features do not work well with F5 NGINX, such as modules requiring _subrequest_ when calling or being called from a scope that contains `app_protect_enable on`.
19+
Certain features do not work well with NGINX, such as modules requiring _subrequest_ when calling or being called from a scope that contains `app_protect_enable on`.
2020

2121
Modules requiring the _Range_ header (Such as _Slice_) are also unsupported in a scope which enables F5 WAF for NGINX.
2222

content/waf/install/disconnected-environment.md

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,71 @@ nd-product: NAP-WAF
1414

1515
{{< call-out "warning" "Information architecture note" >}}
1616

17-
The term _disconnected environment_ has become the more commmon synonym for an air-gapped or offline installation. It follows the precedent set by NGINX Instance Manager: [Deploy in a disconnected environment -> Install the latest NGINX Instance Manager with a script (disconnected)]({{< ref "/nim/disconnected/offline-install-guide.md" >}}).
18-
1917
The design intention for this page is as a standalone page for the operating system specific installation use cases:
2018

2119
- [v4]({{< ref "/nap-waf/v4/admin-guide/install.md#offline-installation" >}})
2220
- [v5]({{< ref "/nap-waf/v5/admin-guide/install.md#air-gap-install-secure-offline-installation" >}})
2321

24-
Instead of having separate top level folders, differences between v4 and v5 will be denoted with whole page sections, tabs, or other unique signifiers.
22+
{{</ call-out>}}
23+
24+
This topic describes how to install F5 WAF for NGINX in a disconnected or air-gapped environment.
25+
26+
Many of the steps involved are similar to other installation methods: this document will refer to them when appropriate.
27+
28+
## Before you begin
29+
30+
To complete this guide, you will need the following prerequisites:
31+
32+
- The requirements of your installation method:
33+
- [Virtual machine or bare metal]({{< ref "/waf/install/virtual-environment.md#before-you-begin" >}})
34+
- [Docker]({{< ref "/waf/install/docker.md#before-you-begin" >}})
35+
- [Kubernetes]({{< ref "/waf/install/kubernetes.md#before-you-begin" >}})
36+
- An active F5 WAF for NGINX subscription (Purchased or trial).
37+
- A connected environment with similar architecture
38+
- A method to transfer files between two environments
39+
40+
These instructions outline the broad, conceptual steps involved with working with a disconnected environment. You will need to make adjustments based on your specific security requirements.
41+
42+
Some users may be able to use a USB stick to transfer necessary set-up artefacts, whereas other users may be able to use tools such as SSH or SCP.
43+
44+
In the following sections, the term _connected environment_ refers to the environment with access to the internet you will use to download set-up artefacts.
45+
46+
The term _disconnected environment_ refers to the final environment the F5 WAF for NGINX installation is intended to run in, and is the target to transfer set-up artefacts from the connected environment.
47+
48+
## Download and run the documentation website locally
49+
50+
For a disconnected environment, you may want to browse documentation offline.
51+
52+
This is possible by cloning the repository and the binary file for Hugo.
53+
54+
In addition to accessing F5 WAF for NGINX documentation, you will be able to access any supporting documentation you may need from other products.
55+
56+
You will need `git` and `wget` in your connected environment.
57+
58+
Run the following two commands: replace `<hugo-release>` with the tarball appropriate to the environment from [the release page](https://github.com/gohugoio/hugo/releases/tag/v0.147.8):
59+
60+
```shell
61+
git clone [email protected]:nginx/documentation.git
62+
wget <hugo-release>
63+
```
64+
65+
Move the repository folder and the tarball to your disconnected environment.
66+
67+
In your disconnected environment, extract the tarball archive, then move the `hugo` binary somewhere on your PATH.
68+
69+
Change into the cloned repository and run Hugo: you should be able to access the documentation on localhost.
70+
71+
```shell
72+
cd documentation
73+
hugo server
74+
```
75+
76+
## Download package files
77+
78+
79+
## Download Docker images
80+
81+
82+
## Download Kubernetes files
83+
2584

26-
{{</ call-out>}}

content/waf/install/kubernetes.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,16 +373,14 @@ kubectl create secret docker-registry regcred --docker-server=private-registry.n
373373

374374
The `<JWT Token>` argument should be the _contents_ of the file, not the file itself. Ensure there are no additional characters such as extra whitespace.
375375

376-
377-
### Edit Manifest files
376+
### Create Manifest files
378377

379378
The default configuration provided creates two replicas, each hosting NGINX and WAF services together in a single Kubernetes pod.
380379

381380
Create all of these files in a single folder (Such as `/manifests`).
382381

383382
In each file, replace `<your-private-registry>/waf:<your-tag>` with your actual image tag.
384383

385-
386384
{{< tabs name="manifest-files" >}}
387385

388386
{{% tab name="waf-storage.yaml" %}}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: "Update F5 WAF for NGINX signatures"
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 500
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: NAP-WAF
13+
---
14+
15+
This topic describes how to update F5 WAF for NGINX signatures in a [virtual machine or bare-metal environment]({{< ref "/waf/install/virtual-environment.md" >}}).
16+
17+
For other deployment methods, you should read [Build and use the compiler tool]({{< ref "/waf/configure/compiler.md" >}}).
18+
19+
Signatures are divided into three groups:
20+
21+
- [Attack signatures]({{< ref "/waf/policies/attack-signatures.md" >}})
22+
- Threat campaigns
23+
- Bot signatures
24+
25+
F5 WAF for NGINX signature updates are released at a higher frequency than F5 WAF for NGINX itself, and are subsequently available in their own packages.
26+
27+
A new installation will have the latest signatures available, but F5 WAF for NGINX and the signature packages can be updated independently afterwards.
28+
29+
## Identify and update packages
30+
31+
During installation, the [Platform-specific instructions]({{< ref "/waf/install/virtual-environment.md#platform-specific-instructions" >}}) were used to add the F5 WAF for NGINX repositories to your chosen operating system.
32+
33+
Installing these packages also installed their dependencies, which includes the signature packages. You can use your environment's package manager to update these packages.
34+
35+
They will be named something in the following list:
36+
37+
- `app-protect-attack-signatures`
38+
- `app-protect-threat-campaigns`
39+
- `app-protect-bot-signatures`

content/waf/install/update.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

content/waf/install/upgrade.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,56 @@ The design intention for this page is as a standalone page for the operating sys
1919
- [v4]({{< ref "/nap-waf/v4/admin-guide/install.md#upgrading-app-protect-to-the-latest-version" >}})
2020
- [v5]({{< ref "/nap-waf/v5/admin-guide/upgrade-nap-waf.md" >}})
2121

22-
{{</ call-out>}}
22+
{{</ call-out>}}
23+
24+
This document describes how to upgrade F5 WAF for NGINX.
25+
26+
Security updates can be managed independently from F5 WAF for NGINX versions: based on your installation method, you should read the [Update F5 WAF for NGINX signatures]({{< ref "/waf/install/update-signatures.md" >}}) or [Build and use the compiler tool]({{< ref "/waf/configure/compiler.md" >}}) topics.
27+
28+
## Virtual environment packages
29+
30+
Depending on your method, you may have installed virtual environment packages as part of a virtual machine/bare metal installation or a hybrid Docker configuration deployment.
31+
32+
You can update the F5 WAF for NGINX packages using the environment's package manager, used during the [Platform-specific instructions]({{< ref "/waf/install/virtual-environment.md#platform-specific-instructions" >}}) of installation.
33+
34+
An operating system using `dnf` might update the package with this command:
35+
36+
```shell
37+
sudo dnf -y update app-protect
38+
```
39+
40+
While an `apt` based system would use the following instead:
41+
42+
```shell
43+
sudo apt-get update && apt-get install -y app-protect
44+
```
45+
46+
## Docker deployments
47+
48+
You can upgrade packages within Docker containers the same way as in the [Virtual environment packages](#virtual-environment-packages) section.
49+
50+
Otherwise, you can update the version of F5 WAF components you are using by changing the tag prefixed to the `image:` key in your _docker-compose_ files.
51+
52+
## Kubernetes deployments
53+
54+
In a Kubernetes deployment, your approach for upgrading F5 WAF for NGINX depends on your installation method.
55+
56+
For Helm, first `pull` the chart:
57+
58+
```shell
59+
helm pull oci://private-registry.nginx.com/nap/nginx-app-protect --version <release-name> --untar
60+
```
61+
62+
Then use the `upgrade` argument with the release name.
63+
64+
```shell
65+
helm upgrade <release-name> .
66+
```
67+
68+
For Manifests you can update the tagged `image:` in your [created Manifest files]({{< ref "/waf/install/kubernetes.md#create-manifest-files" >}}).
69+
70+
Then you can use `apply` to upgrade:
71+
72+
```shell
73+
kubectl apply -f manifests/
74+
```

0 commit comments

Comments
 (0)