前言
(1)iptables与firewalld都不是真正的防火墙,可以理解为一种服务,对防火墙策略定义的防火墙管理工具
(2)防火墙会从上至下的顺序来读取配置的策略规则
(3)防火墙策略按一定规则检查数据流是否可以通过防火墙的基本安全控制机制
(4)规则本质就是对出入的数据进行检测,过滤
作用
(1)对源目地址、端口号、协议、应用等信息来定制规则,保护特定网络免受“不信任”的网络的攻击
(2)保证两网之间进行合法通信
一、iptables防火墙
iptables服务把用于处理或过滤流量的策略条目称之为规则;多条规则可以组成一个规则链。
早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙。
过程:
1、依据数据包处理位置的不同进行分类
进行路由选择前处理数据包 | PREROUTING |
---|---|
外——内 | 处理流入的数据包(INPUT) |
内——外 | 处理流出的数据包(OUTPUT) |
通过第三方 | 处理转发的数据包(FORWARD) |
进行路由选择后处理数据包 | POSTROUTING |
2、匹配策略规则采取的动作
ACCEPT | 允许通过 |
---|---|
LOG | 允许通过但登记 |
REGECT | 拒绝并提示 |
DROP | 仅拒绝 |
3、防火墙根据安全策略定义规则对包进行处理
基本的命令参数
iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,再次提醒一下,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。
参数 | 作用 |
---|---|
-P | 默认策略 |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I | 在规则链的头部加入新规则 |
-D | 删除某一条规则 |
-s | 匹配来源地址,加!表示除这以外 |
-d | 匹配目标地址 |
-i 网卡名称 | 匹配从这块网卡流入的数据 |
-o 网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议 |
–dport | 匹配目标端口号 |
–sport | 匹配源端口号 |
-j | 采取的动作 |
iptables -L #查看防火墙已有规则链
iptables -F #清空防火墙已有规则
iptables -L #查看,此时规则已清空
iptables -P INPUT DROP #将流入规则链默认权限设置为拒绝,默认拒绝不能是REGECT
规则清空的情况下默认设置为拒绝
iptables -L #查看,此时的默认策略为DROP
iptables -I INPUT -p icmp -j ACCEPT #向INPUT链头部中添加允许ICMP流量进入的策略规则
ping -c 4 192.168.14.40 #此时可以ping通,但是其余的ssh什么的是不行的
此时ping通
ssh不通
iptables -D INPUT 1 #删除INPUT规则链的第1条规则(即刚刚允许ICMP那条)
iptables -P INPUT ACCEPT #把INPUT规则链默认策略设置为允许
iptables -L #查看规则链,显示Chain INPUT (policy ACCEPT),ping,ssh什么的都允许
iptables -I INPUT -s 192.168.14.0/24 -p tcp --dport 22 -j ACCEPT #将INPUT规则链设置为只允许指定网段的主机访问本机的22端口(必须先指明协议才能指明端口号)