Centos Fail2ban:获取mac地址无ip

Centos Fail2ban:获取mac地址无ip,centos,iptables,fail2ban,Centos,Iptables,Fail2ban,是否可以使用fail2ban regex(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 fail2banfailregex failregex = \[DROP\]IN=.*

是否可以使用fail2ban regex(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
fail2banfailregex

failregex = \[DROP\]IN=.* OUT= MAC=.* SRC=<HOST>*
因此,应给出
00:00:00:00:00:00:00:00:00:00:00
。然后,任何fail2ban
action
都可以使用
变量作为示例


是否有人有答案或任何文档?我没有找到有关fail2ban regex或检测可能性的信息。

不确定如何在fail2ban config上执行此操作,我现在没有要测试的信息。我做了一个小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

我在一个组内(括号之间)捕获mac并将其分配到一个变量。可能与您的
类似

我不能保证这一点,因为正如我所说,我现在没有fail2ban需要测试,所以这是一件“疯狂的事情”。。。但我可以大胆地提出如下建议:

failregex=\[DROP\].*MAC=

我希望这能有所帮助。

来自:

为了方便起见,您可以在正则表达式中使用预定义的实体。是(?::f{4,6}:)(?P\S+)的别名,它与主机名或IPv4地址(可能嵌入IPv6地址)匹配

我知道可以使用自定义正则表达式,但是如何使用呢?关于这方面的文章不多

#!/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