Firewalld概述
- 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
- 支持IPv4、IPv6防火墙设置以及以太网桥
- 支持服务或应用程序直接添加防火墙规则接口拥有两种配置模式:
firewalld和iptables的关系
1. netfilter
- 位于linux内核中的包过滤系统功能体系
- 称为Linux防火墙的“内核态”
2. firewalld/iptables - Centos7默认的管理防火墙规则的工具(firewallld)
- 称为Linux防火墙的“用户态”
firewalld和iptables的区别
| firewalld | iptables |
---|
配置文件 | /usr/lib/firewalld/ /etc/firewalld/ | /etc/sysconfig/iptables |
对规则的修改 | 不需要全部刷新策略不丢失现行连接 | 需要刷新策略,会丢失连接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
firewalld网络区域
区域介绍:
- 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
- 可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
- 默认情况下,public区域是默认区域,包含所有接口(网卡)
firewalld数据处理流程
- 检查数据来源的源地址
- 若源地址关联到特定的区域,则执行该区域所指定的规则
- 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
- 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
Firewalld防火墙的配置方法
运行时配置
- 实时生效,并持续至Firewalld重新启动或重新加载配置
- 不中断现有连接
- 不能修改服务配置
永久配置 - 不立即生效,除非Firewalld重新启动或重新加载配置
- 中断现有连接
- 可以修改服务配置
firewall-config图形工具
firewall-cmd命令行工具
/etc/firewalld/中的配置文件
- Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置
- /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
- /usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/中的配置
firewalld在区域内定义规则,用区域和源地址或网卡绑定,机会区域内的配置,运行时配置和永久配置
九个永久预定义的区域
trusted | public | external | home | internal | work | dm2 | block | drop |
---|
区域的优先级
和源地址绑定的区域 > 和网卡绑定的区域 > 默认区域
(只要是没绑定过的区域的网卡都是使用默认区域的规则)
firewalld主要参数
--get-default-zone 查询默认的区域名称
--set-default-zone=<区域名称> 设置默认的区域,使其永久生效
--get-zones 显示可用的区域
--get-services 显示预先定义的服务
--get-active-zones 显示当前正在使用的区域与网卡名称
--add-source= 将源自此 IP 或子网的流量导向指定的区域
--remove-source= 不再将源自此 IP 或子网的流量导向某个指定区域
--add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称> 将某个网卡与区域进行关联
--list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones 显示所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=<服务名> 设置默认区域允许该服务的流量
--add-port=<端口号/协议> 设置默认区域允许该端口的流量
--remove-service=<服务名> 设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
--reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
--panic-on 开启应急状况模式
--panic-off 关闭应急状况模式
常用命令
firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --get-zone-of-interface=eth0
firewall-cmd --panic-on
firewall-cmd --panic-off
firewall-cmd --query-panic
firewall-cmd --reload
firewall-cmd --complete-reload
firewall-cmd --zone=public --add-interface=eth0
firewall-cmd --set-default-zone=public
firewall-cmd --zone=dmz --list-ports
firewall-cmd --zone=dmz --add-port=8080/tcp
firewall-cmd --zone=work --add-service=smtp
firewall-cmd --zone=work --remove-service=smtp
firewall-cmd --get-zones
firewall-cmd --set-default-zone=home
firewall-cmd --get-active-zones
firewall-cmd --get-zone-of-interface=enp03s
firewall-cmd --zone=public --list-all
firewall-cmd --zone=internal --change-interface=enp03s
firewall-cmd --permanent --zone=internal --change-interface=enp03s
查看区域
[root@localhost ~]
public
查看网卡绑定
[root@localhost ~]
public
interfaces: ens33
设置区域
[root@localhost ~]
success
[root@localhost ~]
home
临时修改网卡(ens36)为(home)区域
同时将http和https添加进默认区域并设置永久有效
[root@localhost ~]
success
[root@localhost ~]
success
[root@localhost ~]
success
[root@localhost ~]
home (active)
target: default
icmp-block-inversion: no
interfaces: ens33 ens36
sources:
services: ssh mdns samba-client dhcpv6-client http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
success
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)