(十三)洞悉linux下的Netfilteramp;iptables:为防火墙增添功能模块【实战】
為netfilter/iptables增添新功能模塊:ipp2p
? ??一個(gè)防火墻功能模塊包含兩部分:內(nèi)核空間的ko模塊和用戶空間的so模塊。如下:
? ? 而且文件的命令都非常有講究。例如我們有個(gè)模塊名叫AAA,那么內(nèi)核中該模塊的文件名一般為ipt_AAA.c和ipt_AAA.h;對(duì)應(yīng)的用戶空間模塊叫libipt_AAA.c。今天我通過(guò)簡(jiǎn)單的向防火墻添加ipp2p擴(kuò)展功能模塊的例子,向大家展示一下相關(guān)操作和注意事項(xiàng)。
?
下載ipp2p源碼:http://www.ipp2p.org/
????最新版的ipp2p-0.8.2.tar.gz支持的內(nèi)核2.6.17,iptables支持1.3.1。不過(guò)這個(gè)不影響,我們稍對(duì)其源文件進(jìn)行修改就可以適應(yīng)我們2.6.21平臺(tái)了。修改后的源碼從“?ipp2p-0.8.2.zip ”下載。
? ?下載后對(duì)其解壓,然后進(jìn)到ipp2p目錄下。接下來(lái)有兩種方式來(lái)編譯模塊:
1、? 直接在該目錄下執(zhí)行make。(備注:該目錄下的Makefile我已經(jīng)改過(guò)了)
執(zhí)行完make后ipt_ipp2p.ko和libipt_ipp2p.so就都生成了。
chmod x ipt_ipp2p.ko
2、? 依次按下列步驟來(lái)操作:
仍然是在ipp2p-0.8.2解壓目錄里,我系統(tǒng)中如下:
然后將每個(gè)文件拷貝到對(duì)應(yīng)的目錄下:
在我機(jī)器上,內(nèi)核源碼在/usr/src/linux-2.6.21,iptables源碼在/usr/src/iptables-1.4.0目錄下。
接下來(lái)修改/usr/src/linux-2.6.21/net/ipv4/netfilter/ipt_ipp2p.c文件:
同樣修改/usr/src/iptables-1.4.0/extensions/libipt_ipp2p.c文件如下:
? ? 接換到內(nèi)核源碼目錄/usr/src/linux-2.6.21目錄下
? ? 先備份net/ipv4/netfilter/目錄下原來(lái)的Makefile文件,然后照著下面自己寫(xiě)個(gè)新的Makefile。如下所示:
? ? ipt_ipp2p.ko就已經(jīng)編譯出來(lái)了,加上執(zhí)行權(quán)限后將其拷貝到/lib/modules/2.6.21目錄里。
? ? 最后編譯用戶空間的so模塊,進(jìn)入到/usr/src/iptables-1.4.0:
? ? 因?yàn)槲蚁到y(tǒng)中有兩個(gè)版本的iptables 1.3.5和1.4.0,其中1.3.5的庫(kù)文件位于/lib/iptables目錄;1.4.0我將其放置在/lib/iptables-1.4.0/iptables目錄。
? ? 最后我們來(lái)使用一下ipp2p模塊,執(zhí)行iptables -m ipp2p -h應(yīng)該可以看到下列提示:? ? 加載ipp2p內(nèi)核模塊:
? ? insmod /lib/modules/2.6.21/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
? ? 總結(jié),雖然方法一干凈利落,犀利快捷,可是不利于我們理解netfilter/iptables代碼的組織架構(gòu)。方法二雖然麻煩,但學(xué)的知識(shí)更多些。大家各取所需吧。
?
? ? 網(wǎng)上還流傳另外一種通過(guò)補(bǔ)丁包的方式來(lái)為iptables擴(kuò)展功能模塊,這里我簡(jiǎn)單提一下,因?yàn)槟峭嬉鈨焊?/span>easy。一般是到ftp://ftp.netfilter.org/pub/patch-o-matic-ng/下載對(duì)應(yīng)的補(bǔ)丁文件,在本地將其解壓后進(jìn)入補(bǔ)丁文件夾,一般執(zhí)行:./runme ipp2p,然后根據(jù)提示輸入一些配置路徑就OK了。它會(huì)自動(dòng)幫你完成文件的拷貝,Makefile的修改,很方便。感興趣的朋友可以去試一下。
? ? 未完,待續(xù)…
轉(zhuǎn)載于:https://www.cnblogs.com/masterpanda/p/5700490.html
總結(jié)
以上是生活随笔為你收集整理的(十三)洞悉linux下的Netfilteramp;iptables:为防火墙增添功能模块【实战】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Echart在Openlayers的应用
- 下一篇: 设置 tableview 的背景颜色,总