您的位置:首页 > 其它

iptables的移植

2013-07-28 15:11 447 查看
Linux下支持netfilter机制的配置工具就是iptables,它也就相当与一个应用程序,可以对netfilter进行配置(包过滤规则,NAT等等)。所以要实现netfilter(iptables)就要从两方面来着手:

1)内核支持netfilter;

2)用户层的iptables配置命令。

 

一、配置内核并编译,支持netfilter
在宿主机上进入Linux内核目录,配置所需的内核模块:
[lingyun@localhost yangzheng]$ cd linux-3.0

[lingyun@localhost linux-3.0]$ vt100

[lingyun@localhost linux-3.0]$ make menuconfig

[*] Networking support  --->

       Networking options  --->

              [*] Network packet filtering framework (Netfilter)  --->

                     Core Netfilter Configuration  --->(全部选上)

                     IP: Netfilter Configuration  --->
(全部选上)

[lingyun@localhost linux-3.0]$ sudo make

 

注意:这里的所有选项一定选为built-in [*],而不能选为Module [M],如果选为Module,重新烧制的系统内核里用modprobe
ip_tables 命令将不能找到iptables模块。上一步还有一点要注意的是IP: Netfilter configuration中的FULL
NAT选项一定要选中,否则将不能使用 iptables -t nat命令。

 

到这里内核已经支持netfilter了,接下来就开始移植iptables。

 

二、iptables的移植

 

[lingyun@localhost wireless]$ wget
http://www.netfilter.org/projects/iptables/files/iptables-1.4.12.2.tar.bz2

[lingyun@localhost wireless]$ tar -jxf iptables-1.4.12.2.tar.bz2

[lingyun@localhost wireless]$ cd iptables-1.4.12.2

[lingyun@localhost iptables-1.4.12.2]$ ls

aclocal.m4    config.guess  config.status  COPYING     INCOMPATIBILITIES  libipq      ltmain.sh    Makefile.in  tests

autogen.sh    config.h      config.sub     depcomp     INSTALL            libiptc     m4           missing      utils

COMMIT_NOTES  config.h.in   configure      extensions  install-sh         libtool     Makefile     release.sh

compile       config.log    configure.ac   include     iptables           libxtables  Makefile.am  stamp-h1

[lingyun@localhost wireless]$ mkdir install

[lingyun@localhost install]$ pwd

/home/lingyun/yangzheng/wireless/install

[lingyun@localhost iptables-1.4.12.2]$ ./configure --host=arm-linux --enable-static --disable-shared --prefix=/home/lingyun/yangzheng/wireless/install --disable-ipv6 --disable-largefile

[lingyun@localhost iptables-1.4.12.2]$ sudo make

[lingyun@localhost iptables-1.4.12.2]$ make install

[lingyun@localhost iptables-1.4.12.2]$ /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip ~/yangzheng/wireless/install/sbin/xtables-multi

[lingyun@localhost install]$ rm -rf sbin/iptables*

[lingyun@localhost install]$ mv sbin/xtables-multi sbin/iptables

 

到这里呢,iptables已经交叉编译完成,接下来就是把一些文件下载到开发板上:

1)、libiptc.so.0和libxtables.so.7拷贝到开发板的/lib目录中去;

libiptc.so.0,libxtables.so.7 在/usr/local/lib/lib目录下。

 

2)、将iptables-1.4.12.2/extensions中的libipt_SNAT.so,libipt_DNAT.so,libipt_tcp.so下载到开发板 的/usr/local/libexec/xtables中去,开发板本身没有这个目录,可以用命令mkdir -p/usr/local/libexec/xtables 建立。注:这些动态库是在用 iptables的一些选项时调用的。如,libipt_SNAT.so,libipt_DNAT.so
支持 “--to”、“-j SNAT”和 “-j DNAT”选项,libipt_tcp.so支持“-- dport”选项。如果用到其他命令选项,自行查找是哪个动态库支持,将其下载到开发板的/usr/local/libexec/xtables目录。

 

3)、将install/sbin下的iptables可执行文件发送到新系统的/sbin目录下,为新拷贝的可执行文件添加执行权限。

 

4)、执行iptables -L
命令,执行成功。

现在我们的linux系统就已经有iptables这个命令了!!!!

 

 

 

参考文档:http://blog.csdn.net/hanzengyi/article/details/5991917

             
  http://blog.chinaunix.net/uid-7396260-id-2056583.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: