linux版本:feodra-14
交叉编译版本:arm-linux-gcc-3.4.1
1. 查看PC上iptables位置
#which iptables
/sbin/iptables
2. 查看安装此命令的安装包
# rpm –qif ‘/sbin/iptables’
Name : iptables Relocations: (not relocatable)
Version : 1.4.9 Vendor: Fedora Project
Release : 1.fc14 Build Date: Wed 04 Aug 2010 07:57:45 AM PDT
Install Date: Tue 06 Dec 2011 02:08:15 AM PST Build Host: x86-03.phx2.fedoraproject.org
Group : System Environment/Base Source RPM: iptables-1.4.9-1.fc14.src.rpm
Size : 735145 License: GPLv2
Signature : RSA/SHA256, Wed 04 Aug 2010 04:34:52 PM PDT, Key ID 421caddb97a1071f
Packager : Fedora Project
URL : http://www.netfilter.org/
Summary : Tools for managing Linux kernel packet filtering capabilities
Description :
The iptables utility controls the network packet filtering code in the
Linux kernel. If you need to set up firewalls and/or IP masquerading,
you should install this package.
我们可以看到此安装包为iptables-1.4.9-1.fc14.src.rpm
3. 下载iptables-1.4.9-1.fc14.src.rpm,并解压
#rpm –ivh iptables-1.4.9-1.fc14.src.rpm
#cd /root/rpmbuild/SOURCES
#tar –xjvf iptables-1.4.9.tar.bz2
4. 进入iptables-1.4.9,进行配置编译安装
#./configure –host=arm-linux CC=arm-linux-gcc
#make
#make install
5. 查看安装后的iptables
#whcih iptables
/usr/local/sbin/iptables
安装后iptables进入到了/usr/local/sbin下
6. 进入/usr/local/sbin,发现iptables是iptables-multi的链接,我们可以查看iptables-multi的文件类型
#file iptables-multi
iptables-multi: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
我们可以讲iptables-multi改名为iptables,并下载到板子中的/sbin下
#mv iptables-multi iptables
7. 同理,我们将ip6tables下载到班子中的/sbin下
8. 进入到/usr/local/lib下,移植库文件。我们需要移植libip4tc.so.0、libip6tc.so.0和libxtables.so.5库文件,但这些文件都是链接文件,分别指向libip4tc.so.0.0.0、libip6tc.so.0.0.0和libxtables.so.5.0.0,我们分别把它们改名为libip4tc.so.0、libip6tc.so.0和libxtables.so.5并下载到板子的/lib下
9. 将/root/rpmbuild/SOURCES/iptables-1.4.9/extensions下的库文件根据自己的实际情况下载到板子的/usr/local/libexec/xtables中去,开发板本身没有这个目录,可以用命令mkdir -p/usr/local/libexec/xtables建立。如,libipt_SNAT.so,libipt_DNAT.so支持“--to”、“-j SNAT”和“-j DNAT”选项,libipt_tcp.so支持“-- dport”选项。最好全下进去,省的以后麻烦。
10. 测试iptables和ip6tables。ip6tables语法在各方面都和iptables相同,只不过ip6tables支持128位的地址。