X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/a37b5cd0a0de895d04066f08aef048de3082257f..8e010de9a9d26d57220d326e69bb0440098cf22e:/cookbooks/fail2ban/resources/jail.rb diff --git a/cookbooks/fail2ban/resources/jail.rb b/cookbooks/fail2ban/resources/jail.rb index 01d9c502c..e5801c065 100644 --- a/cookbooks/fail2ban/resources/jail.rb +++ b/cookbooks/fail2ban/resources/jail.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: fail2ban +# Cookbook:: fail2ban # Resource:: fail2ban_jail # -# Copyright 2015, OpenStreetMap Foundation +# Copyright:: 2015, 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 +# https://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, @@ -17,20 +17,49 @@ # limitations under the License. # -actions :create, :delete +unified_mode true + default_action :create -attribute :name, :kind_of => String, :name_attribute => true -attribute :filter, :kind_of => String -attribute :logpath, :kind_of => String -attribute :protocol, :kind_of => String -attribute :ports, :kind_of => Array, :default => [] -attribute :maxretry, :kind_of => Integer +property :jail, :kind_of => String, :name_property => true +property :filter, :kind_of => String +property :backend, :kind_of => String +property :journalmatch, :kind_of => String +property :logpath, :kind_of => String +property :protocol, :kind_of => String +property :ports, :kind_of => Array, :default => [] +property :bantime, :kind_of => [Integer, String] +property :findtime, :kind_of => [Integer, String] +property :maxretry, :kind_of => Integer +property :ignoreips, :kind_of => Array -def after_created - if node[:lsb][:release].to_f >= 14.04 - notifies :reload, "service[fail2ban]" - else - notifies :create, "template[/etc/fail2ban/jail.local]" +action :create do + template "/etc/fail2ban/jail.d/50-#{new_resource.jail}.conf" do + cookbook "fail2ban" + source "jail.erb" + owner "root" + group "root" + mode "644" + variables :name => new_resource.jail, + :filter => new_resource.filter, + :backend => new_resource.backend, + :journalmatch => new_resource.journalmatch, + :logpath => new_resource.logpath, + :protocol => new_resource.protocol, + :ports => new_resource.ports, + :bantime => new_resource.bantime, + :findtime => new_resource.findtime, + :maxretry => new_resource.maxretry, + :ignoreips => new_resource.ignoreips + end +end + +action :delete do + file "/etc/fail2ban/jail.d/50-#{new_resource.jail}.conf" do + action :delete end end + +def after_created + notifies :restart, "service[fail2ban]" +end