我想使用regex-variable
将CIDR子网掩码从filter.conf提交到action.conf。这个想法是用 fail2ban 阻止/禁止 IP 范围。由于iptables与CIDR一起使用,我想通过fail2ban使用它。这可能吗?
所以我想将 failregex 变量
mask
提交给操作脚本。这是我创建 mask
变量的失败正则表达式:
filter.d/test-filter.conf
[Definition]
failregex = ^<HOST>\/(?P<mask>(8|16|24|32))
我的测试字符串如下所示:
10.10.10.10/16 [2015-02-11 12:00:00]
。
这是我的 ActionScript ,如果我直接或通过jail.local设置
mask
变量,它可以正常工作(例如:action = 测试操作[mask=16]
)。
action.d/test-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
最佳答案
自从提出这个问题以来,有一种很少记录的方法可以使用此类变量将数据从过滤器传递到操作:
您只需在变量名称前面加上“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
...
抱歉重新提出一个老问题..
关于regex - 如何将正则表达式变量提交到fail2ban中的 ActionScript ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463719/