我确实需要 rp_filter 丢弃的数据包日志...如何进行此日志记录?
其中记录如何启用。
答案1
据我所知,这些都没有记录。除非其他人证明我错了,否则这里有另一种方法。
您可以执行以下步骤 1+2 或 1+3:
禁用rp_过滤器完全地。
使用 iptables'过滤器匹配模块,一旦与日志简单日志的目标,或神经网络日志(甚至NF队列(尽管这不是预期用途)用于完整数据包转储,并使用 DROP 目标进行实际过滤。
使用神经网络日志正确地可能需要一个单独的问题,但我可以说,即使没有专门的工具,
tcpdump
也可以听网络日志netlink 套接字就好像它是一个接口一样。通常首先完成:# tcpdump -D
检索正确的接口索引。例如:
[...]
12.nflog (Linux netfilter log (NFLOG) interface) 13.nfqueue (Linux netfilter queue (NFQUEUE) interface)
[...]
# tcpdump -n -i 12 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on nflog, link-type NFLOG (Linux netfilter log messages), capture size 262144 bytes
您也可以选择将它们写入文件 (
-w dump.cap
)
使用网络过滤器的防火墙层是 IPv6 的唯一方法,缺乏对rp_过滤器在 Linux 上的路由堆栈中。
与 ARP 或策略路由相关的一些极端情况的行为可能不会 100% 相同,因为过滤可能是稍后完成的。
答案2
您必须启用 sysctl net.ipv4.conf.default.log_martians
,然后检查 syslog 文件,您应该有类似以下内容:
[8270435.701764] ll header: 00000000: ce 47 b8 a3 39 62 de 2e 40 0c a0 0c 08 00 .G..9b..@.....
[8270435.702460] IPv4: martian source 51.247.240.165 from 10.138.86.16, on dev tap12