From 5361f997c9e1f20d3b90a8d2240a430bd0b7e071 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sat, 5 Aug 2017 14:03:52 +0100 Subject: [PATCH 01/10] checking auto-carriage return --- manifests/params.pp | 10 +- templates/jail_local.erb | 698 ++------------------------------------- 2 files changed, 31 insertions(+), 677 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 2c92324..8e52965 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -100,6 +100,11 @@ # 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. ############################################################################### class cd_fail2ban::params ( @@ -136,7 +141,10 @@ $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"]', ) { diff --git a/templates/jail_local.erb b/templates/jail_local.erb index 0437371..36893a2 100644 --- a/templates/jail_local.erb +++ b/templates/jail_local.erb @@ -8,43 +8,31 @@ [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 %> +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 %> -# -# 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"] +action_ = <%= @fn_action_ %> +action_mw = <%= @fn_action_mw %> # ban & send an e-mail with whois report and relevant log lines # to the destemail. @@ -90,645 +78,3 @@ action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s # 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 From fa4758835e44da1e8b120ae0996ad5d18f592fe3 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 15:30:02 +0100 Subject: [PATCH 02/10] finalized jail.local --- manifests/params.pp | 81 ++++++++++++++++++++------------- templates/jail_local.erb | 97 +++++++++++++--------------------------- 2 files changed, 81 insertions(+), 97 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 8e52965..14ffafd 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -105,46 +105,65 @@ # @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_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_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 36893a2..c64f2f2 100644 --- a/templates/jail_local.erb +++ b/templates/jail_local.erb @@ -8,73 +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 %> -banaction = <%= @fn_banaction %> -banaction_allports = <%= @fn_banaction_allports %> +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 %> -action_ = <%= @fn_action_ %> -action_mw = <%= @fn_action_mw %> +# 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 %> -# 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 +# Default action +action = %(<%= @fn_default_action %>)s From f99b816612294392e4bc105798f47962eb407558 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 15:38:42 +0100 Subject: [PATCH 03/10] testing multiline break --- manifests/params.pp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manifests/params.pp b/manifests/params.pp index 14ffafd..031388d 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -156,7 +156,8 @@ $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_mw = @(EOT) '%(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"]' | EOT, $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"]', From 329a1f904f459155c96eeceed80ec1223f8dad8b Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 15:45:32 +0100 Subject: [PATCH 04/10] testing multiline break --- manifests/params.pp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manifests/params.pp b/manifests/params.pp index 031388d..6b76d8c 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -157,7 +157,8 @@ $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 = @(EOT) '%(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"]' | EOT, + "%(mta)s-whois[name=%(__name__)s, sender=\"%(sender)s\", dest=\"%(destemail)s\", protocol=\"%(protocol)s\", chain=\"%(chain)s\"]' + | EOT, $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"]', From c54dc53df69bf1c8f9b860beb8c3cb904d084cdb Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 15:52:24 +0100 Subject: [PATCH 05/10] testing multiline break --- manifests/params.pp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 6b76d8c..732eca7 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -156,9 +156,8 @@ $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 = @(EOT) '%(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\"]' - | EOT, +$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"]', From df2a6fc42cf16097ba5550708a3af59245b06af1 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 15:57:38 +0100 Subject: [PATCH 06/10] testing multiline break --- manifests/params.pp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 732eca7..e905dc3 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -157,10 +157,13 @@ $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"]', + %(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"]', From d1a208d5c4176f80e69cdbccbff18758fc73583e Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 16:01:46 +0100 Subject: [PATCH 07/10] testing multiline break --- manifests/params.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index e905dc3..cc6e207 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -157,13 +157,13 @@ $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"]', + %(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"]', + %(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"]', + 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"]', + %(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"]', From 36c79fcaf3d99fde55acb4aa8562cdf72d01b5f8 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 16:04:43 +0100 Subject: [PATCH 08/10] adjusting multiline break --- manifests/params.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index cc6e207..104f722 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 @@ -144,7 +144,7 @@ $fn_maxretry = '5', $fn_backend = 'auto', $fn_usedns = 'warn', $fn_logencoding = 'auto', -$fn_enabled = 'false', +$fn_enabled = false, $fn_filter = '%(__name__)s', $fn_destemail = 'root@localhost', $fn_sender = 'root@localhost', From 7e856636a16ccf745b63b197b95165199fae65a8 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Sun, 6 Aug 2017 16:07:51 +0100 Subject: [PATCH 09/10] adjusting multiline break --- manifests/params.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 104f722..2056c4d 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -157,13 +157,13 @@ $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"]', + %(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"]', + %(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"]', + 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"]', + %(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"]', From 19cf115fce3293d3cd011257760b95c74ea3f362 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sun, 6 Aug 2017 17:07:25 +0200 Subject: [PATCH 10/10] recommit for updates in build 21 --- CHANGELOG.md | 20 ++ doc/_index.html | 2 +- doc/file.README.html | 2 +- doc/index.html | 2 +- doc/puppet_classes/cd_fail2ban.html | 2 +- .../cd_fail2ban_3A_3Amain_3A_3Aconfig.html | 2 +- .../cd_fail2ban_3A_3Amain_3A_3Adirs.html | 2 +- .../cd_fail2ban_3A_3Amain_3A_3Afiles.html | 2 +- .../cd_fail2ban_3A_3Amain_3A_3Ainstall.html | 2 +- .../cd_fail2ban_3A_3Amain_3A_3Aservice.html | 2 +- .../cd_fail2ban_3A_3Aparams.html | 338 +++++++++++++++--- doc/top-level-namespace.html | 2 +- 12 files changed, 317 insertions(+), 61 deletions(-) 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 @@