其实IPtables不算真正的防火墙 可以把它理解为成一个客户端代理
“四表”是指,iptables的功能——filter, nat, mangle, raw.
filter, 控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output,iptables中使用最广泛的表,作用是过滤,也是由filter表决定一个数据表是否继续发 往目的地或者被拒绝
nat, 控制数据包中地址转换,可以改变数据表的源地址或者目的地址,可以控制的链路有prerouting, input, output, postrouting
mangle,修改IP头部信息,如修改TTL,可以控制的链路有prerouting, input, forward, output, postrouting
raw,控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output
注:在centos7中,还有security表,不过这里不作介绍
“五链”是指内核中控制网络的NetFilter定义的五个规则链,分别为
PREROUTING, 路由前
INPUT, 数据包流入口
FORWARD, 转发管卡
OUTPUT, 数据包出口
POSTROUTING, 路由后
centos 查看防火墙:
systemctl status firewalld
停止防火墙的命令:
systemctl stop firewalld
禁止防火墙的命令:
systemctl mask firewalld
安装iptables :
yum install -y iptables
升级iptables:
yum update iptables
安装iptables-services :
yum install iptables-services
iptables 常见的命令参数:
(1) -t 表
表选项用于指定命令应用于哪个iptables内置表。
(2)命令
命令选项用于指定iptables的执行方式,包括插入规则,删除规则和添加规则,如下表所示
命令 说明
-P --policy 链名> 定义默认策略
-L --list 链名> 查看iptables规则列表
-A --append 链名> 在规则列表的最后增加1条规则
-I --insert 链名> 在指定的位置插入1条规则
-D --delete 链名> 从规则列表中删除1条规则
-R --replace 链名> 替换规则列表中的某条规则
-F --flush 链名> 删除表中所有规则
-Z --zero 链名> 将表中数据包计数器和流量计数器归零
-X --delete-chain 链名> 删除自定义链
-v --verbose 链名> 与-L他命令一起使用显示更多更详细的信息
(3) 匹配规则
匹配选项指定数据包与规则匹配所具有的特征,包括源地址,目的地址,传输协议和端口号,如下表所示
匹配 说明
-i --in-interface 网络接口名> 指定数据包从哪个网络接口进入,
-o --out-interface 网络接口名> 指定数据包从哪个网络接口输出
-p ---proto协议类型 指定数据包匹配的协议,如TCP、UDP和ICMP等
-s --source 源地址或子网> 指定数据包匹配的源地址
--sport 源端口号> 指定数据包匹配的源端口号
--dport 目的端口号> 指定数据包匹配的目的端口号
-m --match 匹配的模块 指定数据包规则所使用的过滤模块