You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(toolkit-security): default exporter ACL protection matching container model (v1.1.0)
- Updated perfSONAR-toolkit-install.sh to apply AGLT2+CERN exporter ACLs by default
- Added DEFAULT_EXPORTER_ALLOWLIST constant with container-matching subnets
- Users can override with --exporter-allowlist or disable with --no-exporter-acls
- Updated documentation to clarify protection is ON by default (not optional)
- Quick-start examples now show ACL protection is automatic
- Verified: nftables firewall allows port 443; Apache applies IP-level ACLs
- All DEFAULT_EXPORTER_ALLOWLIST subnets configured on deployed hosts
Closes gap: toolkit installations now have same protection as container builds.
log "Restricting exporter endpoints (/node_exporter/metrics, /perfsonar_host_exporter/) to monitoring subnets: $EXPORTER_ALLOWLIST"
253
+
if [ "$NO_EXPORTER_ACLS"=true ];then
254
+
log "WARNING: Exporter endpoint ACL protection is DISABLED (--no-exporter-acls). Both /node_exporter/metrics and /perfsonar_host_exporter/ will be accessible from any HTTPS client. This is not recommended."
255
+
else
256
+
log "Protecting exporter endpoints (/node_exporter/metrics, /perfsonar_host_exporter/) with ACLs for: $EXPORTER_ALLOWLIST"
248
257
if [ -x"$HELPER_DIR/tools_scripts/perfSONAR-configure-exporter-acls.sh" ];then
249
258
run "$HELPER_DIR/tools_scripts/perfSONAR-configure-exporter-acls.sh" \
250
259
--allowlist "$EXPORTER_ALLOWLIST" --yes ||true
251
260
run systemctl reload httpd || run systemctl reload apache2 ||true
252
261
else
253
262
log "WARNING: perfSONAR-configure-exporter-acls.sh not found; skipping exporter ACL configuration."
254
263
fi
255
-
else
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\")."
To protect exporter endpoints by restricting access to monitoring subnets (AGLT2 and CERN):
179
+
The exporter endpoints are **protected by default** with Apache `Require ip` ACLs for AGLT2 and CERN monitoring subnets, matching the container deployment model. To customize the allow-list:
180
+
179
181
```bash
182
+
# Override the default allow-list with your own subnets
See the [tools_scripts README](../../perfsonar/tools_scripts/README.md) for full
@@ -486,28 +496,46 @@ You can use the install script to install the options you want (selinux, fail2ba
486
496
The script writes nftables rules for perfSONAR services, derives SSH allow-lists from `/etc/perfSONAR-multi-nic-
487
497
config.conf`, optionally adjusts SELinux, and enables Fail2ban jails—only if those components are already installed.
488
498
489
-
### Restricting exporter endpoints to monitoring subnets
499
+
### Exporter endpoint protection (on by default)
490
500
491
501
The toolkit exposes two exporter endpoints via HTTPS:
492
502
493
503
- `/node_exporter/metrics` (system metrics from Node Exporter, proxied via `localhost:9100`)
494
504
- `/perfsonar_host_exporter/` (host-specific metrics from perfSONAR)
495
505
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.
506
+
**These endpoints are protected by default** with Apache `Require ip` ACLs that restrict access to AGLT2 and CERN monitoring subnets, matching the container deployment protection model. This happens automatically during installation without any additional flags required.
507
+
508
+
**Default protected subnets** (same as container image):
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.
538
+
The ACL configuration writes to`/etc/httpd/conf.d/apache-osg-exporter-restrictions.conf` with Apache `<Location>` blocks using `Require ip` directives, and reloads the web server.
0 commit comments