iptables规则链详细介绍.doc

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

iptables应用层库函数实现机制:(iptables-1.2.7) 1.? ?iptables命令概述 首先分析iptables命令的特点:命令、选项、匹配(match)、target四部分组成。命令中只允许一个命令,每次添加一个命令时通过add_command来检验命令是否唯一。允许多个不同的选项不过不允许多个相同的选项(除了--verbose选项,-v选项能指定多个,例如iptables ?L INPUT ?v ?v其显示的信息比iptables ?L INPUT ?v要多,会把内核里有关iptables规则相对位置等等更周详的信息都显示出来-----主要是用于规则信息的调试),每次添加一个选项都通过set_option来实现。可通过Inverse_for_options数组查看哪些选项允许前面带有!符号,SOURCE、DESTINATION、PROTOCOL、VIANAMEIN、VIANAMEOUT、FRAGMENT选项允许前面带有!符号。分片选项-f的!有点特别是这样实现的iptables … ! ?f …是放在-f前面而不是后面,那么在命令解析中是怎样实现这一点的,首先命令解析出!是无效选项case 1:在无效选项处理中将invert标志为1。 1.1??命令: 命令类型:INSERT、APPEND、DELETE、REPLACE、LIST、FLUSH、ZERO、NEWCHAIN、DELETECHAIN、RENAMECHAIN、POLICY 1.2??选项: 选项类型:VERBOSE、NUMERIC、LINENUMBERS、COUNTERS、SOURCE、DESTINATION、PROTOCOL、JUMP、EXACT、VIANAMEIN、VIANAMEOUT、FRAGMENT 1.3??匹配: 匹配的种类:第一类是generic matches(通用的匹配),适用于所有的规则;第二类是TCP matches,顾名思义,这只能用于TCP包;第三类是UDP matches,当然他只能用在UDP包上了;第四类是ICMP matches ,针对ICMP包的;第五类比较特别,针对的是状态(state),所有者(owner)和访问的频率限制(limit)等,他们已被分到更多的小类当中,尽管他们并不是完全不同的。 对于通用匹配、隐含匹配(TCP matches、UDP matches、ICMP matches)其实已包含在选项中,只是他们是特别的选项。对于第五类匹配(隐含匹配)是给用户进行匹配模块扩展用的。 1.3.1??通用匹配 无论我们使用的是何种协议,也不管我们又装入了匹配的何种扩展,通用匹配都使可用的。也就是说,他们能直接使用,而不必什么前提条件,在后面你会看到,有非常多匹配操作是需要其他的匹配作为前提的。 如上面选项:PROTOCOL、SOURCE、DESTINATION、VIANAMEIN、VIANAMEOUT、FRAGMENT。 1.3.2??隐含匹配 这种匹配操作是自动地或隐含地装载入内核的。例如我们使用?protocol=tcp 时,不需再装入所有东西就能匹配只有IP包才有的一些特点。目前有三种隐含的匹配针对三种不同的协议,即TCP matches,UDP matches和 ICMP matches。他们分别包括一套只适用于相应协议的判别标准。相对于隐含匹配的是显式匹配,他们必须使用-m或--match被明确地装载。隐含匹配用的命令格式是iptables … -p tcp …用-p而不是-m来指定,隐含匹配还会更改(struct ipt_entry *)a-ip.proto,显示匹配就不会更改该结构单元。 1.3.3??显式匹配 显式匹配必须用-m或--match装载,比如要使用状态匹配就必须使用-m state。有些匹配还需要指定协议,有些就不必,比如连接状态就不要。这些状态是NEW(还未建立好的连接的第一个包), ESTABLISHED(已建立的连接,也就是已在内核里注册过的),RELATED(由已存在的、处于已建立状态的连接生成的新连接),等等。有些匹配还处在研发阶段,或还只是为了说明iptables的强大能力。这说明不是所有的匹配一开始就是实用的,但以后你可能会用到他。随着iptables 新版本的发布,会有一些新的匹配可用。隐含匹配和显式匹配最大的差别就是个是跟随协议匹配自动装载的,一个是显式装载的。(其实在应用层隐含匹配运行时加载的模块形式如libipt_udp.so、libipt_tcp.so、libipt_icmp.so是在运行时才加载的,而内核模块ip_tables.ko中早已包含了对TCP、UDP、ICMP隐含匹配的支持,不必在运行过程忠加载)。 2.? ?iptables-save

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档