Index: modules/fail2ban/manifests/filter.pp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/modules/fail2ban/manifests/filter.pp |
@@ -0,0 +1,47 @@ |
+# == Type: fail2ban::filter |
+# |
+# Manage filter information and files for any custom filter. |
+# |
+# == Parameters: |
+# |
+# [*regexes*] |
+# 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': |
+# regexes => [ |
+# '^<HOST>.*\"WordPress\/.*', |
+# '^.*\"WordPress\/.*<HOST>.*', |
+# ], |
+# 'ensure' => 'present', |
+# } |
+# |
+define fail2ban::filter ( |
+ $regexes = [], |
+ $ensure = 'present', |
+) { |
+ |
+ include fail2ban |
+ include stdlib |
+ |
+ if (size($regexes) == 0) and ($ensure == 'present') { |
+ fail("An array of one or more regular expressions is needed if you want", |
+ "to create a filter file.") |
mathias
2016/12/01 09:28:30
Please do not personalized messages ("you"). There
f.lopez
2016/12/01 10:16:04
Acknowledged.
|
+ } |
+ |
+ file {"/etc/fail2ban/filter.d/$title.conf": |
mathias
2016/12/01 09:28:30
Please use $name (and document that this parameter
f.lopez
2016/12/01 10:16:04
Acknowledged.
|
+ ensure => $ensure, |
+ content => template("fail2ban/filter.erb"), |
+ group => 'root', |
+ mode => '0644', |
+ owner => 'root', |
+ require => Package['fail2ban'], |
+ notify => Service['fail2ban'], |
+ } |
+} |
+ |