{% from "apache/map.jinja" import apache with context %} {% import_yaml "apache/hardening-values.yaml" as hardening_values %} {% import_yaml "apache/defaults/" ~ salt['grains.get']('os_family') ~ "/defaults-apache-" ~ apache.version ~ ".yaml" as global_defaults %} include: - apache - apache.mod_ssl - apache.hardening {# merge defaults with pillar content #} {% set pillar_server_config = salt['pillar.get']('apache:server_apache_config', {}) %} {% set server_config = salt['apache_directives.merge_container_with_additional_data']( global_defaults.server_apache_config, pillar_server_config) %} {# enforce directives values #} {% for directive, directive_data in hardening_values.enforced_directives.items() %} {% set server_config = salt['apache_directives.enforce_directive_value'](directive, directive_data, container_name='server', container_data=server_config) %} {% endfor %} {# merge server config with hardened sections #} {% set server_config = salt['apache_directives.enforce_security_directives_into_containers']( server_config, hardening_values.enforced_containers ) %} {# remove containers #} {% for container_name_to_remove, items_names in hardening_values.containers_to_remove.items() %} {% for item_name in items_names %} {% set server_config = salt['apache_directives.remove_container']( server_config, container_name_to_remove, item_name) %} {% endfor %} {% endfor %} {# add supplemental security directives in server configuration #} {% for d_directive in hardening_values.server_supplemental_directives %} {% for directive, value in d_directive.items() %} {% set server_config = salt['apache_directives.append_to_container_directives']( directive, value, server_config) %} {% endfor %} {% endfor %} {% if grains['os_family']=="RedHat" %} {{ apache.logdir }}: file.directory: - makedirs: True - require: - pkg: apache - user: root - group: {{ apache.group }} - dir_mode: 750 - watch_in: - module: apache-restart - require_in: - module: apache-restart - module: apache-reload - service: apache {{ apache.configfile }}: file.managed: - template: jinja - source: - salt://apache/files/{{ salt['grains.get']('os_family') }}/apache-{{ apache.version }}.config.jinja - user: root - group: root - mode: 644 - require: - pkg: apache - watch_in: - module: apache-restart - require_in: - module: apache-restart - module: apache-reload - service: apache - context: apache: {{ apache | json}} server_config: {{ server_config | json }} {{ apache.vhostdir }}: file.directory: - makedirs: True - require: - pkg: apache - user: root - group: root - dir_mode: 755 - file_mode: 644 - recurse: - user - group - mode - watch_in: - module: apache-restart - require_in: - module: apache-restart - module: apache-reload - service: apache {{ apache.confdir }}/welcome.conf: file.managed: - source: - salt://apache/files/{{ salt['grains.get']('os_family') }}/welcome.conf - user: root - group: root - mode: 644 - require: - pkg: apache - watch_in: - service: apache {% endif %}