Iptables

記錄在 iptables 中丟棄的數據包的內容

  • December 23, 2014

我正在嘗試找到一種方法來記錄根據 iptables 中的規則丟棄的數據包的全部內容(可能使用 tcpdump)。

目前,我有一個規則來記錄這些數據包(帶有日誌前綴),然後按照這個規則刪除它們。

有沒有辦法記錄這些數據包的內容以供以後查看?

所以,我正在尋找這個:

  1. 記錄匹配數據包的規則
  2. 將數據包傳遞到記錄其內容的新目標的規則(可能是 QUEUE 目標?)
  3. 丟棄數據包的規則

2 & 3 甚至可以合併。

我的理解是 tcpdump 可能無法做到這一點,因為它會在 iptables之前檢查數據包,因此不會只記錄丟棄的數據包。

謝謝。

NFLOG 目標可用於此目的。這是一個非常基本的例子:

# Drop traffic by default
iptables -P INPUT DROP

# add your whitelists here
# iptables -A INPUT ...

# Pass the packets to NFLOG (just like LOG, but instead of syslog,
# it uses netlink). You can add extra filters such as '-p tcp' as usual
iptables -A INPUT -j NFLOG
# packets that get here will now be dropped per INPUT policy

# Finally you can use tcpdump to capture from this interface (there
# can only be one active user of nflog AFAIK)
tcpdump -i nflog ...

有關目標的說明,請參閱iptables-extensions手冊頁。NFLOG

引用自:https://unix.stackexchange.com/questions/174107