1. 区域
firewalld将网卡对应到不同的区域(zone),通过不同的zone定义了不同的安全等级
trusted :允许所有流量通过
home/internal:仅允许ssh数据通过
work:仅允许ssh,dhcpv6-client数据通过
public:默认区域,仅允许ssh,dhcpv6-client数据通过
external:仅允许ssh数据通过,通过该区域的数据将会伪装(SNAT/DNAT)
block:任何传入的网络数据包都将被阻止。拒绝所有流量 有返回回应消息
drop:拒绝所有流量,没有返回回应消息
2. 命令详解
firewall-cmd --permanent
--permanent #永久生效的配置参数、资源、端口以及服务等信息
1、域zone相关的命令
--get-default-zone #查询默认的区域名称
--set-default-zone=<区域名称> #设置默认的区域
--get-active-zones #显示当前正在使用的区域与网卡名称
--get-zones #显示总共可用的区域
2、services管理的命令
--add-service=<服务名> --zone=<区域> #设置指定区域允许该服务的流量
--remove-service=<服务名> --zone=<区域> #设置指定区域不再允许该服务的流量
3、Port相关命令
--add-port=<端口号/协议> --zone=<区域> #设置指定区域允许该端口的流量
--remove-port=<端口号/协议> --zone=<区域> #设置指定区域不再允许该端口的流量
4、查看所有规则的命令
--list-all --zone=<区域> 显示指定区域的网卡配置参数、资源、端口以及服务等信息
--reload #让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
3. firewalld配置使用
查看默认区域:
[root@iptables-server ~]# firewall-cmd --get-default-zone
public更改默认区域:
[root@iptables-server ~]# firewall-cmd --set-default-zone=trusted
success
[root@iptables-server ~]# firewall-cmd --reload
success
[root@iptables-server ~]# firewall-cmd --get-default-zone
trusted向public区域添加服务:
[root@iptables-server ~]# firewall-cmd --permanent --add-service=http --zone=public
success
[root@iptables-server ~]# firewall-cmd --reload #重新加载配置文件
success指定IP地址为192.168.246.201/24的客户端进入drop区域:
[root@iptables-server ~]# firewall-cmd --permanent --add-source=192.168.246.201/24 --zone=drop
success
[root@iptables-server ~]# firewall-cmd --reload
success将192.168.246.201/24移除drop区域:
[root@iptables-server ~]# firewall-cmd --permanent --remove-source=192.168.246.201/24 --zone=drop
success
[root@iptables-server ~]# firewall-cmd --reload
success向pubic区域添加服务,以添加端口的方式:
[root@iptables-server ~]# firewall-cmd --permanent --add-port=80/tcp --zone=public
success
[root@iptables-server ~]# firewall-cmd --reload
success删除服务、端口
[root@iptables-server ~]# firewall-cmd --permanent --remove-service=http --zone=public
success
[root@iptables-server ~]# firewall-cmd --reload
success====================================================================================
[root@iptables-server ~]# firewall-cmd --permanent --remove-port=80/tcp --zone=public
success
[root@iptables-server ~]# firewall-cmd --reload
success