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