Iptables 规则是如何练成的 本章将详细地讨论如何构建Iptables 规则
Iptables 包含三个表(filter、nat 、mangle ), 默 认 使 用 filter 表, 每 个表包含若 干 条 链 (PREROUTING ,POSTROUTING, OUTPUT,INPUT 和 FORWARD),每条规则就添加到相应的链上
规则就是指向标,在一条链上,对不同的连接和数据包阻塞或允许它们去向何处
插入链的每一行都是一条规则
我们也会讨论基本的matche 及其用法,还有各种各样的target
基础 我们已经解释了什么是规则,在内核看来,规则就是决定如何处理一个包的语句
如果一个包符合所有的条件(就是符合 matche 语句),我们就运行 target或 ju mp 指令
书写规则的语法格式是: iptables [-t table] command [chain] [match] [-j target/ju mp] 注意 target 指令必须在最后
如果你不想用标准的表,就要在[table]处指定表名
一般情况下没有必要指定使用的表,因为 iptables 默认使用 filter 表来执行所有的命令
也没有必要非得在这里指定表名,实际上几乎可在规则的任何地方
当然,把表名在开始处已经是约定俗成的标准
尽管命令总是放在开头,或者是直接放在表名后面,我们也要考虑考虑到底放在哪儿易读
command 告诉程序该做什么,比如:插入一个规则,还是在链的末尾增加一个规则,还是删除一个规则,下面会仔细地介绍
Chain 指定表的哪条规则链
match 细致地描述了包的某个特点,以使这个包区别于其它所有的包
在这里,我们可以指定包的来源 IP 地址,网络接口,端口,协议类型,或者其他什么
下面我们将会看到许多不同的 match
最后是数据包的