我想使用regex-variable
将filter.conf中的 CIDR 子网掩码提交到action.conf。我们的想法是阻止/禁止使用fail2ban的ip-range。由于 iptables 适用于 CIDR ,我想通过fail2ban使用它。这可能吗?
<小时/> 所以我想将 failregex变量
mask
提交给action-script。这是我的failregex创建mask
变量:
filter.d /测试filter.conf
[Definition]
failregex = ^<HOST>\/(?P<mask>(8|16|24|32))
<小时/> 我的测试字符串如下所示:
10.10.10.10/16 [2015-02-11 12:00:00]
。
mask
变量或通过 jail.local (例如:action = test-action[mask=16]
),它可以正常工作。
action.d /测试action.conf
[Definition]
...
actionban = iptables -I fail2ban-<name> 1 -s <ip>/<mask> -j DROP
actionunban = iptables -D fail2ban-<name> -s <ip>/<mask> -j DROP
...
[Init]
# Option: mask
# Notes.: used to ban an address-range by netmask(s) in CIDR notation.
# Values: [ 32 | 24 | 16 | 8 ] Default: 32
#
mask = 32
这是我的jail.local(没有任何变量集)。
jail.local
[test]
enabled = true
action = test-action
filter = test-filter
logpath = /etc/fail2ban/test.log
maxretry = 5
findtime = 1000
bantime = -1
答案 0 :(得分:2)
由于提出了这个问题,因此,使用这种变量将数据从过滤器传递到操作的方式几乎没有文献记载:
您只需在变量名前加上'F-',并且整个内容必须为大写。.
因此,在您的情况下,您可以在过滤器中使用:
[Definition]
failregex = ^<HOST>\/(?P<F-MASK>(8|16|24|32)</F-MASK>)
您的操作将如下所示:
[Definition]
...
actionban = iptables -I fail2ban-<name> 1 -s <ip>/<F-MASK> -j DROP
actionunban = iptables -D fail2ban-<name> -s <ip>/<F-MASK> -j DROP
...
很抱歉,这个老问题复活了。
答案 1 :(得分:0)
您的问题的答案是否。标记<ip> <matches> <failures> etc.
都是fail2ban提供的特殊标记,您无法在ACTIONS中访问过滤器正则表达式的捕获组中的任何数据。
我在fail2ban项目中为此类功能打开了一个问题。 https://github.com/fail2ban/fail2ban/issues/1110