Networking
連接顯示在 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
查找這些請求,但同樣無濟於事。我想知道如何在沒有被 auditd 擷取的情況下與外部主機建立 TCP 連接?
提前致謝!
- 原來的目的地址和目的埠可以是 other,not
tcp/8086
,但是用DNAT
iptables 規則nat/OUTPUT
把它改寫成其它地址和其它埠。在tcpdump
擷取中,您會看到 iptables 轉換後的數據包。- 它可以是核心模組,而不是使用者空間應用程序。在這種情況下,我不確定,什麼
auditd
可以顯示任何東西。- 當在應用程序中建構數據包時,它也可以是原始套接字。
ss --raw
我認為在這種情況下,您可以使用命令列出原始套接字。- 它可以是其他網路命名空間,而不是主命名空間。
- 此流量可以轉發,而不是本地發起的。在這種情況下
ss
,auditd
什麼也不顯示。