2010-11-24 79 views
0

對於這個項目,我目前正在阻止訪問,任務是從磁盤中讀取一個文件,該文件是格式如下:允許或Linux的一個端口

port number [in/out/both] 

所以,如果一個端口號隨後進入,只允許入站連接。如果後面跟着out,則只有出站連接被允許,如果後面跟着兩個,則是雙向的。阻止所有其他端口。

執行此操作的一種方法是在引導時讀取文件並存儲端口並鍵入數據結構並將其保存在內存中,並且當進程嘗試使用端口時,授予基於數據的訪問權限結構在內存中。 問題是,我不知道如何實際實現這一點,只需要在正確的方向推。我知道這可以使用iptables來完成,但這是不允許的。

回答

1

由於Linux內核編碼開始和你的問題的一些地方,你可能會發現這個有用:

Storing struct array in kernel space, Linux

編輯:

爲了您的包過濾的具體問題,我會建議你在內核中使用netfilter框架來設置合適的規則,這些規則將做你想做的事情。創建你自己的包過濾框架可能太複雜 - 再加上通常不是一個好主意,重新發明輪子。

netfilter子系統是非常模塊化的,所以你可能想要考慮爲你的目標功能創建另一個模塊的可能性。

相關問題