是否可以使用 fail2ban 正则表达式检测 MAC 地址?
我能做什么:检测源IP地址
来自日志文件
Jan 18 11:15:14 server kernel: [DROP]IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=1.2.3.4 DST=4.5.6.7 LEN=40 TOS=0x00 PREC=0x00 TTL=239
Fail2ban 失败正则表达式
failregex = \[DROP\]IN=.* OUT= MAC=.* SRC=<HOST>*
给
1.2.3.4
因此。然后,任何fail2ban action
可以使用<ip>
多变的。我想做的:检测MAC地址
有可能做这样的事情吗?
failregex = \[DROP\]IN=.* OUT= MAC=<MAC> *
应该给
00:00:00:00:00:00:00:00:00:00:00:00:00:00
因此。然后,任何fail2ban action
可以使用 <mac>
例如变量。有人有答案或任何文件吗?我没有找到有关 fail2ban 正则表达式或检测可能性的信息。
最佳答案
不确定如何在 Fail2Ban 配置上执行此操作,而且我现在没有要测试的。我做了一个小 bash 脚本来测试这个,也许你可以从这里提取正则表达式。
#!/bin/bash
str="Jan 18 11:15:14 server kernel: [DROP]IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=1.2.3.4 DST=4.5.6.7 LEN=40 TOS=0x00 PREC=0x00 TTL=239"
[[ ${str} =~ \[DROP\].*MAC=([0-9:]+) ]] && test_output="${BASH_REMATCH[1]}"
echo $test_output
它作为输出给出:
00:00:00:00:00:00:00:00:00:00:00:00:00:00
我在一个组内(括号之间)捕获mac并将其分配给一个var。也许可能像你的
<MAC>
.我不能保证这一点,因为正如我所说,我现在没有 fail2ban 来测试,所以是“疯狂的事情”......但我可以冒险提出这样的建议:
failregex = \[DROP\].*MAC=<MAC>
我希望它有所帮助。
关于centos - Fail2ban: 获取没有 ip 的 mac 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716950/