预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共45页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Iptables防火墙资料来源:ChinaUnix博客日期:2006.09.2310:10(共有条评论)HYPERLINK"http://linux.chinaunix.net/bbs/thread-940956-1-1.html"\t"_blank"我要评论从1.1内核开始,linux就已经具有包过虑功能了,在2.0的内核中我们采用ipfwadm来操作内核包过虑规则。之后在2.2内核中,采了大家并不陌生的ipchains来控制内核包过虑规则。现在最新linux内核版本是2.4.1,在2.4内核中我们不再使用ipchains,而采用一个全新的内核包过虑管理工具--iptables。这个全新的内核包过虑工具将使用户更易于理解其工作原理,更容易被使用,然也将具有更为强大的功能。我们说过iptables只是一个管理内核包过虑的工具,iptables可以加入、插入或删除核心包过滤表格(链)中的规则。实际上真正执行这些过虑规则的是netfilter(Linux核心中一个通用架构)及其相关模块(如iptables模块和nat模块),下面我们一起来看netfilter的工作原理。二、原理netfilter是Linux核心中一个通用架构,它提供了一系列的"表"(tables),每个表由若干"链"(chains)组成,而每条链中可以一条或数条规则(rule)组成。我们可以这样来理解,netfilter是表的容器,表是链的容器,而链又是规则的容器(如图一所示)。系统缺省的表为"filter",该表中包含了INPUT、FORWARD和OUTPUT3个链。每一条链中可以有一条或数条规则,每一条规则都这样定义的“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始查,看是否符合该规则所定义的条件:如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条则。最后,如果该数据包不符合该链中任一条规则的话,系统就会根据该链预先定义的策略(policy)来处理该数据包。数据包在filter表中的流程如图二所示。有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有三种情况:1.如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没过规则检查,系统就会将这个包丢掉;2.如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉;3.如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如没通过规则检查,系统就会将这个包丢掉。从以上我们可以看出,netfilter比起以前的ipfwadm和ipchains思路上清晰了好多,也好理解了好多,这对于原先对ipfwadmipchains总是感到一头雾水的用户来说无疑是一个福音。三、准备工作1.系统需求netfilter要求内核版本不低于2.3.5,在编译新内核时,要求选择和netfilter相关的项目。这些项目通常都是位于“Networkingoptions”子项下。以2.4.0内核为例,我们应该选中的项目有: Kernel/Usernetlinksocket[]RoutingmessagesNetlinkdeviceemulation Networkpacketfiltering(replacesipchains).......然后,在“IP:NetfilterConfiguration---->”选中:Connectiontracking(requiredformasq/NAT)FTPprotocolsupportIPtablessupport(requiredforfiltering/masq/NAT)limitmatchsupportMACaddressmatchsupportNetfilterMARKmatchsupportMultipleportmatchsupportTOSmatchsupportConnectionstatematchsupportPacketfilteringREJECTtargetsupportFullNATMASQUERADEtargetsupportREDIRECTtargetsupportPacketmanglingTOStargetsupportMARKtargetsupportLOGtargetsupportipchains(2.2-style)supportipfwadm(2.0-style)support其中最后两个项目可以不选,但