在监控防火墙日志时,我注意到日志MAC中报告的地址nftables与标准长度不匹配。
据我了解,MAC地址是 48 位,应该表示为 12 个十六进制数字,因为每个十六进制数字需要 4 位,因此 48/4 = 12 个十六进制数字(分为 6 组,每组 2 位数字)。
以上与维基百科的说法一致:
通常情况下,MAC 地址可以识别为六组两位十六进制数字,用连字符、冒号分隔,或者不使用分隔符。
根据维基百科,这种地址的一个例子是01:23:45:67:89:AB,这意味着有 12 个十六进制数字(6 组 x 每组 2 个 = 12),这就是我如何识别我的设备LAN以及如何进行流量过滤LAN。
防火墙日志(例如条目)中也可以看到这样的 6 组十六进制数字ARP,因为很明显,所以我就不发布它的示例了。
但是也有类似这样的日志:
2024-09-29T14:44:21.000498+02:00 debian kernel: [ 2520.417160] DROP default new_in_4: IN=wlan0 OUT= MAC=00:c0:ca:52:bf:8e:10:a3:b8:f5:f7:28:08:00 SRC=157.48.189.170 DST=192.168.1.34 LEN=132 TOS=0x08 PREC=0x20 TTL=43 ID=0 PROTO=UDP SPT=35165 DPT=3451 LEN=112
这个列出了 14 组十六进制数字MAC地址,总共 28 个十六进制数字。
所有此类地址都以 开头00:和结尾,:00作为第一组数字和最后一组数字。
MAC因此,日志中可以看到这个地址nftables比实际大小高出一倍多(计算前缀组和后缀组00)。
问题1是,这个14组28位地址是什么,它在日志MAC中是什么意思?nftables
问题 2 可能更有趣,如何才能获取MAC互联网上某个对等点的地址?我猜这个MAC地址来自NAT防火墙之外,因为我无法识别它。
我该如何过滤这些奇怪的MAC地址?我应该这样做吗?
由于我已关闭客户端,此示例日志条目丢弃了由 bittorrent peer 生成的入站 UDP 流量。
编辑:
ip link show wlan0
3: wlan0 <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DORMANT group default qlen 1000
link/ether 00:c0:ca:52:bf:8e brd ff:ff:ff:ff:ff:ff
我查看了源代码,试图找出报告的内容
MAC=。在Linux内核中发现dump_mac_header
netfilter函数有以下相关块:这意味着:
NF_LOG_MACDECODE设置了日志标志,将报告单独的MACSRC、MACDST和MACPROTO字段。MAC=以冒号分隔的字节列表。我还没有尝试过,但是从表 60.log-flags中
man nft您应该能够设置ether标志来导致 MAC 地址的解码:iptables偶尔会记录 MAC 地址。为什么?正如ilkkachu所建议的,对于问题中的 14 字节,
MAC=认为:00:c0:ca:52:bf:8ewlan0是目标 MAC 地址。这与问题中给出的设备的 MAC 地址相匹配。来自 Wireshark OUI 查找工具,该工具适用于Alfa, Inc.制造商(WiFi 适配器供应商)。10:a3:b8:f5:f7:28是源 MAC 地址。这是针对Iskratel d.o.o.制造商(宽带连接和融合通信的网络设备提供商)的。08:00是 IPv4 的以太网类型。