Skip to content

Commit b4c7041

Browse files
committedMar 12, 2024
apache: parameterise mod_evasive
1 parent b42a65b commit b4c7041

File tree

5 files changed

+28
-17
lines changed

5 files changed

+28
-17
lines changed
 

‎cookbooks/apache/attributes/default.rb

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,10 @@
3030

3131
default[:apache][:buffered_logs] = true
3232

33-
default[:apache][:evasive] = true
33+
default[:apache][:evasive][:enable] = true
34+
default[:apache][:evasive][:dos_hash_table_size] = 65536
35+
default[:apache][:evasive][:dos_page_count] = 50
36+
default[:apache][:evasive][:dos_site_count] = 250
37+
default[:apache][:evasive][:dos_page_interval] = 1
38+
default[:apache][:evasive][:dos_site_interval] = 1
39+
default[:apache][:evasive][:dos_blocking_period] = 60

‎cookbooks/apache/recipes/default.rb

+9-8
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,6 @@
6262
notifies :restart, "service[apache2]"
6363
end
6464

65-
service "apache2" do
66-
action [:enable, :start]
67-
retries 2
68-
retry_delay 10
69-
supports :status => true, :restart => true, :reload => true
70-
end
71-
7265
apache_module "info" do
7366
conf "info.conf.erb"
7467
variables :hosts => admins["hosts"]
@@ -79,7 +72,7 @@
7972
variables :hosts => admins["hosts"]
8073
end
8174

82-
if node[:apache][:evasive]
75+
if node[:apache][:evasive][:enable]
8376
apache_module "evasive" do
8477
conf "evasive.conf.erb"
8578
end
@@ -104,6 +97,14 @@
10497
template "ssl.erb"
10598
end
10699

100+
# Apache should only be started after modules enabled
101+
service "apache2" do
102+
action [:enable, :start]
103+
retries 2
104+
retry_delay 10
105+
supports :status => true, :restart => true, :reload => true
106+
end
107+
107108
fail2ban_filter "apache-forbidden" do
108109
action :delete
109110
end
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# DO NOT EDIT - This file is being maintained by Chef
22

33
<IfModule mod_evasive20.c>
4-
DOSHashTableSize 65536
5-
DOSPageCount 50
6-
DOSSiteCount 250
7-
DOSPageInterval 1
8-
DOSSiteInterval 1
9-
DOSBlockingPeriod 60
4+
DOSHashTableSize <%= node[:apache][:evasive][:dos_hash_table_size] %>
5+
DOSPageCount <%= node[:apache][:evasive][:dos_page_count] %>
6+
DOSSiteCount <%= node[:apache][:evasive][:dos_site_count] %>
7+
DOSPageInterval <%= node[:apache][:evasive][:dos_page_interval] %>
8+
DOSSiteInterval <%= node[:apache][:evasive][:dos_site_interval] %>
9+
DOSBlockingPeriod <%= node[:apache][:evasive][:dos_blocking_period] %>
1010
</IfModule>

‎roles/prometheus.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33

44
default_attributes(
55
:apache => {
6-
:evasive => false
6+
:evasive => {
7+
:enable => false
8+
}
79
}
810
)
911

‎roles/tile.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
:apache => {
1414
:mpm => "event",
1515
:timeout => 60,
16-
:evasive => false,
16+
:evasive => {
17+
:enable => false
18+
},
1719
:event => {
1820
:threads_per_child => 20,
1921
:min_spare_threads => 300,

0 commit comments

Comments
 (0)