iptables:包括“四表五链”+策略
(1)四表---table
filter表:负责过滤功能,防火墙;内核模块:iptables_filter;涉及链:INPUT、FORWARD、OUTPUT
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat;涉及链:PREROUTING、POSTROUTING、OUTPUT
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle;涉及链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
raw表:关闭nat表上启用的连接追踪机制;iptable_raw;涉及链:OUTPUT、PREROUTING
(2)五链---chain
INPUT——进来的数据包应用此规则链中的策略
OUTPUT——外出的数据包应用此规则链中的策略
FORWARD——转发数据包时应用此规则链中的策略
PREROUTING——对数据包作路由选择前应用此链中的规则
POSTROUTING——对数据包作路由选择后应用此链中的规则
(3)策略
ACCEPT
DROP
REJECT
(4)语法
iptables [-t table] COMMAND [chain] CONDITION -j ACTION
(5)命令 ---COMMAND
-A 在指定链的末尾添加(append)一条新的规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-E 重命名用户定义的链,不改变链本身
-F 清空(flush)
-N 新建(new-chain)一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链(delete-chain)
-P 设置指定链的默认策略(policy)
-Z 将所有表的所有链的字节和数据包计数器清零
-n 使用数字形式(numeric)显示输出结果
-v 查看规则表详细信息(verbose)的信息
-V 查看版本(version)
-h 获取帮助(help)
(6)条件---CONDITION
[!] -s, --source address[/mask][,...]:检查报文的源IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
[!] -d, --destination address[/mask][,...]:检查报文的目标IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
[!] -p, --protocol protocol:匹配报文中的协议,可用值tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh 或者 "all", 亦可以数字格式指明协议;
[!] -i, --in-interface name:限定报文仅能够从指定的接口流入;only for packets entering the INPUT, FORWARD and PREROUTING chains.
[!] -o, --out-interface name:限定报文仅能够从指定的接口流出;for packets entering the FORWARD, OUTPUT and POSTROUTING chains.