iptables的編譯
iptables的編譯
首先要解壓iptables包。這里,我用iptables 1.2.6a做例子(譯者注:在我翻譯時(shí),***版本已經(jīng)是 1.2.9,其中又有了不少改進(jìn),修補(bǔ)了一些bug,增添了幾個(gè)match和target。)。命令 bzip2 -cd iptables-1.2.6a.tar.bz2 | tar -xvf -(當(dāng)然也可以用tar -xjvf iptables-1.2.6a.tar.bz2,但這個(gè)命令可能對(duì)一些老版的tar不適用 ) 將壓縮包解壓至目錄iptables-1.2.6a,其中的INSTALL文件有很多對(duì)編譯、運(yùn)行有用的信息。
這一步,你將配置、安裝一些額外的模塊,也可以為內(nèi)核增加一些選項(xiàng)。我們這里只是檢查、安裝一些未被納入內(nèi)核的標(biāo)準(zhǔn)的補(bǔ)丁。當(dāng)然,更多的在實(shí)驗(yàn)階段的補(bǔ)丁,僅在進(jìn)行其他某些操作時(shí)才會(huì)用到。
有一些補(bǔ)丁僅僅處在實(shí)驗(yàn)階段,把它們也安裝上不是一個(gè)好主意。這一步,你會(huì)遇到很多十分有趣的匹配和對(duì)數(shù)據(jù)包的操作,但它們還正在實(shí)驗(yàn)。
為了完成這一步,我們要在iptables的目錄內(nèi)用到如下一些命令:
- make pending-patches KERNEL_DIR=/usr/src/linux/
變量KERNEL_DIR指向內(nèi)核原碼的真實(shí)路徑。一般情況下,都是/usr/src/linux/ ,但也會(huì)不一樣,這要看你所用的Linux產(chǎn)品了。
總之,只有某些補(bǔ)丁會(huì)被詢問(wèn)是否加入內(nèi)核,而Netfilter的開(kāi)發(fā)者們有大量的補(bǔ)丁或附件想要加入內(nèi)核,但還要再實(shí)驗(yàn)一陣子才能做到。如果你想安裝這些東西,就用下面的命令:
- make most-of-pom KERNEL_DIR=/usr/src/linux/
這個(gè)命令會(huì)安裝部分patch-o-matic(netfilter世界對(duì)補(bǔ)丁的稱呼),忽略掉的是非常極端的那一部分,它們可能會(huì)對(duì)內(nèi)核造成嚴(yán)重的破壞。你要知道這個(gè)命令的作用,要了解它們對(duì)內(nèi)核原碼的影響,好在在你選用之前,會(huì)有所提示。下面的命令可以安裝所有的patch-o-matic(譯者注:一定要小心哦)。
- make patch-o-matic KERNEL_DIR=/usr/src/linux/
要仔細(xì)的讀讀每一個(gè)補(bǔ)丁的幫助文件,因?yàn)橛行﹑atch-o-matic會(huì)損壞內(nèi)核,而有些對(duì)其他補(bǔ)丁有破壞作用。
你要是不打算用patch-o-matic修補(bǔ)內(nèi)核,以上的命令都用不著,它們不是必需的。不過(guò),你可以用這些命令來(lái)看看有什么有趣的玩意兒,這不會(huì)影響任何東西。
安裝好patch-o-matic,現(xiàn)在應(yīng)該重新編譯內(nèi)核了,因?yàn)槠渲性黾恿艘恍┭a(bǔ)丁。但別忘了重新配置內(nèi)核,現(xiàn)有的配置文件里可沒(méi)有你增加的補(bǔ)丁的信息。當(dāng)然,你也可以先編譯iptables , 再來(lái)編譯內(nèi)核。
接下來(lái)就該編譯iptables了,用下面這個(gè)簡(jiǎn)單的命令:
- make KERNEL_DIR=/usr/src/linux/
iptables應(yīng)該編譯好了,如果不行,好好考慮考慮問(wèn)題在哪兒,要么訂閱 Netfilter mailing list,那里可能有人能幫助你。
一切順利的話,我們?cè)摪惭biptables了,這幾乎不會(huì)有什么問(wèn)題的。我們用下面的命令來(lái)完成這一步:
- make install KERNEL_DIR=/usr/src/linux/
好啦?,F(xiàn)在大功告成了。如果你在前面沒(méi)有重新編譯、安裝內(nèi)核,現(xiàn)在就要做了,不然,你還是不能使用更新后的iptables。好好看看推薦的INSTALL吧,那里面有詳細(xì)的安裝信息。
【編輯推薦】