diff --git a/CHANGELOG.md b/CHANGELOG.md index 192962c..399a14e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,26 @@ Changelog of Git Changelog.

No issue

+df59c3e85d59b32 Arne Teuke 2017-08-03 16:33:22 +

+

added more file controls

+ +

+1b33e2a2105237c Jenkins Server 2017-08-03 16:32:58 +

+

recommit for updates in build 12

+ +

+d33c85b30d815d8 Arne Teuke 2017-08-03 16:29:36 +

+

added more file controls

+ +

+e4cfd9c5663c0e2 Arne Teuke 2017-08-03 16:25:10 +

+

added more file controls

+ +

cb4b482e20b2be5 Arne Teuke 2017-08-03 14:56:00

fixed controls for main conf/local files

diff --git a/doc/_index.html b/doc/_index.html index a84ecc4..7d7f332 100644 --- a/doc/_index.html +++ b/doc/_index.html @@ -132,7 +132,7 @@ diff --git a/doc/file.README.html b/doc/file.README.html index 026d4df..88f8336 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -251,7 +251,7 @@ environments.

diff --git a/doc/index.html b/doc/index.html index c844152..38cd58d 100644 --- a/doc/index.html +++ b/doc/index.html @@ -251,7 +251,7 @@ environments.

diff --git a/doc/puppet_classes/cd_fail2ban.html b/doc/puppet_classes/cd_fail2ban.html index 98cca7e..c09a4e7 100644 --- a/doc/puppet_classes/cd_fail2ban.html +++ b/doc/puppet_classes/cd_fail2ban.html @@ -139,7 +139,7 @@ class cd_fail2ban { diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aconfig.html index e0aa07f..65525c6 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aconfig.html @@ -153,7 +153,7 @@ class cd_fail2ban::main::config ( diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Adirs.html b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Adirs.html index 2d811b7..8066fa6 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Adirs.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Adirs.html @@ -350,7 +350,7 @@ class cd_fail2ban::main::dirs ( diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Afiles.html b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Afiles.html index 97bae40..1c4a982 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Afiles.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Afiles.html @@ -286,7 +286,7 @@ class cd_fail2ban::main::files ( diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Ainstall.html index f22bf7c..a3c4a1e 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Ainstall.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Ainstall.html @@ -159,7 +159,7 @@ class cd_fail2ban::main::install ( diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aservice.html b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aservice.html index dae961d..a3ec0af 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aservice.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Amain_3A_3Aservice.html @@ -166,7 +166,7 @@ class cd_fail2ban::main::service ( diff --git a/doc/puppet_classes/cd_fail2ban_3A_3Aparams.html b/doc/puppet_classes/cd_fail2ban_3A_3Aparams.html index 58144fa..f266486 100644 --- a/doc/puppet_classes/cd_fail2ban_3A_3Aparams.html +++ b/doc/puppet_classes/cd_fail2ban_3A_3Aparams.html @@ -128,7 +128,9 @@ for more details.

with this program. If not, see www.gnu.org/licenses/. CRITICAL,ERROR,WARNING,NOTICE,INFO -and DEBUG.

+and DEBUG. + @param [string] Report ban via badips.com, and use +as blacklist

@@ -537,10 +539,10 @@ auto: will use the system locale setting

fn_enabled - (string) + (boolean) - (defaults to: 'false') + (defaults to: false) — @@ -714,6 +716,212 @@ href="https://tools.ietf.org/html/rfc7231#section-5.5.3">tools.ietf.org/html/rfc +
  • + + fn_banaction + + + (string) + + + (defaults to: 'iptables-multiport') + + + — +
    +

    Default banning action

    +
    + +
  • + +
  • + + fn_banaction_allports + + + (string) + + + (defaults to: 'iptables-allports') + + + — +
    +

    Default banning action

    +
    + +
  • + +
  • + + fn_action_ + + + (string) + + + (defaults to: '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]') + + + — +
    +

    ban only

    +
    + +
  • + +
  • + + fn_action_mw + + + (string) + + + (defaults to: '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] + %(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]') + + + — +
    +

    ban & send an e-mail with whois report to the +destemail.

    +
    + +
  • + +
  • + + fn_action_mwl + + + (string) + + + (defaults to: '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] + %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]') + + + — +
    +

    ban & send an e-mail with whois report and +relevant log lines

    +
    + +
  • + +
  • + + fn_action_xarf + + + (string) + + + (defaults to: '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] + xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]') + + + — +
    +

    ban & send a xarf e-mail to abuse contact of +IP address and include +relevant log lines.

    +
    + +
  • + +
  • + + fn_action_cf_mwl + + + (string) + + + (defaults to: 'cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"] + %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]') + + + — +
    +

    ban IP on CloudFlare & send an e-mail with +whois report and relevant +log lines.

    +
    + +
  • + +
  • + + fn_action_blocklist_de + + + (string) + + + (defaults to: 'blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]') + + + — +
    +

    Report block via blocklist.de fail2ban +reporting service API

    +
    + +
  • + +
  • + + fn_action_badips_report + + + (string) + + + (defaults to: 'badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]') + + + — +
    +

    Report ban via badips.com

    + +

    (uses action.d/badips.conf for reporting only).

    +
    + +
  • + +
  • + + fn_default_action + + + (string) + + + (defaults to: 'action_') + + + — +
    +

    Choose default action.

    +
    + +
  • + +
  • + + fn_action_badips + + + (Any) + + + (defaults to: 'badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]') + + +
  • + @@ -724,23 +932,6 @@ href="https://tools.ietf.org/html/rfc7231#section-5.5.3">tools.ietf.org/html/rfc
     
     
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
     121
     122
     123
    @@ -804,47 +995,92 @@ href="https://tools.ietf.org/html/rfc7231#section-5.5.3">tools.ietf.org/html/rfc
     181
     182
     183
    -184
    +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 -
    # File 'manifests/params.pp', line 104
    +        
    # File 'manifests/params.pp', line 121
     
     class cd_fail2ban::params (
     
    -$pkg_ensure             = 'latest',
    +$pkg_ensure                 = 'latest',
     
    -$fn_manage_config       = true,
    -$fn_enable_service      = 'running',
    +$fn_manage_config           = true,
    +$fn_enable_service          = 'running',
     
     # fail2ban.conf/local
     
    -$fn_loglevel            = 'INFO',
    -$fn_logtarget           = 'SYSLOG',
    -$fn_syslogsocket        = 'auto',
    -$fn_socket              = '/var/run/fail2ban/fail2ban.sock',
    -$fn_pidfile             = '/var/run/fail2ban/fail2ban.pid',
    -$fn_dbfile              = '/var/lib/fail2ban/fail2ban.sqlite3',
    -$fn_dbpurgeage          = '86400',
    +$fn_loglevel                = 'INFO',
    +$fn_logtarget               = 'SYSLOG',
    +$fn_syslogsocket            = 'auto',
    +$fn_socket                  = '/var/run/fail2ban/fail2ban.sock',
    +$fn_pidfile                 = '/var/run/fail2ban/fail2ban.pid',
    +$fn_dbfile                  = '/var/lib/fail2ban/fail2ban.sqlite3',
    +$fn_dbpurgeage              = '86400',
     
     # jail.conf/local
    -$fn_ignoreip            = '127.0.0.1/8',
    -$fn_ignorecommand       = '',
    -$fn_bantime             = '600',
    -$fn_findtime            = '600',
    -$fn_maxretry            = '5',
    -$fn_backend             = 'auto',
    -$fn_usedns              = 'warn',
    -$fn_logencoding         = 'auto',
    -$fn_enabled             = 'false',
    -$fn_filter              = '%(__name__)s',
    -$fn_destemail           = 'root@localhost',
    -$fn_sender              = 'root@localhost',
    -$fn_mta                 = 'sendmail',
    -$fn_protocol            = 'tcp',
    -$fn_chain               = 'INPUT',
    -$fn_port                = '0:65535',
    -$fn_fail2ban_agent      = 'Fail2Ban/%(fail2ban_version)s',
    -
    +$fn_ignoreip                = '127.0.0.1/8',
    +$fn_ignorecommand           = '',
    +$fn_bantime                 = '600',
    +$fn_findtime                = '600',
    +$fn_maxretry                = '5',
    +$fn_backend                 = 'auto',
    +$fn_usedns                  = 'warn',
    +$fn_logencoding             = 'auto',
    +$fn_enabled                 = false,
    +$fn_filter                  = '%(__name__)s',
    +$fn_destemail               = 'root@localhost',
    +$fn_sender                  = 'root@localhost',
    +$fn_mta                     = 'sendmail',
    +$fn_protocol                = 'tcp',
    +$fn_chain                   = 'INPUT',
    +$fn_port                    = '0:65535',
    +$fn_fail2ban_agent          = 'Fail2Ban/%(fail2ban_version)s',
    +$fn_banaction               = 'iptables-multiport',
    +$fn_banaction_allports      = 'iptables-allports',
    +$fn_action_                 = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]',
    +$fn_action_mw               = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        %(mta)s-whois[name=%(__name__)s,  sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]',
    +$fn_action_mwl              = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]',
    +$fn_action_xarf             = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]',
    +$fn_action_cf_mwl           = 'cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
    +                        %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]',
    +$fn_action_blocklist_de     = 'blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]',
    +$fn_action_badips           = 'badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]',
    +$fn_action_badips_report    = 'badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]',
    +$fn_default_action          = 'action_',
     
     ) {
     
    @@ -897,7 +1133,7 @@ $fn_jail_local_erb      = 'cd_fail2ban/jail_local.erb'
     
     
           
    diff --git a/doc/top-level-namespace.html b/doc/top-level-namespace.html
    index 136fa21..f69125f 100644
    --- a/doc/top-level-namespace.html
    +++ b/doc/top-level-namespace.html
    @@ -90,7 +90,7 @@
     
     
           
    diff --git a/manifests/params.pp b/manifests/params.pp
    index 2c92324..2056c4d 100644
    --- a/manifests/params.pp
    +++ b/manifests/params.pp
    @@ -80,7 +80,7 @@
     #   handled by the jail This is used to decode the lines from the log file.
     #   Typical examples:  "ascii", "utf-8"
     #   auto:   will use the system locale setting
    -# @param  [string] fn_enabled enables the jails.
    +# @param  [boolean] fn_enabled enables the jails.
     #   By default all jails are disabled, and it should stay this way.
     #   Enable only relevant to your setup jails in your .local or jail.d/*.conf
     #   true:  jail will be enabled and log files will get monitored for changes
    @@ -100,43 +100,74 @@
     #   in a particular jail
     # @param  [string] fn_fail2ban_agent Format of user-agent
     #   https://tools.ietf.org/html/rfc7231#section-5.5.3
    +# @param  [string] fn_banaction Default banning action
    +# @param  [string] fn_banaction_allports Default banning action
    +# @param  [string] fn_action_ ban only
    +# @param  [string]  fn_action_mw ban & send an e-mail with whois report to the
    +#   destemail.
    +# @param  [string] fn_action_mwl ban & send an e-mail with whois report and
    +#   relevant log lines
    +# @param [string] fn_action_xarf ban & send a xarf e-mail to abuse contact of
    +#   IP address and include relevant log lines.
    +# @param  [string]  fn_action_cf_mwl ban IP on CloudFlare & send an e-mail with
    +#   whois report and relevant log lines.
    +# @param  [string] fn_action_blocklist_de Report block via blocklist.de fail2ban
    +#   reporting service API
    +#  @param  [string] Report ban via badips.com, and use as blacklist
    +# @param  [string]  fn_action_badips_report # Report ban via badips.com
    +#   (uses action.d/badips.conf for reporting only).
    +# @param  [string]  fn_default_action Choose default action.
     ###############################################################################
     class cd_fail2ban::params (
     
    -$pkg_ensure             = 'latest',
    +$pkg_ensure                 = 'latest',
     
    -$fn_manage_config       = true,
    -$fn_enable_service      = 'running',
    +$fn_manage_config           = true,
    +$fn_enable_service          = 'running',
     
     # fail2ban.conf/local
     
    -$fn_loglevel            = 'INFO',
    -$fn_logtarget           = 'SYSLOG',
    -$fn_syslogsocket        = 'auto',
    -$fn_socket              = '/var/run/fail2ban/fail2ban.sock',
    -$fn_pidfile             = '/var/run/fail2ban/fail2ban.pid',
    -$fn_dbfile              = '/var/lib/fail2ban/fail2ban.sqlite3',
    -$fn_dbpurgeage          = '86400',
    +$fn_loglevel                = 'INFO',
    +$fn_logtarget               = 'SYSLOG',
    +$fn_syslogsocket            = 'auto',
    +$fn_socket                  = '/var/run/fail2ban/fail2ban.sock',
    +$fn_pidfile                 = '/var/run/fail2ban/fail2ban.pid',
    +$fn_dbfile                  = '/var/lib/fail2ban/fail2ban.sqlite3',
    +$fn_dbpurgeage              = '86400',
     
     # jail.conf/local
    -$fn_ignoreip            = '127.0.0.1/8',
    -$fn_ignorecommand       = '',
    -$fn_bantime             = '600',
    -$fn_findtime            = '600',
    -$fn_maxretry            = '5',
    -$fn_backend             = 'auto',
    -$fn_usedns              = 'warn',
    -$fn_logencoding         = 'auto',
    -$fn_enabled             = 'false',
    -$fn_filter              = '%(__name__)s',
    -$fn_destemail           = 'root@localhost',
    -$fn_sender              = 'root@localhost',
    -$fn_mta                 = 'sendmail',
    -$fn_protocol            = 'tcp',
    -$fn_chain               = 'INPUT',
    -$fn_port                = '0:65535',
    -$fn_fail2ban_agent      = 'Fail2Ban/%(fail2ban_version)s',
    -
    +$fn_ignoreip                = '127.0.0.1/8',
    +$fn_ignorecommand           = '',
    +$fn_bantime                 = '600',
    +$fn_findtime                = '600',
    +$fn_maxretry                = '5',
    +$fn_backend                 = 'auto',
    +$fn_usedns                  = 'warn',
    +$fn_logencoding             = 'auto',
    +$fn_enabled                 = false,
    +$fn_filter                  = '%(__name__)s',
    +$fn_destemail               = 'root@localhost',
    +$fn_sender                  = 'root@localhost',
    +$fn_mta                     = 'sendmail',
    +$fn_protocol                = 'tcp',
    +$fn_chain                   = 'INPUT',
    +$fn_port                    = '0:65535',
    +$fn_fail2ban_agent          = 'Fail2Ban/%(fail2ban_version)s',
    +$fn_banaction               = 'iptables-multiport',
    +$fn_banaction_allports      = 'iptables-allports',
    +$fn_action_                 = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]',
    +$fn_action_mw               = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        %(mta)s-whois[name=%(__name__)s,  sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]',
    +$fn_action_mwl              = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]',
    +$fn_action_xarf             = '%(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    +                        xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]',
    +$fn_action_cf_mwl           = 'cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
    +                        %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]',
    +$fn_action_blocklist_de     = 'blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]',
    +$fn_action_badips           = 'badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]',
    +$fn_action_badips_report    = 'badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]',
    +$fn_default_action          = 'action_',
     
     ) {
     
    diff --git a/templates/jail_local.erb b/templates/jail_local.erb
    index 0437371..c64f2f2 100644
    --- a/templates/jail_local.erb
    +++ b/templates/jail_local.erb
    @@ -8,727 +8,38 @@
     
     [INCLUDES]
     
    -before          = paths-<%= @fn_jail_paths %>.conf
    +before                = paths-<%= @fn_jail_paths %>.conf
     
     [DEFAULT]
    -ignoreip        = <%= @fn_ignoreip %>
    -ignorecommand   = <%= @fn_ignorecommand %>
    -bantime         = <%= @fn_bantime %>
    -findtime        = <%= @fn_findtime %>
    -maxretry        = <%= @fn_maxretry %>
    -backend         = <%= @fn_backend %>
    -usedns          = <%= @fn_usedns %>
    -logencoding     = <%= @fn_logencoding %>
    -enabled         = <%= @fn_enabled %>
    -filter          = <%= @fn_enabled %>
    -destemail       = <%= @fn_destemail %>
    -sender          = <%= @fn_sender %>
    -mta             = <%= @fn_sender %>
    -protocol        = <%= @fn_protocol %>
    -chain           = <%= @fn_chain %>
    -port            = <%= @fn_port %>
    -fail2ban_agent  = <%= @fn_fail2ban_agent %>
    -
    -#
    -# Action shortcuts. To be used to define action parameter
    -
    -# Default banning action (e.g. iptables, iptables-new,
    -# iptables-multiport, shorewall, etc) It is used to define
    -# action_* variables. Can be overridden globally or per
    -# section within jail.local file
    -banaction = iptables-multiport
    -banaction_allports = iptables-allports
    -
    -# The simplest action to take: ban only
    -action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    -
    -# ban & send an e-mail with whois report to the destemail.
    -action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    -            %(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
    -
    -# ban & send an e-mail with whois report and relevant log lines
    -# to the destemail.
    -action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    -             %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
    -
    -# See the IMPORTANT note in action.d/xarf-login-attack for when to use this action
    -#
    -# ban & send a xarf e-mail to abuse contact of IP address and include relevant log lines
    -# to the destemail.
    -action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
    -             xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]
    -
    -# ban IP on CloudFlare & send an e-mail with whois report and relevant log lines
    -# to the destemail.
    -action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
    -                %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
    -
    -# Report block via blocklist.de fail2ban reporting service API
    -#
    -# See the IMPORTANT note in action.d/blocklist_de.conf for when to
    -# use this action. Create a file jail.d/blocklist_de.local containing
    -# [Init]
    -# blocklist_de_apikey = {api key from registration]
    -#
    -action_blocklist_de  = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]
    -
    -# Report ban via badips.com, and use as blacklist
    -#
    -# See BadIPsAction docstring in config/action.d/badips.py for
    -# documentation for this action.
    -#
    -# NOTE: This action relies on banaction being present on start and therefore
    -# should be last action defined for a jail.
    -#
    -action_badips = badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]
    -#
    -# Report ban via badips.com (uses action.d/badips.conf for reporting only)
    -#
    -action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]
    -
    -# Choose default action.  To change, just override value of 'action' with the
    -# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
    -# globally (section [DEFAULT]) or per specific section
    -action = %(action_)s
    -
    -
    -#
    -# JAILS
    -#
    -
    -#
    -# SSH servers
    -#
    -
    -[sshd]
    -
    -port    = ssh
    -logpath = %(sshd_log)s
    -backend = %(sshd_backend)s
    -
    -
    -[sshd-ddos]
    -# This jail corresponds to the standard configuration in Fail2ban.
    -# The mail-whois action send a notification e-mail with a whois request
    -# in the body.
    -port    = ssh
    -logpath = %(sshd_log)s
    -backend = %(sshd_backend)s
    -
    -
    -[dropbear]
    -
    -port     = ssh
    -logpath  = %(dropbear_log)s
    -backend  = %(dropbear_backend)s
    -
    -
    -[selinux-ssh]
    -
    -port     = ssh
    -logpath  = %(auditd_log)s
    -
    -
    -#
    -# HTTP servers
    -#
    -
    -[apache-auth]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -
    -
    -[apache-badbots]
    -# Ban hosts which agent identifies spammer robots crawling the web
    -# for email addresses. The mail outputs are buffered.
    -port     = http,https
    -logpath  = %(apache_access_log)s
    -bantime  = 172800
    -maxretry = 1
    -
    -
    -[apache-noscript]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -
    -
    -[apache-overflows]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -maxretry = 2
    -
    -
    -[apache-nohome]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -maxretry = 2
    -
    -
    -[apache-botsearch]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -maxretry = 2
    -
    -
    -[apache-fakegooglebot]
    -
    -port     = http,https
    -logpath  = %(apache_access_log)s
    -maxretry = 1
    -ignorecommand = %(ignorecommands_dir)s/apache-fakegooglebot 
    -
    -
    -[apache-modsecurity]
    -
    -port     = http,https
    -logpath  = %(apache_error_log)s
    -maxretry = 2
    -
    -
    -[apache-shellshock]
    -
    -port    = http,https
    -logpath = %(apache_error_log)s
    -maxretry = 1
    -
    -
    -[openhab-auth]
    -
    -filter = openhab
    -action = iptables-allports[name=NoAuthFailures]
    -logpath = /opt/openhab/logs/request.log
    -
    -
    -[nginx-http-auth]
    -
    -port    = http,https
    -logpath = %(nginx_error_log)s
    -
    -# To use 'nginx-limit-req' jail you should have `ngx_http_limit_req_module`
    -# and define `limit_req` and `limit_req_zone` as described in nginx documentation
    -# http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
    -# or for example see in 'config/filter.d/nginx-limit-req.conf'
    -[nginx-limit-req]
    -port    = http,https
    -logpath = %(nginx_error_log)s
    -
    -[nginx-botsearch]
    -
    -port     = http,https
    -logpath  = %(nginx_error_log)s
    -maxretry = 2
    -
    -
    -# Ban attackers that try to use PHP's URL-fopen() functionality
    -# through GET/POST variables. - Experimental, with more than a year
    -# of usage in production environments.
    -
    -[php-url-fopen]
    -
    -port    = http,https
    -logpath = %(nginx_access_log)s
    -          %(apache_access_log)s
    -
    -
    -[suhosin]
    -
    -port    = http,https
    -logpath = %(suhosin_log)s
    -
    -
    -[lighttpd-auth]
    -# Same as above for Apache's mod_auth
    -# It catches wrong authentifications
    -port    = http,https
    -logpath = %(lighttpd_error_log)s
    -
    -
    -#
    -# Webmail and groupware servers
    -#
    -
    -[roundcube-auth]
    -
    -port     = http,https
    -logpath  = %(roundcube_errors_log)s
    -
    -
    -[openwebmail]
    -
    -port     = http,https
    -logpath  = /var/log/openwebmail.log
    -
    -
    -[horde]
    -
    -port     = http,https
    -logpath  = /var/log/horde/horde.log
    -
    -
    -[groupoffice]
    -
    -port     = http,https
    -logpath  = /home/groupoffice/log/info.log
    -
    -
    -[sogo-auth]
    -# Monitor SOGo groupware server
    -# without proxy this would be:
    -# port    = 20000
    -port     = http,https
    -logpath  = /var/log/sogo/sogo.log
    -
    -
    -[tine20]
    -
    -logpath  = /var/log/tine20/tine20.log
    -port     = http,https
    -
    -
    -#
    -# Web Applications
    -#
    -#
    -
    -[drupal-auth]
    -
    -port     = http,https
    -logpath  = %(syslog_daemon)s
    -backend  = %(syslog_backend)s
    -
    -[guacamole]
    -
    -port     = http,https
    -logpath  = /var/log/tomcat*/catalina.out
    -
    -[monit]
    -#Ban clients brute-forcing the monit gui login
    -port = 2812
    -logpath  = /var/log/monit
    -
    -
    -[webmin-auth]
    -
    -port    = 10000
    -logpath = %(syslog_authpriv)s
    -backend = %(syslog_backend)s
    -
    -
    -[froxlor-auth]
    -
    -port    = http,https
    -logpath  = %(syslog_authpriv)s
    -backend  = %(syslog_backend)s
    -
    -
    -#
    -# HTTP Proxy servers
    -#
    -#
    -
    -[squid]
    -
    -port     =  80,443,3128,8080
    -logpath = /var/log/squid/access.log
    -
    -
    -[3proxy]
    -
    -port    = 3128
    -logpath = /var/log/3proxy.log
    -
    -
    -#
    -# FTP servers
    -#
    -
    -
    -[proftpd]
    -
    -port     = ftp,ftp-data,ftps,ftps-data
    -logpath  = %(proftpd_log)s
    -backend  = %(proftpd_backend)s
    -
    -
    -[pure-ftpd]
    -
    -port     = ftp,ftp-data,ftps,ftps-data
    -logpath  = %(pureftpd_log)s
    -backend  = %(pureftpd_backend)s
    -
    -
    -[gssftpd]
    -
    -port     = ftp,ftp-data,ftps,ftps-data
    -logpath  = %(syslog_daemon)s
    -backend  = %(syslog_backend)s
    -
    -
    -[wuftpd]
    -
    -port     = ftp,ftp-data,ftps,ftps-data
    -logpath  = %(wuftpd_log)s
    -backend  = %(wuftpd_backend)s
    -
    -
    -[vsftpd]
    -# or overwrite it in jails.local to be
    -# logpath = %(syslog_authpriv)s
    -# if you want to rely on PAM failed login attempts
    -# vsftpd's failregex should match both of those formats
    -port     = ftp,ftp-data,ftps,ftps-data
    -logpath  = %(vsftpd_log)s
    -
    -
    -#
    -# Mail servers
    -#
    -
    -# ASSP SMTP Proxy Jail
    -[assp]
    -
    -port     = smtp,465,submission
    -logpath  = /root/path/to/assp/logs/maillog.txt
    -
    -
    -[courier-smtp]
    -
    -port     = smtp,465,submission
    -logpath  = %(syslog_mail)s
    -backend  = %(syslog_backend)s
    -
    -
    -[postfix]
    -
    -port     = smtp,465,submission
    -logpath  = %(postfix_log)s
    -backend  = %(postfix_backend)s
    -
    -
    -[postfix-rbl]
    -
    -port     = smtp,465,submission
    -logpath  = %(postfix_log)s
    -backend  = %(postfix_backend)s
    -maxretry = 1
    -
    -
    -[sendmail-auth]
    -
    -port    = submission,465,smtp
    -logpath = %(syslog_mail)s
    -backend = %(syslog_backend)s
    -
    -
    -[sendmail-reject]
    -
    -port     = smtp,465,submission
    -logpath  = %(syslog_mail)s
    -backend  = %(syslog_backend)s
    -
    -
    -[qmail-rbl]
    -
    -filter  = qmail
    -port    = smtp,465,submission
    -logpath = /service/qmail/log/main/current
    -
    -
    -# dovecot defaults to logging to the mail syslog facility
    -# but can be set by syslog_facility in the dovecot configuration.
    -[dovecot]
    -
    -port    = pop3,pop3s,imap,imaps,submission,465,sieve
    -logpath = %(dovecot_log)s
    -backend = %(dovecot_backend)s
    -
    -
    -[sieve]
    -
    -port   = smtp,465,submission
    -logpath = %(dovecot_log)s
    -backend = %(dovecot_backend)s
    -
    -
    -[solid-pop3d]
    -
    -port    = pop3,pop3s
    -logpath = %(solidpop3d_log)s
    -
    -
    -[exim]
    -
    -port   = smtp,465,submission
    -logpath = %(exim_main_log)s
    -
    -
    -[exim-spam]
    -
    -port   = smtp,465,submission
    -logpath = %(exim_main_log)s
    -
    -
    -[kerio]
    -
    -port    = imap,smtp,imaps,465
    -logpath = /opt/kerio/mailserver/store/logs/security.log
    -
    -
    -#
    -# Mail servers authenticators: might be used for smtp,ftp,imap servers, so
    -# all relevant ports get banned
    -#
    -
    -[courier-auth]
    -
    -port     = smtp,465,submission,imap3,imaps,pop3,pop3s
    -logpath  = %(syslog_mail)s
    -backend  = %(syslog_backend)s
    -
    -
    -[postfix-sasl]
    -
    -port     = smtp,465,submission,imap3,imaps,pop3,pop3s
    -# You might consider monitoring /var/log/mail.warn instead if you are
    -# running postfix since it would provide the same log lines at the
    -# "warn" level but overall at the smaller filesize.
    -logpath  = %(postfix_log)s
    -backend  = %(postfix_backend)s
    -
    -
    -[perdition]
    -
    -port   = imap3,imaps,pop3,pop3s
    -logpath = %(syslog_mail)s
    -backend = %(syslog_backend)s
    -
    -
    -[squirrelmail]
    -
    -port = smtp,465,submission,imap2,imap3,imaps,pop3,pop3s,http,https,socks
    -logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
    -
    -
    -[cyrus-imap]
    -
    -port   = imap3,imaps
    -logpath = %(syslog_mail)s
    -backend = %(syslog_backend)s
    -
    -
    -[uwimap-auth]
    -
    -port   = imap3,imaps
    -logpath = %(syslog_mail)s
    -backend = %(syslog_backend)s
    -
    -
    -#
    -#
    -# DNS servers
    -#
    -
    -
    -# !!! WARNING !!!
    -#   Since UDP is connection-less protocol, spoofing of IP and imitation
    -#   of illegal actions is way too simple.  Thus enabling of this filter
    -#   might provide an easy way for implementing a DoS against a chosen
    -#   victim. See
    -#    http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html
    -#   Please DO NOT USE this jail unless you know what you are doing.
    -#
    -# IMPORTANT: see filter.d/named-refused for instructions to enable logging
    -# This jail blocks UDP traffic for DNS requests.
    -# [named-refused-udp]
    -#
    -# filter   = named-refused
    -# port     = domain,953
    -# protocol = udp
    -# logpath  = /var/log/named/security.log
    -
    -# IMPORTANT: see filter.d/named-refused for instructions to enable logging
    -# This jail blocks TCP traffic for DNS requests.
    -
    -[named-refused]
    -
    -port     = domain,953
    -logpath  = /var/log/named/security.log
    -
    -
    -[nsd]
    -
    -port     = 53
    -action   = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
    -           %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
    -logpath = /var/log/nsd.log
    -
    -
    -#
    -# Miscellaneous
    -#
    -
    -[asterisk]
    -
    -port     = 5060,5061
    -action   = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
    -           %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
    -           %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
    -logpath  = /var/log/asterisk/messages
    -maxretry = 10
    -
    -
    -[freeswitch]
    -
    -port     = 5060,5061
    -action   = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
    -           %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
    -           %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
    -logpath  = /var/log/freeswitch.log
    -maxretry = 10
    -
    -
    -# To log wrong MySQL access attempts add to /etc/my.cnf in [mysqld] or
    -# equivalent section:
    -# log-warning = 2
    -#
    -# for syslog (daemon facility)
    -# [mysqld_safe]
    -# syslog
    -#
    -# for own logfile
    -# [mysqld]
    -# log-error=/var/log/mysqld.log
    -[mysqld-auth]
    -
    -port     = 3306
    -logpath  = %(mysql_log)s
    -backend  = %(mysql_backend)s
    -
    -
    -# Log wrong MongoDB auth (for details see filter 'filter.d/mongodb-auth.conf')
    -[mongodb-auth]
    -# change port when running with "--shardsvr" or "--configsvr" runtime operation
    -port     = 27017
    -logpath  = /var/log/mongodb/mongodb.log
    -
    -
    -# Jail for more extended banning of persistent abusers
    -# !!! WARNINGS !!!
    -# 1. Make sure that your loglevel specified in fail2ban.conf/.local
    -#    is not at DEBUG level -- which might then cause fail2ban to fall into
    -#    an infinite loop constantly feeding itself with non-informative lines
    -# 2. Increase dbpurgeage defined in fail2ban.conf to e.g. 648000 (7.5 days)
    -#    to maintain entries for failed logins for sufficient amount of time
    -[recidive]
    -
    -logpath  = /var/log/fail2ban.log
    -banaction = %(banaction_allports)s
    -bantime  = 604800  ; 1 week
    -findtime = 86400   ; 1 day
    -
    -
    -# Generic filter for PAM. Has to be used with action which bans all
    -# ports such as iptables-allports, shorewall
    -
    -[pam-generic]
    -# pam-generic filter can be customized to monitor specific subset of 'tty's
    -banaction = %(banaction_allports)s
    -logpath  = %(syslog_authpriv)s
    -backend  = %(syslog_backend)s
    -
    -
    -[xinetd-fail]
    -
    -banaction = iptables-multiport-log
    -logpath   = %(syslog_daemon)s
    -backend   = %(syslog_backend)s
    -maxretry  = 2
    -
    -
    -# stunnel - need to set port for this
    -[stunnel]
    -
    -logpath = /var/log/stunnel4/stunnel.log
    -
    -
    -[ejabberd-auth]
    -
    -port    = 5222
    -logpath = /var/log/ejabberd/ejabberd.log
    -
    -
    -[counter-strike]
    -
    -logpath = /opt/cstrike/logs/L[0-9]*.log
    -# Firewall: http://www.cstrike-planet.com/faq/6
    -tcpport = 27030,27031,27032,27033,27034,27035,27036,27037,27038,27039
    -udpport = 1200,27000,27001,27002,27003,27004,27005,27006,27007,27008,27009,27010,27011,27012,27013,27014,27015
    -action  = %(banaction)s[name=%(__name__)s-tcp, port="%(tcpport)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
    -           %(banaction)s[name=%(__name__)s-udp, port="%(udpport)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
    -
    -# consider low maxretry and a long bantime
    -# nobody except your own Nagios server should ever probe nrpe
    -[nagios]
    -
    -logpath  = %(syslog_daemon)s     ; nrpe.cfg may define a different log_facility
    -backend  = %(syslog_backend)s
    -maxretry = 1
    -
    -
    -[oracleims]
    -# see "oracleims" filter file for configuration requirement for Oracle IMS v6 and above
    -logpath = /opt/sun/comms/messaging64/log/mail.log_current
    -banaction = %(banaction_allports)s
    -
    -[directadmin]
    -logpath = /var/log/directadmin/login.log
    -port = 2222
    -
    -[portsentry]
    -logpath  = /var/lib/portsentry/portsentry.history
    -maxretry = 1
    -
    -[pass2allow-ftp]
    -# this pass2allow example allows FTP traffic after successful HTTP authentication
    -port         = ftp,ftp-data,ftps,ftps-data
    -# knocking_url variable must be overridden to some secret value in jail.local
    -knocking_url = /knocking/
    -filter       = apache-pass[knocking_url="%(knocking_url)s"]
    -# access log of the website with HTTP auth
    -logpath      = %(apache_access_log)s
    -blocktype    = RETURN
    -returntype   = DROP
    -bantime      = 3600
    -maxretry     = 1
    -findtime     = 1
    -
    -
    -[murmur]
    -# AKA mumble-server
    -port     = 64738
    -action   = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol=tcp, chain="%(chain)s", actname=%(banaction)s-tcp]
    -           %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol=udp, chain="%(chain)s", actname=%(banaction)s-udp]
    -logpath  = /var/log/mumble-server/mumble-server.log
    -
    -
    -[screensharingd]
    -# For Mac OS Screen Sharing Service (VNC)
    -logpath  = /var/log/system.log
    -logencoding = utf-8
    -
    -[haproxy-http-auth]
    -# HAProxy by default doesn't log to file you'll need to set it up to forward
    -# logs to a syslog server which would then write them to disk.
    -# See "haproxy-http-auth" filter for a brief cautionary note when setting
    -# maxretry and findtime.
    -logpath  = /var/log/haproxy.log
    -
    -[slapd]
    -port    = ldap,ldaps
    -filter  = slapd
    -logpath = /var/log/slapd.log
    +ignoreip              = <%= @fn_ignoreip %>
    +ignorecommand         = <%= @fn_ignorecommand %>
    +bantime               = <%= @fn_bantime %>
    +findtime              = <%= @fn_findtime %>
    +maxretry              = <%= @fn_maxretry %>
    +backend               = <%= @fn_backend %>
    +usedns                = <%= @fn_usedns %>
    +logencoding           = <%= @fn_logencoding %>
    +enabled               = <%= @fn_enabled %>
    +filter                = <%= @fn_enabled %>
    +destemail             = <%= @fn_destemail %>
    +sender                = <%= @fn_sender %>
    +mta                   = <%= @fn_sender %>
    +protocol              = <%= @fn_protocol %>
    +chain                 = <%= @fn_chain %>
    +port                  = <%= @fn_port %>
    +fail2ban_agent        = <%= @fn_fail2ban_agent %>
    +banaction             = <%= @fn_banaction %>
    +banaction_allports    = <%= @fn_banaction_allports %>
    +
    +# available actions
    +action_               = <%= @fn_action_ %>
    +action_mw             = <%= @fn_action_mw %>
    +action_mwl            = <%= @fn_action_mwl %>
    +action_xarf           = <%= @fn_action_xarf %>
    +action_cf_mwl         = <%= @fn_action_cf_mwl %>
    +action_blocklist_de   = <%= @fn_action_blocklist_de %>
    +action_badips         = <%= @fn_action_badips %>
    +action_badips_report  = <%= @fn_action_badips_report %>
    +
    +# Default action
    +action                = %(<%= @fn_default_action %>)s