iptables定义规则语法:
iptables  [-t table]  command chain CRETIRIA -j ACTION
-t 参数用来指定规则表,内建的规则表有3个,分别是nat,mangle,filter。当未指定规则表时,则一律视为filter规则表。
 
nat 规则表有 PREROUTING  、 INPUT(虽然有这个,但是好像在nat规则表一般不用这个) 、OUTPUT  、 POSTROUTING  规则链。一般用来定义地址转换的功能。
mangle规则表有 PREROUTING   、 INPUT 、 FORWARD 、 OUTPUT 、 POSTROUTING 规则链。一般用来修改报文原数据。
filter规则表有 INPUT  、 FORWARD 、 OUTPUT 规则链。一般用作定义允许或者不允许的功能。(信息过滤)
规则链的含义
PREROUTING    (路由前)
INPUT    (数据包流入口)
FORWARD    (转发关卡)
OUTPUT   (数据包出口)
POSTROUTING   (路由后)
 
command :定义如何对规则进行管理
-P :设置默认策略  
     策略: ACCEPT(对满足策略的数据包允许通过)
                 DROP(丢弃数据包,不反回任何信息)
                 REJECT(丢弃数据包,但是会返回拒绝的信息)
                 LOG(把通过的数据包写到日志中,相当于一个门卫队禁区的人进行登记)
默认策略一般只有两种 默认开、默认关
-F :清空规则链
-N  :新建一个规则链
-X : 用于删除用户自定义的规则链
-E : 用来重命名自定义的规则链
-Z  : 清空链
-I  num: 插入规则,把规则插入为第num条 
-R num :  替换修改第num条规则
-D num : 删除第num条规则(还有一种方法是跟-A格式一样)
 -A : 追加,在当前规则链的最后新增一个规则

chain : 规则链 

CRETIRIA : 扩展规则
-p   tcp : TCP协议的扩展。
    --dport :指定目标端口号 
    --sport  : 指定源端口号
    --tcp-flags : TCP的标志位 (SYN ,ACK , FIN, PSH , RST , URG )

-p  udp : UDP协议的扩展        
    --dport : 指定目标端口号
    --sport : 指定源端口号      

-p  icmp : icmp 数据报文的扩展
    --icmp-type:  数据报文的类型  一般用数字表示(可以查 ICMP TYPE CODE 对应表)

-m module_name : 扩展各种模块 (module_name 代表对应模块名字)
         

-j ACTION : ACTION 功能
    功能:  DROP  (丢弃)
                 REJECT (丢弃,但是返回拒绝信息)
                 ACCEPT  (接受)
                 LOG(日志功能,将符合规则的数据包的相关信息记录在日志中)
                 SNAT (源地址转换,改变数据包的源地址)
                 DNAT  (目标地址转换,改变数据包的目的地址)
                 MARK (打标签)
                 MASQUERADE   (动态源地址转换)