]> git.openstreetmap.org Git - chef.git/blob - cookbooks/wordpress/templates/default/apache.erb
Harden forum web server config
[chef.git] / cookbooks / wordpress / templates / default / apache.erb
1 # DO NOT EDIT - This file is being maintained by Chef
2
3 <VirtualHost *:80>
4   ServerName <%= @name %>
5 <% @aliases.each do |alias_name| -%>
6   ServerAlias <%= alias_name %>
7 <% end -%>
8
9   ServerAdmin webmaster@openstreetmap.org
10
11   CustomLog /var/log/apache2/<%= @name %>-access.log combined
12   ErrorLog /var/log/apache2/<%= @name %>-error.log
13
14 <% if @ssl_enabled -%>
15   RedirectPermanent / https://<%= @name %>/
16 </VirtualHost>
17
18 <VirtualHost *:443>
19   ServerName <%= @name %>
20 <% @aliases.each do |alias_name| -%>
21   ServerAlias <%= alias_name %>
22 <% end -%>
23
24   ServerAdmin webmaster@openstreetmap.org
25
26   #
27   # Enable SSL
28   #
29   SSLEngine on
30 <% if @ssl_certificate -%>
31   SSLCertificateFile /etc/ssl/certs/<%= @ssl_certificate %>.pem
32   SSLCertificateKeyFile /etc/ssl/private/<%= @ssl_certificate %>.key
33 <% end -%>
34 <% if @ssl_certificate -%>
35   SSLCertificateChainFile /etc/ssl/certs/<%= @ssl_certificate_chain %>.pem
36 <% end -%>
37
38   CustomLog /var/log/apache2/<%= @name %>-access.log combined
39   ErrorLog /var/log/apache2/<%= @name %>-error.log
40 <% end -%>
41
42   DocumentRoot <%= @directory %>
43 <% @urls.each do |url,directory| -%>
44   Alias <%= url %> <%= directory %>
45 <% end -%>
46
47   php_admin_value open_basedir <%= @directory %>/:/usr/share/php/:/tmp/
48   php_admin_value disable_functions "exec,shell_exec,system,passthru,popen,proc_open"
49   php_value upload_max_filesize 70M
50   php_value post_max_size 100M
51
52   <Directory <%= @directory %>>
53     RewriteEngine on
54
55     RewriteRule ^wp-admin/includes/ - [F,L]
56     RewriteRule !^wp-includes/ - [S=3]
57     RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
58     RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
59     RewriteRule ^wp-includes/theme-compat/ - [F,L]
60     RewriteRule ^readme\.html$ [F,L]
61     RewriteCond %{REQUEST_FILENAME} !-f
62     RewriteCond %{REQUEST_FILENAME} !-d
63     RewriteRule . /index.php [L]
64
65     Options -Indexes
66     AllowOverride AuthConfig
67
68     Require all granted
69   </Directory>
70
71   <Files <%= @directory %>/wp-config.php>
72     Require all denied
73   </Files>
74
75   <Directory <%= @directory %>/uploads>
76     AllowOverride None
77     AddType text/plain .html .htm .shtml
78     php_admin_flag engine off
79   </Directory>
80
81   <Directory ~ "\.svn">
82     Require all denied
83   </Directory>
84
85   <Directory ~ "\.git">
86     Require all denied
87   </Directory>
88
89   <Files ~ "\.(txt|md)$">
90     Require all denied
91   </Files>
92
93   <Files ~ "~$">
94     Require all denied
95   </Files>
96 </VirtualHost>