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 (动态源地址转换)