--- /dev/null
+#
+# Cookbook Name:: networking
+# Definition:: fail2ban_jail
+#
+# Copyright 2013, OpenStreetMap Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+define :fail2ban_jail, :action => :create do
+ config = resources(:template => "/etc/fail2ban/jail.local")
+
+ config.variables[:jails] << Hash[
+ :name => params[:name],
+ :filter => params[:filter],
+ :logpath => params[:logpath],
+ :protocol => params[:protocol],
+ :port => Array(params[:ports]).join(","),
+ :maxretry => params[:maxretry]
+ ]
+end
destemail = admins@openstreetmap.org
banaction = shorewall
bantime = 14400
+<% @jails.each do |jail| -%>
+
+[<%= jail[:name] %>]
+enabled = true
+<% if jail[:protocol] -%>
+protocol = <%= jail[:protocol] %>
+<% end -%>
+port = <%= jail[:port] %>
+filter = <%= jail[:filter] %>
+logpath = <%= jail[:logpath] %>
+<% if jail[:maxretry] -%>
+maxretry = <%= jail[:maxretry] %>
+<% end -%>
+<% end -%>
apache_module "php5"
apache_module "rewrite"
+
+remote_file "/etc/fail2ban/filter.d/wordpress.conf" do
+ action :create_if_missing
+ source "http://plugins.svn.wordpress.org/wp-fail2ban/trunk/wordpress.conf"
+ owner "root"
+ group "root"
+ mode 0644
+end
+
+fail2ban_jail "wordpress" do
+ filter "wordpress"
+ logpath "/var/log/auth.log"
+ ports 80, 443
+end