# Well, IncludeOptional behaved lile Include | # Well, IncludeOptional behaved lile Include | ||||
IncludeOptional etc/apache24/extra/security.con[f] | IncludeOptional etc/apache24/extra/security.con[f] | ||||
{% if salt['pillar.get']('apache:mod_ssl:manage_tls_defaults', False) -%} | |||||
Include etc/apache24/extra/tls-defaults.conf | |||||
{%- endif %} | |||||
Include etc/apache24/Includes/*.conf | Include etc/apache24/Includes/*.conf | ||||
# any virtual host | # any virtual host | ||||
Include /etc/apache2/ssl-global.conf | Include /etc/apache2/ssl-global.conf | ||||
{% if salt['pillar.get']('apache:mod_ssl:manage_tls_defaults', False) -%} | |||||
Include /etc/apache24/conf.d/tls-defaults.conf | |||||
{%- %} | |||||
# global (server-wide) protocol configuration, that is not specific | # global (server-wide) protocol configuration, that is not specific | ||||
# to any virtual host | # to any virtual host | ||||
Include /etc/apache2/protocols.conf | Include /etc/apache2/protocols.conf |
# Managed by saltstack | |||||
{% set data = { | |||||
'SSLCipherSuite': 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA', | |||||
'SSLCompression': 'Off', | |||||
'SSLProtocol': 'all -SSLv2 -SSLv3 -TLSv1', | |||||
'SSLHonorCipherOrder': 'On', | |||||
'SSLOptions': '+StrictRequire', | |||||
} -%} | |||||
{%- do data.update(salt['pillar.get']('apache:mod_ssl', {})) %} | |||||
<IfModule mod_ssl.c> | |||||
{%- for key, value in data.items() %} | |||||
{%- if not key == 'manage_tls_defaults' %} | |||||
{{ key }} {{ value }} | |||||
{%- endif %} | |||||
{%- endfor %} | |||||
</IfModule> |
- module: apache-restart | - module: apache-restart | ||||
{% endif %} | {% endif %} | ||||
{{ apache.confdir }}/tls-defaults.conf: | |||||
{% if salt['pillar.get']('apache:mod_ssl:manage_tls_defaults', False) %} | |||||
file.managed: | |||||
- source: salt://apache/files/tls-defaults.conf.jinja | |||||
- mode: 644 | |||||
- template: jinja | |||||
{% else %} | |||||
file.absent: | |||||
{% endif %} | |||||
- require: | |||||
- pkg: apache | |||||
- watch_in: | |||||
- module: apache-restart | |||||
{% if grains['os_family']=="Debian" %} | |||||
a2endisconf tls-defaults: | |||||
cmd.run: | |||||
{% if salt['pillar.get']('apache:mod_ssl:manage_tls_defaults', False) %} | |||||
- name: a2enconf tls-defaults | |||||
- unless: test -L /etc/apache2/conf-enabled/tls-defaults.conf | |||||
{% else %} | |||||
- name: a2disconf tls-defaults | |||||
- onlyif: test -L /etc/apache2/conf-enabled/tls-defaults.conf | |||||
{% endif %} | |||||
- order: 225 | |||||
- require: | |||||
- pkg: apache | |||||
- file: {{ apache.confdir }}/tls-defaults.conf | |||||
- watch_in: | |||||
- module: apache-restart | |||||
{% endif %} |
file: 'my name' | file: 'my name' | ||||
path: 'salt://path/to/modsecurity/custom/file' | path: 'salt://path/to/modsecurity/custom/file' | ||||
enabled: True | enabled: True | ||||
mod_ssl: | |||||
# set this to True if you want to override your distributions default TLS configuration | |||||
manage_tls_defaults: False | |||||
# This stuff is deliberately not configured via map.jinja resp. apache:lookup. | |||||
# We're unable to know sane defaults for each release of every distribution. | |||||
# See https://github.com/saltstack-formulas/openssh-formula/issues/102 for a related discussion | |||||
# Have a look at bettercrypto.org for up-to-date settings. | |||||
# These are default values: | |||||
SSLCipherSuite: EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA | |||||
# Mitigate the CRIME attack | |||||
SSLCompression: Off | |||||
SSLProtocol: all -SSLv2 -SSLv3 -TLSv1 | |||||
SSLHonorCipherOrder: On | |||||
SSLOptions: "+StrictRequire" | |||||