【个人总结系列-25】IPTABLES基本原理学习总结.docx

【个人总结系列-25】IPTABLES基本原理学习总结.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【个人总结系列-25】IPTABLES基本原理学习总结

IPTABLES基本原理学习总结iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助我们更有效地管理Linux防火墙。简单地讲,iptables由tables组成,tables由chains组成,而chains又由rules组成。Iptables主要包括Filter、 NAT、Mangle、 Raw四种内建表:Filter表Filter表示iptables的默认表,因此如果没有自定义表,那么就默认使用filter表,它具有以下三种内建链:INPUT链 – 处理来自外部的数据。OUTPUT链 – 处理向外发送的数据。FORWARD链 – 将数据转发到本机的其他网卡设备上。2. NAT表NAT表有三种内建链:PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。OUTPUT链 – 处理本机产生的数据包。Mangle表Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:PREROUTINGOUTPUTFORWARDINPUTPOSTROUTINGRaw表Raw表用于处理异常,它具有2个内建链:PREROUTING chainOUTPUT chain因此,总体而言,iptables包括5个链和4个表,iptables的5个链分别为PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。4个表分别为filter、nat、mangle、raw。4个表的优先级由高到低的顺序为:rawmanglenatfilter。RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一旦用户使用了RAW表,在某个链上RAW表处理完后将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了。 数据包在iptables各表各链上的处理流程如下图所示:数据包流经iptables的路径针对上图给出的数据包流经iptables的路径,以下内容将分析各类流量的处理过程,分别包括流入本机数据包、流出本机数据包、流经本机转发的数据包。(1)流入本机数据包的路径:所属表 manglenat manglenat filter网络数据包 PREROUTING PREROUTING 路由选择 INPUT INPUT INPUT 本地处理进程(2)流出本机数据包的路径:所属表 mangle filter manglenat本地处理进程 OUTPUT OUTPUT 路由选择 POSTROUTING POSTROUTING 外部网络(3)流经本机转发的数据包的路径:所属表 mangle nat mangle filterA端网络 PREROUTING PREROUTING 路由选择 FORWARD FORWARD mangle natPOSTROUTING POSTROUTING B端网络数据包在iptables中的处理过程基本如下:数据包到达网络接口,比如 eth0。进入 raw 表的 PREROUTING 链,这个链的作用是赶在连接跟踪之前处理数据包。如果进行了连接跟踪,在此处理。进入 mangle 表的 PREROUTING 链,在此可以修改数据包,比如 TOS 等。进入 nat 表的 PREROUTING 链,可以在此做DNAT,但不要做过滤。决定路由,看是交给本地主机还是转发给其它主机。到了这里我们就得分两种不同的情况进行讨论了,一种情况就是数据包要转发给其它主机,这时候它会依次经过:进入 mangle 表的 FORWARD 链,这里也比较特殊,这是在第一次路由决定之后,在进行最后的路由决定之前,我们仍然可以对数据包进行某些修改。进入 filter 表的 FORWARD 链,在这里我们可以对所有转发的数据包进行过滤。需要注意的是:经过这里的数据包是转发的,方向是双向的。进入 mangle 表的 POSTROUTING 链,到这里已经做完了所有的路由决定,但数据包仍然在本地主机,我们还可以进行某些修改。进入 nat 表的 POSTROUTING 链,在这里一般都是用来做

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档