文章目录
- Firewalld 防火墙配置
- 1. Firewalld 概述
- 2. 区域名称及策略规则
- 3. Firewalld 配置方法
- 4. Firewalld 参数和命令
- 5. Firewalld 两种模式
- 6. Firewalld 使用
Firewalld 防火墙配置
1. Firewalld 概述
firewalld 是一个动态防火墙管理器,作为 Systemd 管理的防火墙前端工具,它为 Linux 操作系统提供了一种方便且灵活的方式来管理网络访问控制。
在传统的 iptables 防火墙中,管理员需要手动配置防火墙规则,并将规则保存到静态的配置文件中。这种方式相对复杂且不够动态,特别是在面对频繁变动的网络环境时。而 firewalld 提供了一种更高级、更易用的方式来管理防火墙规则。
firewalld 使用基于 “区域”(Zone) 的概念来管理防火墙策略。每个区域都对应一组特定的规则,用于定义该区域内允许和禁止的网络访问。
firewalld 还可以动态更新防火墙规则,而无需重启防火墙服务。这意味着管理员可以在运行时添加、删除或修改规则,使网络访问控制更加灵活和实时。此外,firewalld 还支持连接跟踪,可以自动管理由于网络连接状态的变化而需要调整的规则。
除了基本的端口过滤、包转发和网络地址转换等功能外,firewalld 还提供了高级功能,如源地址验证、负载均衡、IPset、Rich Rules 等。管理员可以使用这些功能来创建更复杂、更精细的防火墙策略。
注意:firewalld不要与iptables混用,如果要使用firewalld就将iptables规则清空。
2. 区域名称及策略规则
firewalld九个区域
-
trusted(信任区域):允许所有的数据包
-
home(家庭区域):拒绝流入的流量,除非与流出的流量相关,而如果是与ssh,mdns,ipp-client,amba-client与dhcp-client服务相关流量,则是允许通过。
-
internal(内部区域):默认值时与homel区域相同。
-
work(工作区域):拒绝流入的流量,除非与流出的流量相关,而如果是与ssh,ipp-client与dhcpv6-client服务相关流量,则是允许通过。
-
public(公共区域):拒绝流入的流量,除非与流出的流量相关;而如果是与ssh或dhcpv6-client服务相关流量,则允许通过。
-
external(外部区域):拒绝流入的流量,除非与流出的流量相关;而如果与ssh服务相关流量,则允许通过。
-
dmz(隔离区域也称为非军事区域):拒绝流入的流量,除非与流出的流量相关;而如果与ssh服务相关流量,则允许通过。
-
block(限制区域):拒绝流入的流量,除非与流出的流量相关。
-
drop(丢弃区域):拒绝流入的流量,除非与流出的流量相关。
3. Firewalld 配置方法
使用Firewalld命令行工具
firewalld-cmd
使用Firewalld图形工具
firewalld-config
4. Firewalld 参数和命令
参数 | 作用 |
---|---|
-get-default-zone | 查询默认区域 |
-set-default-zone=区域名称 | 设置默认区域,使其永久生效 |
–get-zones | 显示可用的区域 |
–get-active-zones | 显示当前正在使用的区域以及网卡的名称 |
–add-source=ip | 将源自此的IP或子网的流量导向指定的区域 |
–remove-source=ip | 不再将源自此的IP或子网的流量导向指定的区域 |
–add-interface=网卡名称 | 将源自此的网卡的流量导向指定的区域 |
–change-interface=网卡名称 | 将某个网卡与区域进行关联 |
–list-all | 显示当前区域的网卡配置参数,资源,端口及服务信息 |
–list-all-zones | 显示所有区域的网卡配置参数,资源,端口及服务信息 |
–add-service=服务名称 | 设置默认区域允许该服务的流量 |
–add-port=端口协议 | 设置默认区域允许该端口的流量 |
–remove-service=服务名称 | 不再设置默认区域允许该服务的流量 |
–remove-port=端口协议 | 不再设置默认区域允许该端口的流量 |
–reload | 让永久生效的配置规则立即生效,并覆盖当前的配置规则 |
–panic-on | 开启应急模式 |
–panic-off | 关闭应急模式 |
–query-masquerade | 检查是否允许伪装IP |
–add-masquerade | 允许防火墙伪装IP |
–remove-masquerade | 禁止防火墙伪装IPs |
5. Firewalld 两种模式
运行时模式 Runtime
- 配置后立即生效,重启后失效
永久生效模式 permanent
- 当前不生效,重启后生效
6. Firewalld 使用
查看当前使用的区域
firewall-cmd --get-default-zone
显示可用的区域
firewall-cmd --get-zones
显示当前正在使用的区域以及网卡的名称
firewall-cmd --get-active-zones
查看指定网卡所在的区域
firewall-cmd --get-zone-of-interface=ens224
显示当前区域的网卡配置参数,资源,端口及服务信息
firewall-cmd --list-all
显示所有区域的网卡配置参数,资源,端口及服务信息
firewall-cmd --list-all-zones
修改当前网卡所在的区域,并永久生效
firewall-cmd --permanent --zone=external --change-interface=ens224
重启服务器,查看网卡所在区域
firewall-cmd --get-zone-of-interface=ens224
开启应急模式
firewall-cmd --panic-on
开启后ssh服务就无法使用了,因为应急模式拦截一切流量。
关闭应急模式
firewall-cmd --panic-off
关闭后SSH即可正常连接
因为我们现在的处于public区域,所以SSH的流量可以进入。