1,流程概括(数据包过滤匹配流程)
功能:
filter:过滤,防火墙
nat :network address translation;用于修改ip或目标ip,也可以改端口
mangle:拆解报文,做出修改,并重新封装起来
raw: 关闭nat表上应用的连接追踪机制
iptables的链:功能<-链
raw:PREROUTING, OUTPUT
mangle : PREROUTING, INPUT,FORWARD,OUTPUT,POSTROUTING
nat : PREROUTING, OUTPUT,POSTROUTING
filter : INPUT,FORWARD,OUTPUT
报文流向:
流入本机:PREROUTING--->INPUT
由本机流出:OUTPUT--->POSTROUTING
转发:PREROUTING--->FORWARD--->POSTROUTING
2,规则格式:iptables [-t table] COMMAND chain -m matchname [per-match-options] -j targetname [per-target-options]
-t table : raw, mangle, nat, filter
COMMAND :
连管理::
-N : new , 自定义一条新的规则链
-X : delete, 删除自定义的规则链
-P : Policy, 设置默认策略,对filter表中的链而言,其默认策略有
ACCEPT : 接受 DROP : 丢弃 REJECT : 拒绝
-E : 重命名自定义链:引用计数不为零的自定义链不能够被重命名,也不能被删除
规则管理 :
-A : append, 追加;
-I : insert, 插入,要指明位置,省略时表示第一条;
-D : delete, 删除:(1)指明规则序 (2)指明规则本身
-R : replace, 替换指定链上的指定规则
-F : flush, 清空指定的规则链
-Z : zero , 置零
iptables的每条规则都有两个计数器
(1)匹配到的报文的个数
(2)匹配到的所有报文的大小之和
查看:
-L:list,列出指定键上的所有的规则
-n : number,以数字格式显示地址和端口号
-v : verbose,详细信息;
-x: exactiy,显示计数器结果的精确值
chain : PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
匹配条件
基本匹配条件:无需加载任何模块
-s , --source 检查报文中的源ip地址是否符合指定的地址或范围
-d, --destlnation 检查报文中的目标ip地址是否符合此处指定的地址或范围
扩展匹配条件:需要加载扩展模块,方可生效;
处理动作
-j targetname
ACCEPT : 接受 DROP : 丢弃 REJECT : 拒绝 RETURN:返回调用链
3,防火墙(服务)
centos6
service iptables {start | stop | restart | status}
默认规则文件:/etc/sysconfig/iptables
centos7
systemctl start | stop | restart | status | firewalld.service
systemctl disable firewalld.service
systemctl stop firewalld.service