Linux防火墙之IPtables概念与用法- wfeng520 - wfeng520 - 和讯博客
Linux防火墙之IPtables概念与用法 [转贴 2010-04-22 14:43:34]   
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。 可把它们归为五类:{dy}类是generic matches(通用的匹配),适用于所有的规则;第二类是TCP matches,顾名思义,这只能用于TCP包;第三类是UDP matches, 当然它只能用在UDP包上了;第四类是ICMP matches ,针对ICMP包的;第五类比较特殊,针对的是,指所有者和访问的频率限制等。在此,只介绍通用匹配,熟悉了通用匹配,其它的几种也就比较容易理解 了。
所有在内核中由netfilter的特定框架做的连接跟踪称作conntrack(就是connection tracking的首字母缩写)。conntrack可以作为模块安装,也可以作为内核的一部分。大部分情况下,我们需要更详细的连接跟踪。因 此,conntrack中有许多用来处理TCP、UDP或ICMP协议的部件。这些模块从数据包中提取详细的、{wy}的信息,因此能保持对每一个数据流的跟 踪。这些信息也告知conntrack流当前的状态。例如,UDP流一般由他们的目的地址、源地址、目的端口和源端口{wy}确定。
除了本地产生的包由OUTPUT链处理外,所有连接跟踪都是在PREROUTING链里进行处理的,意思就是说 iptables会在PREROUTING链里重新计算所有的状态。如果我们发送一个流的初始化包,状态就会在OUTPUT链里被设置为NEW,当我们收 到回应的包时,状态就会在PREROUTING链里被设置为ESTABLISHED。如果{dy}个包不是本地产生的,那就会在PREROUTING链里被设 置为NEW状态。综上所述,所有状态的改变和计算都是在nat表中的PREROUTING链和OUTPUT链里完成的。
ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于 ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。一个连接要从NEW变为 ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的。ICMP的错误和重定向等信息包也被看作是 ESTABLISHED,只要它们是我们所发出的信息的应答。
RELATED是个比较麻烦的状态。当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就被认 为是RELATED的了。换句话说,一个连接要想是RELATED的,首先要有一个ESTABLISHED的连接。这个ESTABLISHED连接再产生 一个主连接之外的连接,这个新的连接就是RELATED的了,当然前提是conntrack模块要能理解RELATED。ftp是个很好的例子,FTP- data 连接就是和FTP-control有RELATED的。
郑重声明:资讯 【Linux防火墙之IPtables概念与用法- wfeng520 - wfeng520 - 和讯博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——