summaryrefslogtreecommitdiff
path: root/config/action.d
diff options
context:
space:
mode:
authorsebres <serg.brester@sebres.de>2020-01-17 08:56:15 +0100
committersebres <serg.brester@sebres.de>2020-02-14 12:16:26 +0100
commitceeba99f25763378c19e5779ddbd0ac7d31caa88 (patch)
treefe5d4266d4f3ac99787db6a22436eead1fe12b42 /config/action.d
parentd26209e2c6683298ef8662025693428aec5211a2 (diff)
downloadfail2ban-ceeba99f25763378c19e5779ddbd0ac7d31caa88.tar.gz
replace internals of several iptables-ipset actions using internals of iptables include:
- better check mechanism (using `-C`, option `--check` is available long time); - additionally iptables-ipset is a common action for iptables-ipset-proto6-* now (which become obsolete now); - many features of different iptables actions are combinable as single chain/rule (can be supplied to action as parameters); - tests adjusted.
Diffstat (limited to 'config/action.d')
-rw-r--r--config/action.d/iptables-ipset-proto4.conf5
-rw-r--r--config/action.d/iptables-ipset-proto6-allports.conf60
-rw-r--r--config/action.d/iptables-ipset-proto6.conf60
-rw-r--r--config/action.d/iptables-ipset.conf82
-rw-r--r--config/action.d/iptables.conf15
5 files changed, 99 insertions, 123 deletions
diff --git a/config/action.d/iptables-ipset-proto4.conf b/config/action.d/iptables-ipset-proto4.conf
index b46893cb..2e2f5779 100644
--- a/config/action.d/iptables-ipset-proto4.conf
+++ b/config/action.d/iptables-ipset-proto4.conf
@@ -28,7 +28,7 @@ before = iptables.conf
# Values: CMD
#
actionstart = ipset --create f2b-<name> iphash
- <iptables> -I <chain> -p <protocol> -m multiport --dports <port> -m set --match-set f2b-<name> src -j <blocktype>
+ <iptables> -I <chain> %(_ipt_chain_rule)s
# Option: actionflush
@@ -61,5 +61,6 @@ actionban = ipset --test f2b-<name> <ip> || ipset --add f2b-<name> <ip>
#
actionunban = ipset --test f2b-<name> <ip> && ipset --del f2b-<name> <ip>
-[Init]
+# Several capabilities used internaly:
+rule-jump = -m set --match-set f2b-<name> src -j <blocktype>
diff --git a/config/action.d/iptables-ipset-proto6-allports.conf b/config/action.d/iptables-ipset-proto6-allports.conf
index bbef6fb7..1aa7fd6f 100644
--- a/config/action.d/iptables-ipset-proto6-allports.conf
+++ b/config/action.d/iptables-ipset-proto6-allports.conf
@@ -15,65 +15,13 @@
#
# Modified: Alexander Koeppe <format_c@online.de>, Serg G. Brester <serg.brester@sebres.de>
# made config file IPv6 capable (see new section Init?family=inet6)
+#
+# Obsolete: superseded by iptables-ipset[type=allports]
[INCLUDES]
-before = iptables.conf
+before = iptables-ipset.conf
[Definition]
-# Option: actionstart
-# Notes.: command executed on demand at the first ban (or at the start of Fail2Ban if actionstart_on_demand is set to false).
-# Values: CMD
-#
-actionstart = ipset create <ipmset> hash:ip timeout <default-timeout><familyopt>
- <iptables> -I <chain> -m set --match-set <ipmset> src -j <blocktype>
-
-# Option: actionflush
-# Notes.: command executed once to flush IPS, by shutdown (resp. by stop of the jail or this action)
-# Values: CMD
-#
-actionflush = ipset flush <ipmset>
-
-# Option: actionstop
-# Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
-# Values: CMD
-#
-actionstop = <iptables> -D <chain> -m set --match-set <ipmset> src -j <blocktype>
- <actionflush>
- ipset destroy <ipmset>
-
-# Option: actionban
-# Notes.: command executed when banning an IP. Take care that the
-# command is executed with Fail2Ban user rights.
-# Tags: See jail.conf(5) man page
-# Values: CMD
-#
-actionban = ipset add <ipmset> <ip> timeout <bantime> -exist
-
-actionprolong = %(actionban)s
-
-# 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 = ipset del <ipmset> <ip> -exist
-
-[Init]
-
-# Option: default-timeout
-# Notes: specifies default timeout in seconds (handled default ipset timeout only)
-# Values: [ NUM ] Default: 600
-
-default-timeout = 600
-
-ipmset = f2b-<name>
-familyopt =
-
-
-[Init?family=inet6]
-
-ipmset = f2b-<name>6
-familyopt = <sp>family inet6
+type = allports
diff --git a/config/action.d/iptables-ipset-proto6.conf b/config/action.d/iptables-ipset-proto6.conf
index 4fa0860d..ef744984 100644
--- a/config/action.d/iptables-ipset-proto6.conf
+++ b/config/action.d/iptables-ipset-proto6.conf
@@ -15,65 +15,13 @@
#
# Modified: Alexander Koeppe <format_c@online.de>, Serg G. Brester <serg.brester@sebres.de>
# made config file IPv6 capable (see new section Init?family=inet6)
+#
+# Obsolete: superseded by iptables-ipset[type=multiport]
[INCLUDES]
-before = iptables.conf
+before = iptables-ipset.conf
[Definition]
-# Option: actionstart
-# Notes.: command executed on demand at the first ban (or at the start of Fail2Ban if actionstart_on_demand is set to false).
-# Values: CMD
-#
-actionstart = ipset create <ipmset> hash:ip timeout <default-timeout><familyopt>
- <iptables> -I <chain> -p <protocol> -m multiport --dports <port> -m set --match-set <ipmset> src -j <blocktype>
-
-# Option: actionflush
-# Notes.: command executed once to flush IPS, by shutdown (resp. by stop of the jail or this action)
-# Values: CMD
-#
-actionflush = ipset flush <ipmset>
-
-# Option: actionstop
-# Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
-# Values: CMD
-#
-actionstop = <iptables> -D <chain> -p <protocol> -m multiport --dports <port> -m set --match-set <ipmset> src -j <blocktype>
- <actionflush>
- ipset destroy <ipmset>
-
-# Option: actionban
-# Notes.: command executed when banning an IP. Take care that the
-# command is executed with Fail2Ban user rights.
-# Tags: See jail.conf(5) man page
-# Values: CMD
-#
-actionban = ipset add <ipmset> <ip> timeout <bantime> -exist
-
-actionprolong = %(actionban)s
-
-# 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 = ipset del <ipmset> <ip> -exist
-
-[Init]
-
-# Option: default-timeout
-# Notes: specifies default timeout in seconds (handled default ipset timeout only)
-# Values: [ NUM ] Default: 600
-
-default-timeout = 600
-
-ipmset = f2b-<name>
-familyopt =
-
-
-[Init?family=inet6]
-
-ipmset = f2b-<name>6
-familyopt = <sp>family inet6
+type = multiport
diff --git a/config/action.d/iptables-ipset.conf b/config/action.d/iptables-ipset.conf
new file mode 100644
index 00000000..076aabe6
--- /dev/null
+++ b/config/action.d/iptables-ipset.conf
@@ -0,0 +1,82 @@
+# Fail2Ban configuration file
+#
+# Authors: Sergey G Brester (sebres), Daniel Black, Alexander Koeppe
+#
+# This is for ipset protocol 6 (and hopefully later) (ipset v6.14).
+# Use ipset -V to see the protocol and version. Version 4 should use
+# iptables-ipset-proto4.conf.
+#
+# This requires the program ipset which is normally in package called ipset.
+#
+# IPset was a feature introduced in the linux kernel 2.6.39 and 3.0.0 kernels.
+#
+# If you are running on an older kernel you make need to patch in external
+# modules.
+#
+
+[INCLUDES]
+
+before = iptables.conf
+
+[Definition]
+
+# Option: actionstart
+# Notes.: command executed on demand at the first ban (or at the start of Fail2Ban if actionstart_on_demand is set to false).
+# Values: CMD
+#
+actionstart = ipset create <ipmset> hash:ip timeout <default-timeout><familyopt>
+ <iptables> -I <chain> %(_ipt_chain_rule)s
+
+# Option: actionflush
+# Notes.: command executed once to flush IPS, by shutdown (resp. by stop of the jail or this action)
+# Values: CMD
+#
+actionflush = ipset flush <ipmset>
+
+# Option: actionstop
+# Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
+# Values: CMD
+#
+actionstop = <iptables> -D <chain> %(_ipt_chain_rule)s
+ <actionflush>
+ ipset destroy <ipmset>
+
+# Option: actionban
+# Notes.: command executed when banning an IP. Take care that the
+# command is executed with Fail2Ban user rights.
+# Tags: See jail.conf(5) man page
+# Values: CMD
+#
+actionban = ipset add <ipmset> <ip> timeout <bantime> -exist
+
+actionprolong = %(actionban)s
+
+# 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 = ipset del <ipmset> <ip> -exist
+
+# Several capabilities used internaly:
+
+rule-jump = -m set --match-set <ipmset> src -j <blocktype>
+
+
+[Init]
+
+# Option: default-timeout
+# Notes: specifies default timeout in seconds (handled default ipset timeout only)
+# Values: [ NUM ] Default: 600
+
+default-timeout = 600
+
+ipmset = f2b-<name>
+familyopt =
+
+
+[Init?family=inet6]
+
+ipmset = f2b-<name>6
+familyopt = <sp>family inet6
diff --git a/config/action.d/iptables.conf b/config/action.d/iptables.conf
index d31b49aa..d8845173 100644
--- a/config/action.d/iptables.conf
+++ b/config/action.d/iptables.conf
@@ -12,12 +12,6 @@
#
type = oneport
-# Option: rule
-# Notes.: type of the iptables rule.
-# Values: [ iptables | ipset ] Default: iptables
-#
-rule = iptables
-
# Option: actionflush
# Notes.: command executed once to flush IPS, by shutdown (resp. by stop of the jail or this action)
# Values: CMD
@@ -67,22 +61,25 @@ actionunban = <iptables> -D f2b-<name> -s <ip> -j <blocktype>
#
pre-rule =
+rule-jump = -j <_ipt_rule_target>
+
# Several capabilities used internaly:
_ipt_chain_rule = <pre-rule><ipt_<type>/_chain_rule>
_ipt_check_rule = <iptables> -C <chain> %(_ipt_chain_rule)s
+_ipt_rule_target = f2b-<name>
[ipt_oneport]
-_chain_rule = -p <protocol> --dport <port> -j f2b-<name>
+_chain_rule = -p <protocol> --dport <port> <rule-jump>
[ipt_multiport]
-_chain_rule = -p <protocol> -m multiport --dports <port> -j f2b-<name>
+_chain_rule = -p <protocol> -m multiport --dports <port> <rule-jump>
[ipt_allports]
-_chain_rule = -p <protocol> -j f2b-<name>
+_chain_rule = -p <protocol> <rule-jump>
[Init]