centos - Fail2ban: 获取没有 ip 的 mac 地址

标签 centos iptables fail2ban

是否可以使用 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/

相关文章:

php - 如何在 CentOS 上的 PHP 5.3 中激活 ZipArchive 类

mysql - Drupal 缓存不工作(表为空)

centos - Cloudflare - iptables 恢复真实 ips 以限制每个 ip CentOS 7 的连接

linux - 如何在 linux (Debian jessie) 上打开一个端口

CentOS EPEL fail2ban 不处理 tomcat 的 systemd 日志

linux - bash 重定向到/dev/stdout : Not a directory

php - 安装了 Composer ,但得到/usr/bin/env : php: No such file or directory

php - SQL Server 和主页服务器之间没有连接

linux - Fail2Ban 多次尝试后仍无法阻止 ip

centos - 无法在 Centos 7.1 上安装 fail2ban