TMAegisBeta
More rules for apache

Apache HTTP Server

TMA-APACHE-8.1

Ensure ServerTokens is Set to 'Prod' or 'ProductOnly'

LowLevel 1Automatedapache

Description

Configure the Apache ServerTokens directive to provide minimal information. By setting the value to Prod or ProductOnly. The only version information given in the server HTTP response header will be Apache rather than details on modules and versions installed. The effective (last) ServerTokens must be Prod or ProductOnly; the default Full fails. Reads the main configuration (APACHE_CONF overrides; default /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf or /usr/local/apache2/conf/httpd.conf) and every Include/IncludeOptional file.

How it is checked

Audit method: Shell command

shell
c=${APACHE_CONF:-}; if [ -z "$c" ]; then for f in /etc/apache2/apache2.conf /etc/httpd/conf/httpd.conf /usr/local/apache2/conf/httpd.conf /etc/apache2/httpd.conf; do [ -f "$f" ] && { c=$f; break; }; done; fi; [ -r "$c" ] || exit 1; R=$(awk 'tolower($1)=="serverroot"{v=$2; gsub(/"/,"",v); print v; exit}' "$c"); [ -n "$R" ] || R=$(dirname "$c"); shopt -s nocasematch; inc(){ local p g l; [ ${#FUNCNAME[@]} -lt 16 ] || return 0; p=$1; case $p in /*) ;; *) p=$R/$p;; esac; [ -d "$p" ] && p="$p/*"; for g in $p; do [ -f "$g" ] || continue; while IFS= read -r l || [ -n "$l" ]; do if [[ $l =~ ^[[:space:]]*include(optional)?[[:space:]]+\"?([^\"[:space:]]+) ]]; then inc "${BASH_REMATCH[2]}"; else printf '%s\n' "$l"; fi; done < "$g"; done; }; cfg=$(inc "$c" | sed -e 's/^[[:space:]]*//' -e '/^#/d' -e '/^$/d'); shopt -u nocasematch; printf '%s\n' "$cfg" | awk 'tolower($1)=="servertokens"{v=tolower($2)} END{print (v=="prod"||v=="productonly")?"compliant":"noncompliant"}'
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Set ServerTokens Prod in the main configuration. Then run apachectl configtest and reload Apache.

Properties

Operating systems
Any
Tags
apacheinformation-disclosure
Reference
CIS Apache HTTP Server 2.4 Benchmark v2.4.0 - 8.1 Ensure ServerTokens is Set to 'Prod' or 'ProductOnly'

Check this host

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

shell
tmaegis scan --target apache