连接显示在 tcpdump 中,但无法显示在 auditd 或 ss 中

连接显示在 tcpdump 中,但无法显示在 auditd 或 ss 中

tcpdump在一个节点上运行,可以看到在特定端口 (8086) 上有许多到特定主机(我的网络内)的出站 TCP 连接。我想知道哪个进程正在建立这些连接。

我用了:

while true; do ss -ntap '{ dport :8086 }'; sleep 0.1; done

但是,即使 tcpdump 捕获了到该端口的传出请求,我也没有看到任何内容显示。

我尝试使用 auditd 在内核级别捕获它们,因为我认为ss可能无法捕获这些小的要求。

我使用过:auditctl -A exit,always -F arch=x86_64 -S connect -S sendmsg -S sendto -k send并用于ausearch -k send -i寻找这些请求,但同样无济于事。

我想知道为什么与外部主机建立 TCP 连接却没有被 auditd 捕获?

提前致谢!

答案1

  1. 原始目标地址和目标端口可以是其他的,但不能是tcp/8086,但使用DNATiptables 规则nat/OUTPUT会将其重写为其他地​​址和其他端口。在tcpdump捕获中,您可以看到 iptables 转换后的数据包。

  2. 它可能是内核模块,而不是用户空间应用程序。在这种情况下,我不确定什么auditd可以显示任何东西。

  3. 当数据包在应用程序中构建时,它也可以是原始套接字。我认为在这种情况下,您可以使用ss --raw命令列出原始套接字。

  4. 它可以是其他网络命名空间,而不是主网络命名空间。

  5. 此流量可转发,不是本地发起的。在这种情况下ssauditd不显示任何内容。

相关内容