2011-02-03 29 views
0

如果傳入數據包進入並進行本地處理,是否有辦法讓 得知該事件?本地處理的數據包上的netfilter事件(netfilter C內核模塊代碼)

我目前正在使用NF_IP_LOCAL_IN鉤子。但它看起來像是給出了接口的所有數據包。例如,假設tcp數據包X進入端口5000,並且在端口5000上有一個套接字偵聽。我想接收該事件。

爲了澄清,我的意思是我只想接收數據包X事件。所有其他沒有本地處理的數據包(即那些生成ICMP目標無法訪問的數據包,我不想被通知)

+0

因此,如果有一個進程在端口5000上偵聽,並且在沒有進程偵聽的情況下沒有通知,那麼您希望得到通知?這超出了netfilter的知識。 – ninjalj 2011-02-03 19:33:57

+0

@ninjalj儘管如何與連接跟蹤。這不是跟蹤當前正在使用的偵聽套接字嗎? – ajpyles 2011-02-03 19:41:31

+0

@ajpyles:不,根據所看到的TCP段跟蹤推斷的TCP狀態。 – ninjalj 2011-02-03 19:43:40

回答

1

Netfilter生活在L3/L4,所以它只能訪問L4的信息。 OTOH,LSM(Linux安全模塊)幾乎在任何地方都有掛鉤,包括socket_recvmsg,我認爲它應該只針對您感興趣的數據包。

現在,您是否可以使用這取決於您的情況。您的環境中是否已經運行了LSM?如果答案是肯定的,你是否可以爲LSM制定和實施一項足以滿足你需要的政策?

0

那麼,接口必須是lo。

或者我不明白爲什麼LOCAL_IN掛鉤不能滿足你。

相關問題