Openbsd

幾乎為空的 pf.conf 仍然記錄數據包

  • September 2, 2019

我有一個問題,我的 pf 記錄了許多它不應該記錄的數據包。我用幾乎空的 pf.conf 複製了它:

set skip on lo

它仍然記錄一些數據包。我認為所有這些數據包都是 ICMP6 類型的,它們並不真正屬於我的電腦,我不知道為什麼會收到它們,但我無法控制它。

這是數據包的範例(通過 pflog0 上的 tcpdump 接收):

13:18:29.211678 rule def/(match) pass in on vio0: fe80::3ad5:47ff:fe75:1a2b > ff02::1:ff75:1a2b: HBH icmp6: multicast listener report  [hlim 1]

所以我的問題是:我在哪裡可以了解這些預設匹配規則以及如何禁用這些日誌。

我試圖將這些數據包與類似的東西顯式匹配pass in on vio0(沒有記錄語句),但它們仍然被記錄,可能是因為那個神秘的預設匹配標記了要記錄的數據包。

我不知道為什麼我會收到它們

這是多播流量。

我在哪裡可以了解這些預設匹配規則

好吧,整個事情都有部分記錄,但從您看到的問題中並沒有明顯追溯。

man pf.conf標記 我的):

allow-opts預設情況下,帶有 IPv4 選項或 IPv6逐跳或目標選項標頭的數據包被阻止。當為通過規則指定 allow-opts 時,根據該規則(最後匹配)通過過濾器的數據包會這樣做,即使它們包含選項。

HBH您在日誌中看到的正是“逐跳”。

我的理論是: Pf 的開發人員決定,因為即使有一個pass規則(在你的情況下似乎預設情況下),這種流量也會被阻止,所以更努力地吹哨是有意義的,這就是你得到它的原因記錄。

以及如何禁用這些日誌

正如手冊頁中所建議的,您可以通過引入明確給出的pass規則來解決此問題:allow-opts

pass allow-opts

引用自:https://serverfault.com/questions/975117