diff --git a/docs/source/advanced/security/apache_hardening.rst b/docs/source/advanced/security/apache_hardening.rst index 22787ffbc..a07ac58ef 100644 --- a/docs/source/advanced/security/apache_hardening.rst +++ b/docs/source/advanced/security/apache_hardening.rst @@ -23,13 +23,27 @@ provisioning scripts crawl recursively. **Apache 2.4** (RHEL 7+, SLES 12+, Ubuntu 16.04+):: # /etc/httpd/conf.d/xcat.conf + ServerTokens Prod + - Options FollowSymLinks Includes MultiViews + Options FollowSymLinks + + Header always set X-Frame-Options SAMEORIGIN + Header always set X-Content-Type-Options nosniff + Header always set Content-Security-Policy "script-src 'self' 'unsafe-eval'" + Header always set X-Permitted-Cross-Domain-Policies none + AllowOverride None Require all granted - Options FollowSymLinks Includes MultiViews + Options FollowSymLinks + + Header always set X-Frame-Options SAMEORIGIN + Header always set X-Content-Type-Options nosniff + Header always set Content-Security-Policy "script-src 'self' 'unsafe-eval'" + Header always set X-Permitted-Cross-Domain-Policies none + AllowOverride None Require all granted @@ -47,14 +61,28 @@ provisioning scripts crawl recursively. **Apache 2.2** (RHEL 6, SLES 11):: # /etc/httpd/conf.d/xcat.conf + ServerTokens Prod + - Options FollowSymLinks Includes MultiViews + Options FollowSymLinks + + Header always set X-Frame-Options SAMEORIGIN + Header always set X-Content-Type-Options nosniff + Header always set Content-Security-Policy "script-src 'self' 'unsafe-eval'" + Header always set X-Permitted-Cross-Domain-Policies none + AllowOverride None Order allow,deny Allow from all - Options FollowSymLinks Includes MultiViews + Options FollowSymLinks + + Header always set X-Frame-Options SAMEORIGIN + Header always set X-Content-Type-Options nosniff + Header always set Content-Security-Policy "script-src 'self' 'unsafe-eval'" + Header always set X-Permitted-Cross-Domain-Policies none + AllowOverride None Order allow,deny Allow from all @@ -79,6 +107,23 @@ provisioning scripts crawl recursively. download all files from these directories and depend on Apache directory listings to discover file paths. +Security Response Headers and Server Banner +------------------------------------------- + +xCAT configures ``ServerTokens Prod`` to omit the Apache version and operating +system from the HTTP ``Server`` header. It also applies the following response +headers to ``/install`` and ``/tftpboot``: + +* ``X-Frame-Options: SAMEORIGIN`` +* ``X-Content-Type-Options: nosniff`` +* ``Content-Security-Policy: script-src 'self' 'unsafe-eval'`` +* ``X-Permitted-Cross-Domain-Policies: none`` + +These directives require ``mod_headers``. The xCAT packages enable that module +on distributions where it is not loaded by default and activate the updated +configuration during installation or upgrade. Keep the ``Header always set`` +directives when adding local access-control rules to either directory. + Sensitive Directories --------------------- @@ -141,7 +186,13 @@ For additional protection, restrict access to the provisioning subnet:: # Apache 2.4+ - Options FollowSymLinks Includes MultiViews + Options FollowSymLinks + + Header always set X-Frame-Options SAMEORIGIN + Header always set X-Content-Type-Options nosniff + Header always set Content-Security-Policy "script-src 'self' 'unsafe-eval'" + Header always set X-Permitted-Cross-Domain-Policies none + AllowOverride None Require ip 10.0.0.0/16