iptables命令的结构

运维 系统运维
iptables 是与最新的 2.6.x 版本Linux 内核集成的 IP 信息包过滤系统。iptables命令想必大家都知道几个,但是你们知道iptables命令的具体构成么,本文将就iptables命令的构成来解析下!

iptables命令大家都经常用到,但本文要讲的是iptables命令的结构,对学习和记忆iptables命令非常有帮助!

  命令行本节列出了iptables命令行的组成部分(跟在实用工具名iptables后面的内容)。除了明确标示出来的部分之外,实用工具iptables对命令行参数的位置并没有特殊的要求。本章中的示例反映的是一种普遍接受的语法,它可以让命令行更加易于阅读、理解和维护。不是所有命令都包括全部的组成部分。

  iptables命令行中的很多符号都有两种形式:短格式(单个字母,前面还有一个连字符)和长格式(一个单词,前面有两个连字符)。为了简洁起见,大多数脚本使用短格式,而使用长格式的命令行显得有些笨重。下面的两条iptables命令行是一样的效果,本节将它们作为示例:

  表指定命令所操作的表的名称:Filter、NAT还是Mangle。可以在任何iptables命令中指定表名。如果不指定表名,那么该命令操作的就是Filter表。本章的大多数示例不指定表名,因此它们操作的是Filter表。用-ttablename或--tabletablename来指定表。

  命令用来说明命令行剩余部分的作用,比如添加或删除规则、显示规则或添加规则链。这个示例中的命令(-A和--append)将命令行指定的规则添加到指定的表和规则链中。15.7.1节列出了所有命令。

  规则链指定规则所属的规则链或命令操作的规则链的名称。规则链有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING,或者由用户定义的规则链。在指定规则链时,直接将规则链的名字放进命令行,不需要在前面放置任何连字符。本节开头的示例操作的是FORWARD规则链。

  匹配条件 有两种匹配条件:分组匹配条件(匹配网络分组)和规则匹配条件(匹配已有规则)。

  分组匹配条件/规则定义分组匹配条件用来识别网络分组,并实现规则,对匹配条件的分组采取相应的行动。分组匹配条件和动作的组合被称为规则定义。规则定义构成了分组过滤的基础。本节开头的第一个示例使用的规则匹配条件是--in-interfaceeth1--out-interface eth0。第二个示例使用的是同一个条件,但用的是短格式:-i eth1-oeth0。这两条规则都用来转发设备eth1上接收到的分组,并将其通过设备eth0发送到网络。

  规则匹配条件规则匹配条件识别已有的规则。iptables命令能够修改、删除或将一条新规则放置到与规则匹配条件指定的规则相邻的地方。有两种方法可以指定某条已有规则:可以使用与曾经用来建立规则相同的规则定义,也可以使用规则的序号(被称为规则编号)。规则编号从1开始,它表示的是规则链中的第一条规则,可在iptables-L(或者--line-numbers)的结果中显示。下面的第一条命令将本节开头所列的规则删除。第二条命令将INPUT规则链中编号为3的规则替换成另一条规则,将所有来自IP地址192.168.0.10的分组拒绝:

  跳转或目标用来指定内核对分组(它们匹配规则的所有匹配条件)所采取的动作。指定跳转或目标的方式为-jtarget或者--jumptarget。本节开头的示例使用命令--jump ACCEPT和-jACCEPT,来指定目标ACCEPT。

  跳转跳转将控制转移到同一个表中的不同规则链。下面的命令将一条规则添加(--append)到INPUT链,将使用TCP协议(--protocoltcp)的分组传递给用户定义链tcp_rules(--jumptcp_rules):

  当分组经过tcp_rules链的处理之后(假设还没有被丢弃或拒绝),它将从刚跳转的那条规则之后的规则继续经过INPUT链处理。

  目标目标指定内核对分组所采取的动作,最简单的动作是ACCEPT、DROP和REJECT,下面的命令向FORWARD链中添加一条规则,将来自FTP端口(/etc/services--iptables根据这个文件来确定使用哪个端口--显示FTP使用的端口是23)的分组拒绝:

  有些目标(比如LOG)并不是最终的目标:在执行该目标之后,将控制传递给下一条规则。

通过文章的详细描述,我们知道了iptables命令的结构,希望大家都能快速掌握iptables命令!

【编辑推荐】

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-14 14:40:08

Iptables命令

2011-03-15 10:34:51

Iptables命令

2011-03-16 14:22:00

Iptables命令Linux

2011-03-14 14:40:03

Iptables命令

2011-03-16 10:07:00

2011-03-15 15:47:25

iptables安装命令

2011-03-16 15:58:40

Iptables防火墙

2011-03-15 09:59:57

2010-10-15 10:29:25

Mysql表结构

2011-03-18 09:26:13

Iptables规则

2011-03-15 09:02:01

IPtables常用命令

2011-03-16 11:17:56

IptablesICMP

2011-03-14 14:40:11

iptables编译

2011-03-16 11:12:06

Iptables

2011-03-18 08:52:23

Iptables

2011-03-16 14:55:36

关闭iptables

2011-03-16 09:30:47

iptables过滤

2011-03-14 15:17:40

iptables设定

2011-03-15 09:59:54

2011-03-15 09:59:54

点赞
收藏

51CTO技术栈公众号