summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerg G. Brester <github@sebres.de>2017-03-09 15:15:26 +0100
committerGitHub <noreply@github.com>2017-03-09 15:15:26 +0100
commitd0429819547eaf528f61251ea110e67495dc1f95 (patch)
treeef01a3afdf2822a4c7e106ab91a8afda98e2a2f1
parente71f3d595fc36fa8fcbe739159f14386fcbd9b76 (diff)
parentb1f5ac948431cfac4089c18df016f6cd02976fa9 (diff)
downloadfail2ban-d0429819547eaf528f61251ea110e67495dc1f95.tar.gz
Merge pull request #1655 from ajcollett/0.10
Added config for AbuseIPDB
-rw-r--r--ChangeLog4
-rw-r--r--THANKS2
-rw-r--r--config/action.d/abuseipdb.conf105
-rw-r--r--config/jail.conf6
4 files changed, 117 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d2284473..0aa96031 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -128,6 +128,10 @@ ver. 0.10.0-alpha-1 (2016/07/14) - ipv6-support-etc
if configuration is clean (fails by wrong configured jails if option `-t` specified)
* New command action parameter `actionrepair` - command executed in order to restore
sane environment in error case of `actioncheck`.
+* Reporting via abuseipdb.com:
+ - Bans can now be reported to abuseipdb
+ - Catagories must be set in the config
+ - Relevant log lines included in report
### Enhancements
* Huge increasing of fail2ban performance and especially test-cases performance (see gh-1109)
diff --git a/THANKS b/THANKS
index e89fd3fd..8cc8f7bd 100644
--- a/THANKS
+++ b/THANKS
@@ -16,6 +16,7 @@ Alexander Koeppe (IPv6 support)
Alexandre Perrin (kAworu)
Amir Caspi
Amy
+Andrew James Collett (ajcollett)
Andrew St. Jean
Andrey G. Grozin
Andy Fragen
@@ -111,6 +112,7 @@ Sean DuBois
Sebastian Arcus
Serg G. Brester
Sergey Safarov
+Shaun C.
Sireyessire
silviogarbes
Stefan Tatschner
diff --git a/config/action.d/abuseipdb.conf b/config/action.d/abuseipdb.conf
new file mode 100644
index 00000000..15e41fbe
--- /dev/null
+++ b/config/action.d/abuseipdb.conf
@@ -0,0 +1,105 @@
+# Fail2ban configuration file
+#
+# Action to report IP address to abuseipdb.com
+# You must sign up to obtain an API key from abuseipdb.com.
+#
+# NOTE: These reports may include sensitive Info.
+# If you want cleaner reports that ensure no user data see the helper script at the below website.
+#
+# IMPORTANT:
+#
+# Reporting an IP of abuse is a serious complaint. Make sure that it is
+# serious. Fail2ban developers and network owners recommend you only use this
+# action for:
+# * The recidive where the IP has been banned multiple times
+# * Where maxretry has been set quite high, beyond the normal user typing
+# password incorrectly.
+# * For filters that have a low likelihood of receiving human errors
+#
+# This action relies on a api_key being added to the above action conf,
+# and the appropriate categories set.
+#
+# Example, for ssh bruteforce (in section [sshd] of `jail.local`):
+# action = %(known/action)s
+# %(action_abuseipdb)s[abuseipdb_apikey="my-api-key", abuseipdb_category="18,22"]
+#
+# See below for catagories.
+#
+# Original Ref: https://wiki.shaunc.com/wikka.php?wakka=ReportingToAbuseIPDBWithFail2Ban
+# Added to fail2ban by Andrew James Collett (ajcollett)
+
+## abuseIPDB Catagories, `the abuseipdb_category` MUST be set in the jail.conf action call.
+# Example, for ssh bruteforce: action = %(action_abuseipdb)s[abuseipdb_category="18,22"]
+# ID Title Description
+# 3 Fraud Orders
+# 4 DDoS Attack
+# 9 Open Proxy
+# 10 Web Spam
+# 11 Email Spam
+# 14 Port Scan
+# 18 Brute-Force
+# 19 Bad Web Bot
+# 20 Exploited Host
+# 21 Web App Attack
+# 22 SSH Secure Shell (SSH) abuse. Use this category in combination with more specific categories.
+# 23 IoT Targeted
+# See https://abuseipdb.com/categories for more descriptions
+
+[Definition]
+
+# Option: actionstart
+# Notes.: command executed once at the start of Fail2Ban.
+# Values: CMD
+#
+actionstart =
+
+# Option: actionstop
+# Notes.: command executed once at the end of Fail2Ban
+# Values: CMD
+#
+actionstop =
+
+# Option: actioncheck
+# Notes.: command executed once before each actionban command
+# Values: CMD
+#
+actioncheck =
+
+# Option: actionban
+# Notes.: command executed when banning an IP. Take care that the
+# command is executed with Fail2Ban user rights.
+#
+# ** IMPORTANT! **
+#
+# By default, this posts directly to AbuseIPDB's API, unfortunately
+# this results in a lot of backslashes/escapes appearing in the
+# reports. This also may include info like your hostname.
+# If you have your own web server with PHP available, you can
+# use my (Shaun's) helper PHP script by commenting out the first #actionban
+# line below, uncommenting the second one, and pointing the URL at
+# wherever you install the helper script. For the PHP helper script, see
+# <https://wiki.shaunc.com/wikka.php?wakka=ReportingToAbuseIPDBWithFail2Ban>
+#
+# --ciphers ecdhe_ecdsa_aes_256_sha is used to workaround a
+# "NSS error -12286" from curl as it attempts to connect using
+# SSLv3. See https://www.centos.org/forums/viewtopic.php?t=52732
+# Tags: See jail.conf(5) man page
+# Values: CMD
+#
+actionban = curl --fail --ciphers ecdhe_ecdsa_aes_256_sha --data 'key=<abuseipdb_apikey>' --data-urlencode 'comment=<matches>' --data 'ip=<ip>' --data 'category=<abuseipdb_category>' "https://www.abuseipdb.com/report/json"
+
+# Option: actionunban
+# Notes.: command executed when unbanning an IP. Take care that the
+# command is executed with Fail2Ban user rights.
+# Tags: See jail.conf(5) man page
+# Values: CMD
+#
+actionunban =
+
+[Init]
+# Option: abuseipdb_apikey
+# Notes Your API key from abuseipdb.com
+# Values: STRING Default: None
+# Register for abuseipdb [https://www.abuseipdb.com], get api key and set below.
+# You will need to set the catagory in the action call.
+abuseipdb_apikey =
diff --git a/config/jail.conf b/config/jail.conf
index 169bd00e..3e917b34 100644
--- a/config/jail.conf
+++ b/config/jail.conf
@@ -207,6 +207,12 @@ action_badips = badips.py[category="%(__name__)s", banaction="%(banaction)s", ag
#
action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]
+# Report ban via abuseipdb.com.
+#
+# See action.d/abuseipdb.conf for usage example and details.
+#
+action_abuseipdb = abuseipdb
+
# 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