Skip to content

Commit bed9b2f

Browse files
author
root
committed
docs(toolkit-security): clarify exporter ACL protection is being applied, not optional
- Changed section heading from 'Optional: Restrict...' to 'Restricting...' - Updated language to 'We are protecting these endpoints' to emphasize ACLs - Added recommended default AGLT2+CERN subnets to quick-start examples - Clarified that toolkit provides same protection mechanism as container - Added guidance on customizing/modifying IP allow-lists - Updated toolkit installer log messages to be clearer about ACL application - Updated tools README quick-start to show recommended default subnets This ensures documentation clearly conveys that exporter endpoints ARE protected (when --exporter-allowlist is specified), matching the container deployment model. Users can modify the IP allow-list as needed.
1 parent 9a12f93 commit bed9b2f

File tree

5 files changed

+22
-16
lines changed

5 files changed

+22
-16
lines changed

docs/perfsonar/tools_scripts/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ Differences from the container orchestrator:
7676
curl -fsSL https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/perfSONAR-toolkit-install.sh \
7777
| sudo bash -s -- --experiment-id 1 --non-interactive
7878

79-
# Restrict exporter endpoints to monitoring CIDRs
79+
# With exporter endpoint protection (recommended: AGLT2 + CERN subnets, matches container model)
8080
curl -fsSL https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/perfSONAR-toolkit-install.sh \
8181
| sudo bash -s -- --experiment-id 1 --non-interactive \
82-
--exporter-allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50"
82+
--exporter-allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50,188.184.0.0/17,188.185.0.0/17,188.185.128.0/18,128.142.0.0/16,2001:1458:d00::/48,2001:1458:d03::/48,2001:1458:301::/48,2001:1458:302::/48,2001:1458:303::/48"
8383

8484
# With Let's Encrypt
8585
curl -fsSL https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/perfSONAR-toolkit-install.sh \

docs/perfsonar/tools_scripts/perfSONAR-toolkit-install.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ step_security() {
244244
run "${sec_cmd[@]}" || true
245245

246246
if [ -n "$EXPORTER_ALLOWLIST" ]; then
247-
log "Applying exporter endpoint ACLs to Apache using allow-list: $EXPORTER_ALLOWLIST"
247+
log "Restricting exporter endpoints (/node_exporter/metrics, /perfsonar_host_exporter/) to monitoring subnets: $EXPORTER_ALLOWLIST"
248248
if [ -x "$HELPER_DIR/tools_scripts/perfSONAR-configure-exporter-acls.sh" ]; then
249249
run "$HELPER_DIR/tools_scripts/perfSONAR-configure-exporter-acls.sh" \
250250
--allowlist "$EXPORTER_ALLOWLIST" --yes || true
@@ -253,7 +253,7 @@ step_security() {
253253
log "WARNING: perfSONAR-configure-exporter-acls.sh not found; skipping exporter ACL configuration."
254254
fi
255255
else
256-
log "Exporter ACL hardening not requested (use --exporter-allowlist to restrict exporter endpoints)."
256+
log "Exporter endpoint ACL protection not configured. Use --exporter-allowlist to restrict access (e.g., --exporter-allowlist \"192.41.230.0/23,2001:48a8:68f7::/50\")."
257257
fi
258258
}
259259

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
42abd64fffbb2b45731bfe2d6bc14e144bdd8b2b127f612afc8058c9527f4687 perfSONAR-toolkit-install.sh
1+
a5d25fbac56fd79a0bdd8c11b5504a1136ff87c0d174f21b6120b3aa054c4eb8 perfSONAR-toolkit-install.sh

docs/perfsonar/tools_scripts/scripts.sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ e1944123e17c89e8f202cca960f147397d64ae1e675af132c84b02ced2564abb node_exporter.
1818
50dfab90bc21d5c566b713f48b00b079a32a8b8756432a0d0f66ac6a64e6e581 perfSONAR-health-monitor.sh
1919
e184c633ca9ca5d3d79321213843a4eaa951e5596d3dc05f082e5f76e860e580 install_tools_scripts.sh
2020
7be726de5dfdbe8f7f5ac8e803b0b71e8f98f1ba274ca70b42f8eba4822cc67b perfSONAR-orchestrator.sh
21-
42abd64fffbb2b45731bfe2d6bc14e144bdd8b2b127f612afc8058c9527f4687 perfSONAR-toolkit-install.sh
21+
a5d25fbac56fd79a0bdd8c11b5504a1136ff87c0d174f21b6120b3aa054c4eb8 perfSONAR-toolkit-install.sh
2222
cd0e7afd1ca7a20a972e585018802be0cb6f67cd3ffee449dea45d785c23145a perfSONAR-configure-exporter-acls.sh
2323
2615a29d65e285391adb547046584c4534ea548e69571b67e0cf35773b010c57 perfSONAR-diagnostic-report.sh
2424
ac0c8fd6f27cc156ec05c7e6ac3547e0732f436a7033dac34475ece5641a284f docs/perfsonar/tools_scripts/perfSONAR-install-flowd-go.sh

docs/personas/quick-deploy/install-perfsonar-toolkit.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ Installation takes approximately 5-10 minutes depending on network speed.
175175
| sudo bash -s -- --experiment-id 1 --non-interactive
176176
```
177177
178-
To harden exporter endpoints with explicit monitoring subnets at install time:
178+
To protect exporter endpoints by restricting access to monitoring subnets (AGLT2 and CERN):
179179
```bash
180180
curl -fsSL https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/perfSONAR-toolkit-install.sh \
181181
| sudo bash -s -- --experiment-id 1 --non-interactive \
182-
--exporter-allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50"
182+
--exporter-allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50,188.184.0.0/17,188.185.0.0/17,188.185.128.0/18,128.142.0.0/16,2001:1458:d00::/48,2001:1458:d03::/48,2001:1458:301::/48,2001:1458:302::/48,2001:1458:303::/48"
183183
```
184184
185185
See the [tools_scripts README](../../perfsonar/tools_scripts/README.md) for full
@@ -486,22 +486,28 @@ You can use the install script to install the options you want (selinux, fail2ba
486486
The script writes nftables rules for perfSONAR services, derives SSH allow-lists from `/etc/perfSONAR-multi-nic-
487487
config.conf`, optionally adjusts SELinux, and enables Fail2ban jails—only if those components are already installed.
488488
489-
### Optional: Restrict exporter endpoints to monitoring subnets
489+
### Restricting exporter endpoints to monitoring subnets
490490
491-
By default, perfSONAR toolkit Apache configs expose both exporter URLs to any client that can reach HTTPS:
491+
The toolkit exposes two exporter endpoints via HTTPS:
492492
493-
- `/node_exporter/metrics`
494-
- `/perfsonar_host_exporter/`
493+
- `/node_exporter/metrics` (system metrics from Node Exporter, proxied via `localhost:9100`)
494+
- `/perfsonar_host_exporter/` (host-specific metrics from perfSONAR)
495495
496-
If you want container-style subnet ACL protection for these endpoints, apply explicit allow-lists:
496+
**We are protecting these endpoints** by allowing access only from designated monitoring subnets, matching the container deployment model. By default, if you specify `--exporter-allowlist` during installation, these endpoints are restricted by Apache `Require ip` rules to the CIDRs you provide.
497+
498+
**Recommended default subnets** (AGLT2 and CERN, matching the container image):
497499
498500
```bash
499501
/opt/perfsonar-tp/tools_scripts/perfSONAR-configure-exporter-acls.sh \
500-
--allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50,2001:1458:d00::/48" --yes
502+
--allowlist "192.41.230.0/23,192.41.236.0/23,2001:48a8:68f7::/50,188.184.0.0/17,188.185.0.0/17,188.185.128.0/18,128.142.0.0/16,2001:1458:d00::/48,2001:1458:d03::/48,2001:1458:301::/48,2001:1458:302::/48,2001:1458:303::/48" --yes
501503
```
502504
503-
If your site keeps helper scripts under `/opt/perfsonar-toolkit/tools_scripts`, use that path instead.
504-
This writes `/etc/httpd/conf.d/apache-osg-exporter-restrictions.conf` and reloads Apache.
505+
**To customize the IPs:** If you want to change or add monitoring subnets, you can either:
506+
507+
1. **At install time:** pass a different `--exporter-allowlist` value to the toolkit installer
508+
2. **Post-install:** Run the helper script with your custom CIDR list (paths may differ; check where helper scripts are installed)
509+
510+
The helper script writes `/etc/httpd/conf.d/apache-osg-exporter-restrictions.conf` with Apache `<Location>` blocks using `Require ip` directives, and reloads the web server.
505511
506512
??? info "SSH allow-lists and validation"
507513

0 commit comments

Comments
 (0)