Index: modules/fail2ban/manifests/filter.pp
===================================================================
new file mode 100644
--- /dev/null
+++ b/modules/fail2ban/manifests/filter.pp
@@ -0,0 +1,39 @@
+# == Type: fail2ban::filter
+#
+# Manage filter information and files for any custom filter we create
+#
+# == Parameters:
+#
+# [*failregex*]
+#   The regular expressions used to detect break-in attempts, password failures, etc.
+#   One per line
+#
+# === Examples:
+#
+#   filters => {
+#     'wordpress' => {
+#       failregex => [
+# 	  '^<HOST>.*\"WordPress\/.*',
+# 	],
+#     }
+#   },
+define fail2ban::filter (
+  $failregex = undef,
+  $ensure = 'present',
+) {
+
+  include fail2ban
+  include stdlib
+
+  if $failregex != undef {
+    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'],
+    }
+  }
+}
\ No newline at end of file
