Iptables的工作原理和基础架构.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iptables的工作原理和基础架构 iptables 被分为两部分,一部分被称为核心空间,另一部分称为用户空间,在核心空间,iptables从底层实现了数据包过滤的各种功能,比如NAT、状态检测以及高级的数据包的匹配策略等,在用户空间,iptables为用户提供了控制核心空间工作状态的命令集. 首先,当一个包进来的时候,也就是从以太网卡进入防火墙,内核首先根据路由表决定包的目标.如果目标主机就是本机,则直接进入INPUT链,再由本地正在等待该包的进程接收,否则,如果从以太网卡进来的包目标不是本机,再看是否内核允许转发包(可用echo 1 > /proc/sys/net/ipv4/ip_forward 打开转发功能,如果不允许转发,则包被DROP掉,如果允许转发,则送出本机,这当中不经过INPUT或者OUTPUT链,因为路由后的目标不是本机,只被转发规则应用,最后,该linux防火墙主机本身能够产生包,这种包只经过OUTPUT链被送出防火墙. 在iptables中共有三类表,分别是mangle、nat和filter. mangle表从目前来看,他的作用对于满足常规的防火墙应用作用不大,我们在这里不进行具体的描述. nat表的作用在于对数据包的源或目的IP地址进行转换,这种应用也许只会在IPv4的网络中适用,nat表又可主要分为三条链,如下: DNAT:DNAT操作主要用在这样一种情况下,你有一个合法的IP地址,要把对防火墙的访问重定向到其他的机子上,比如DMZ.也就是说,我们改变的是目的地址,以使包能重路由到某台主机上. SNAT: SNAT改变包的源地址,这在极大程度上可以隐藏你的本地网络或者DMZ等.一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址.有了这个操作,防火墙就能自动地对包做SNAT,以使LAN能连接到Internet.如果使用类似 /24这样的地址,是不会从Internet得到任何回应的.因为RFC1918定义了这些网络为私有的,只能用于LAN内部. MASQUERADE: MASQUERADE的作用和SNAT完全一样,只是计算机的负荷稍微多一点.因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象 SNAT用的IP地址是配置好的.当然,这也有好处,就是如果我们使用诸如PPPOE等拨号的方式连接Internet,这些地址都是由ISP的随机分配的,这时使用MASQUERADE是非常好的一个解决方案. filter表用来过滤数据包,我们可以在任何时候匹配包并过滤它们.我们就是在这里根据包的内容对包做DROP或ACCEPT的.当然,我们也可以预先在其他地方做些过滤,但是这个表才是设计用来过滤的.几乎所有的target都可以在这儿使用. 状态机制 状态机制是iptables中较为特殊的一部分,这也是iptables和比较老的ipchains的一个比较大的区别之一,运行状态机制(连接跟踪的防火墙称作带有状态机制的防火墙,以下简称为状态防火墙.状态防火墙比非状态防火墙要安全,因为它允许我们编写更严密的规则. 在iptables上一共有四种状态,分别被称为NEW、ESTABLISHED、INVALID、RELATED,这四种状态对于TCP、UDP、ICMP三种协议均有效.下面,我们来分别阐述四种状态的特性. NEW:NEW说明这个包是我们看到的第一个包.意思就是,这是conntrack模块看到的某个连接的第一个包,它即将被匹配了.比如,我们看到一个SYN 包,是我们所留意的连接的第一个包,就要匹配它. ESTABLISHED: ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包.处于ESTABLISHED状态的连接是非常容易理解的.只要发送并接到应答,连接就是ESTABLISHED的了.一个连接要从NEW变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的.ICMP的错误和重定向等信息包也被看作是ESTABLISHED,只要它们是我们所发出的信息的应答. RELATED: RELATED是个比较麻烦的状态.当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就被认为是RELATED的了.换句话说,一个连接要想是RELATED的,首先要有一个ESTABLISHED的连接.这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是 RELATED的了,当然前提是conntrack模块要能理解RELATED.ftp是个很好的例子,FTP-data 连接就是和FTP-control有关联的,如果没有在 iptables的策略中配置RELATED状态,FTP-data的连接是无

文档评论(0)

676200 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档