TMAegisBeta
More rules for nginx

NGINX

TMA-NGINX-4.1.3

Ensure private key permissions are restricted

HighLevel 1Automatednginx

Description

The server's and potentially its vhost's private keys should be protected from unauthorized access by limiting access based on the principle of least privilege. Every ssl_certificate_key and every *.key file under /etc/nginx must have mode 400 or stricter (relative paths are resolved against /etc/nginx; variables and engine: keys are skipped). Evaluated on the merged configuration printed by `nginx -T` (all included files; needs permission to read them). CIS marks this recommendation Manual; the automated check implements its audit procedure.

How it is checked

Audit method: Shell command

shell
out=$(nginx -T 2>/dev/null) || exit 1; { printf '%s\n' "$out" | awk '$1=="ssl_certificate_key"{v=$2; sub(/;$/,"",v); gsub(/["\047]/,"",v); print v}'; find /etc/nginx -name '*.key' 2>/dev/null; } | sort -u | { bad=0; while IFS= read -r k; do case "$k" in data:*|engine:*|store:*|*'$'*) continue;; /*) ;; *) k=/etc/nginx/$k;; esac; [ -e "$k" ] || continue; [ -z "$(find -L "$k" -perm /377)" ] || bad=1; done; [ "$bad" = 0 ] && echo compliant || echo noncompliant; }
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

find /etc/nginx/ -name '*.key' -exec chmod u-wx,go-rwx {} + (and the same for keys stored elsewhere).

Properties

Operating systems
Any
Tags
nginxtlspermissions
Reference
CIS NGINX Benchmark v3.0.0 - 4.1.3 Ensure private key permissions are restricted

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target nginx