把Iptables移植到嵌入式Linux系統(tǒng)
Linux下支持netfilter機(jī)制的配置工具就是iptables,它也就相當(dāng)與一個應(yīng)用程序,可以對netfilter進(jìn)行配置(包過濾規(guī)則,NAT等等)。所以要實現(xiàn)netfilter(iptables)就要從兩方面來著手:1)內(nèi)核支持netfilter;2)用戶層的iptables配置命令。
1、編譯內(nèi)核,支持netfilter
在宿主機(jī)上進(jìn)入Linux內(nèi)核目錄,配置所需的內(nèi)核模塊:
cd/usr/src/linux
makemenuconfig
選中如下內(nèi)核選項:
Generalsetup--->
[*]Sysctlsupport(在ROMFS文件系統(tǒng)中/proc/sys/net/ipv4/出現(xiàn)ip_forward)
Networkingoptions--->
[*]Networkpacketfiltering(replacesipchains)
IP:NetfilterConfiguration--->(全部選擇即可)
這樣在內(nèi)核中就選擇支持了netfilter。接下來只需編譯并生成內(nèi)核映像文件并燒寫到嵌入式系統(tǒng)即可。如果燒寫后重起成功進(jìn)入Linux,則說明新的支持netfiter的內(nèi)核已經(jīng)正常運行。(注意,這里的內(nèi)核選項只是一些支持netfilter/iptables的選項。這里假設(shè)原有內(nèi)核已支持嵌入式系統(tǒng)的相關(guān)硬件,并能在嵌入式平臺上運行)。
2、編譯生成iptables命令
iptables工具包可以免費從網(wǎng)上獲得。下載iptables工具包后,進(jìn)入下載目錄,進(jìn)行編譯生成可執(zhí)行文件,編譯方法具體可以參考iptables目錄下的INSTALL文件:
cd/root/iptables
makeKERNEL_DIR=/usr/src/linux(指定內(nèi)核目錄)
makeNO。SHARED_LIBS=1(靜態(tài)鏈接編譯生成可執(zhí)行文件)
把生成的iptables可執(zhí)行文件copy到ramdisk再下載到嵌入式系統(tǒng)中就可以運行。
好了,重新啟動板子后,就可以用iptables這個命令了。