Index: modules/fail2ban/manifests/filter.pp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/modules/fail2ban/manifests/filter.pp |
@@ -0,0 +1,44 @@ |
+# == Type: fail2ban::filter |
+# |
+# Manage filter information and files for any custom filter. |
+# |
+# == Parameters: |
+# |
+# [*failregex*] |
+# Array of strings containing the regular expressions applied to |
+# the filter. |
+# |
+# [*ensure*] |
+# Translates directly into the state of the file resource. |
+# |
+# === Examples: |
+# |
+# fail2ban::filter => {'CVE-2013-0235': |
+# failregex => [ |
+# '^<HOST>.*\"WordPress\/.*', |
+# '^.*\"WordPress\/.*<HOST>.*' |
+# ], |
+# 'ensure' => 'present', |
+# } |
+define fail2ban::filter ( |
+ $failregex = [], |
+ $ensure = 'present', |
+) { |
+ |
+ include fail2ban |
+ include stdlib |
+ |
+ if (size($failregex) == 0) and ($ensure == 'present') { |
+ fail('Require an array of string[s] with the regex patterns to apply.') |
+ } |
+ |
+ file {"/etc/fail2ban/filter.d/$title.conf": |
+ ensure => $ensure, |
+ content => template("fail2ban/filter.erb"), |
+ group => 'root', |
+ mode => '0644', |
+ owner => 'root', |
+ require => Package['fail2ban'], |
+ notify => Service['fail2ban'], |
+ } |
+} |