最近在配置snat试,打开iptables总是不成功,原来netfilter的功能在内核编译时没有选,所以需要加载netfilter模块,可我是菜鸟根本不会加载模块,只有重新编译了内核。找了几篇文章总结如下: 编译内核时,您可以选择使用make config、make menuconfig或make xconfig中的任意一个。我的建议是使用make menuconfig或者make xconfig,因为它们允许您对需要的内核选项进行更快的选取。 为了提供对Netfilter和iptable的支持,选择Networking Options菜单选项,然后选择Network packet filtering (replaces ipchains)。您可以在将这项功能作为内核的一部分或者编译成一个模块之间进行选择。 基本Netfilter编译选项 在内核配置文件中要启用的一些较重要的选项包括Netfilter连接跟踪、日志记录和包过滤。(请记住iptables通过使用由Netfilter提供的内核中框架来建立一个策略。) 在Network Packet Filtering Framework(Netfilter)一节中还有两个额外的配置节——Core Netfilter Configuration(核心Netfilter配置)和IP:Netfilter Configuration(IP:Netfilter配置)。 1. 核心Netfilter配置 核心Netfilter配置节中包含的一些重要选项都应该被启用: l Comment match support(comment匹配支持); l FTP support(FTP协议支持); l Length match support(数据包长度匹配支持); l Limit match support(limit匹配支持); l MAC address match support(MAC地址匹配支持); l MARK target support(MARK目标支持); l Netfilter connection tracking support(Netfilter连接跟踪支持); l Netfilter LOG over NFNETLINK interface(Netfilter通过NFNETLINK接口记录日志); l Netfilter netlink interface(Netfilter netlink接口); l Netfilter Xtables support(Netfilter Xtables支持); l State match support(state匹配支持); l String match support(string匹配支持)。 2. IP:Netfilter配置 在完成核心Netfilter配置之后,我们开始进入IP:Netfilter配置节。本节需要启用的选项如下所示: l ECN target support(ECN目标支持); l Full NAT(完整NAT支持); l IP address range match support(ip地址范围匹配支持); l IP tables support(IP tables支持,filtering/masq/NAT需要); l IPv4 connection tracking support(IPv4连接跟踪支持,NAT需要); l LOG target support(LOG目标支持); l MASQUERADE target support(MASQUERADE目标支持); l Owner match support(owner匹配支持); l Packet filtering(包过滤支持); l Packet mangling(包修改支持,常用于改变包的路由); l raw table support(raw表支持,NOTRACK/TRACE需要); l Recent match support(recent匹配支持); l REJECT target support(REJECT目标支持); l TOS match support(TOS匹配支持); l TOS target support(TOS目标支持); l TTL match support(TTL匹配支持); l TTL target support(TTL目标支持); l ULOG target support(ULOG目标支持)。 在2.6系列内核中,个别编译节经过了重大的重组。在旧的2.4系列内核中,IP:Netfilter配置节位于Networking选项之下,而且仅当Network Packet Filtering选项被启用时才能看到。 1.4.2 结束内核配置 在通过menuconfig界面配置 2.6.20.1内核以启用所需的Netfilter支持之后,请选择Exit,会看到信息“Do you wish to save your new kernel configuration?”(你是否打算保存新内核配置?),点击Yes以保存内核配置文件。 在保存了新的内核配置之后,将返回到shell命令行,此时可以使用下面的命令来检查最终的Netfilter编译选项。 然后 make,
make modules_install
make install
结束编译,重启 ok! |