Openbsd
幾乎為空的 pf.conf 仍然記錄數據包
我有一個問題,我的 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