enforced_directives: # httpd directives enforced in all configuration files and sections # data structure : # directive: # value: numeric or string - value to enforce # add_if_absent: False (default) - True -> add it to server configuration if it is absent from pillar # onlyif_pillar_is: different (default) |greater|lower -> compare numeric values # - greater : enforce value if the pillar content is > value # - lower : enforce value if the pillar content is < value # match : regex # container : enforce only on the specified container # regex_group_position : the position of the group to substitute in regex # values : list of dict - for multiple replacements in the same directive # Set TimeOut to 10 or less Timeout: value: 10 onlyif_pillar_is: 'greater' add_if_absent: True # Set Timeout Limits for Request Headers RequestReadTimeout: values: - match: '(?<=header=)(\d+-)?(\d+)' value: 40 onlyif_pillar_is: 'greater' regex_group_position: 2 - match: '(?<=body=)(\d+-)?(\d+)' value: 20 onlyif_pillar_is: 'greater' regex_group_position: 2 # Disable the SSL v3.0 Protocol SSLProtocol: value: '' match: '(?<!-)((\+)?SSLv3)' regex_group_position: 1 # Minimize Options for Directories to NOT have a value of Includes Options: match: '(?<!-)((\+)?Includes)' value: '' regex_group_position: 1 container: 'Directory' # Set the KeepAlive directive to On KeepAlive: value: 'On' add_if_absent: True # Set MaxKeepAliveRequests to 100 or greater MaxKeepAliveRequests: value: 100 onlyif_pillar_is: 'lower' add_if_absent: True # Set KeepAliveTimeout to 15 or less KeepAliveTimeout: value: 15 onlyif_pillar_is: 'greater' add_if_absent: True # Disable HTTP TRACE Method TraceEnable: value: 'off' add_if_absent: True # Set ServerSignature to 'Off' ServerSignature: value: 'off' add_if_absent: True # Set ServerToken to 'Prod' ServerTokens: value: 'Prod' # Secure Core Dump Directory CoreDumpDirectory: value: '/var/log/httpd' # Disable SSL Insecure Renegotiation SSLInsecureRenegotiation: value: 'off' # Ensure SSL Compression is not Enabled SSLCompression: value: 'off' # Restrict Override AllowOverride: value: 'None' AllowOverrideList: value: 'None' PidFile: value: '/etc/httpd/run/httpd.pid' ScoreBoardFile: value: '/var/run/apache_runtime_status' SSLHonorCipherOrder: value: 'On' enforced_containers: # httpd sections (containers) enforced in all configuration files and sections Directory: # Restrict Override for the OS Root Directory - item: '/' directives: - AllowOverride: 'None' - Require: 'all denied' - Options: 'None' # Limit HTTP Request Methods - item: '/var/www' directives: - Options: 'None' containers: LimitExcept: - item: 'GET POST OPTIONS' directives: - Require: 'all denied' FilesMatch: # Restrict Access to .ht* files - item: '"^\.ht"' directives: - Require: 'all denied' containers_to_remove: # Remove Default HTML Content Location: - '/server-info' - '/server-status' - '/perl-status' server_supplemental_directives: # httpd directives added as it in httpd.conf # Restrict HTTP protocol versions - RewriteEngine: 'On' - RewriteCond: '%{THE_REQUEST} !HTTP/1\.1$' - RewriteRule: '.* - [F]' vhost_supplemental_directives: # httpd directives added as it in vhost config file # Inherit server options - RewriteEngine: 'On' - RewriteOptions: 'Inherit' modules: # httpd modules: enforce enabled and disabled enforce_disabled: - "dav" - "dav_fs" - "status" - "autoindex" - "userdir" - "info" enforce_enabled: - "log_config" - "reqtimeout" - "rewrite"