目录
3. firewa11d 与 iptables service 的区别
四、Firewalld 防火墙 firewall-cmd 命令设置
前言
随着网络技术的飞速发展,网络安全问题日益突出,防火墙作为网络安全的第一道防线,其重要性不言而喻。在 Linux 系统中,firewal1d 作为一种动态防火墙管理工具,凭借其灵活的配置和强大的功能,逐渐成为众多企业和个人用户的首选。 本章节将详细介绍 firewa11d 防火墙的基本原理、配置方法以及实际应用案例。首先,了解 firewalld 的基本概念和它与 iptables 的关系;接着,讲解如何使用 firewal1-config 图形化工具和 firewal1-cmd 命令行工具配置防火墙;最后,通过具体案例展示实际应用。
一、Firewalld 防火墙概述
1. Firewal1d 简介
-
作用:为包过滤机制提供匹配规则,通过规则告诉 netfilter 如何处理数据包。
-
功能:支持网络区域定义、IPv4/IPv6 防火墙设置、以太网桥,提供运行时配置与永久配置模式,支持服务 / 应用程序直接添加防火墙规则接口。
2. firewalld 和 iptables 的关系
-
共同点:均通过内核的 netfilter 实现防火墙功能,用于维护规则。
-
不同点:结构和使用方法不同。firewal1d 通过
firewal1-config
(图形化)、firewal1-cmd
(命令行)配置,依赖iptables
工具与内核通信;iptables
规则存储在/etc/sysconfig/iptables
,firewal1d 规则存储在/usr/lib/firewal1d/
和/etc/firewal1d/
的 XML 文件中。
3. firewa11d 与 iptables service 的区别
对比项 | iptables service | firewal1d |
---|---|---|
配置存储 | /etc/sysconfig/iptables | /usr/lib/firewal1d/ 和/etc/firewal1d/ (XML 文件) |
规则更新 | 每次更改需重新加载所有规则,可能中断连接 | 仅更新差异规则,支持运行时修改不丢失连接 |
二、Firewalld 网络区域
-
区域机制:根据数据包源 IP 地址或传入接口划分区域,按优先级匹配规则(源地址区域 → 接口区域 → 默认区域)。
-
默认区域:默认为
public
,可由管理员修改。 -
预定义区域说明:
区域 | 默认策略规则 |
---|---|
trusted | 允许所有数据包 |
home | 拒绝流入流量(除与流出流量相关或 ssh、mdns 等服务相关) |
internal | 等同于home 区域 |
work | 拒绝流入流量(除与流出流量相关或 ssh、ipp-client 等服务相关) |
public | 拒绝流入流量(除与流出流量相关或 ssh、dhcpv6-client 服务相关) |
external | 拒绝流入流量(除与流出流量相关或 ssh 服务相关) |
dmz | 拒绝流入流量(除与流出流量相关或 ssh 服务相关) |
block | 拒绝流入流量(除与流出流量相关) |
drop | 拒绝流入流量(除与流出流量相关) |
三、Firewalld 防火墙图形配置方法
1. firewal1-config 工具简介
-
支持图形化配置防火墙服务、端口、伪装、端口转发、ICMP 过滤等功能,界面分为主菜单、配置选项、选项卡(区域、服务、IPsets 等)。
2. 主要配置选项
(1)区域选项卡
-
服务子选项卡:定义区域中可信服务,允许绑定该区域的连接 / 接口 / 源地址访问。
-
端口子选项卡:设置允许访问的端口范围。
-
伪装子选项卡:实现私有 IP 到公有 IP 的映射(仅 IPv4)。
-
端口转发子选项卡:端口映射(仅 IPv4)。
-
ICMP 过滤器子选项卡:拒绝指定 ICMP 类型(如 ping 请求
echo-request
)。
(2)服务选项卡
-
包含端口、协议、模块、目标地址等子选项卡,仅支持永久配置修改。
3. 操作要点
-
运行时与永久配置:运行时配置即时生效,重启后丢失;永久配置需通过
重新加载防火墙
或重启生效。 -
修改默认区域:通过菜单
选项 → 改变默认区域
选择目标区域。
四、Firewalld 防火墙 firewall-cmd 命令设置
1. 获取预定义信息
# 查看可用区域 firewall-cmd --get-zones # 查看预定义服务 firewall-cmd --get-services # 查看ICMP阻塞类型 firewall-cmd --get-icmptypes
2. 区域管理
命令 | 说明 |
---|---|
firewall-cmd --get-default-zone | 显示默认区域 |
firewall-cmd --set-default-zone=<zone> | 设置默认区域 |
firewall-cmd --get-zone-of-interface=<interface> | 显示接口绑定的区域 |
firewall-cmd --zone=<zone> --add-interface=<interface> | 为接口绑定区域 |
3. 服务管理
# 添加服务(默认区域) firewall-cmd --add-service=<服务名> # 添加服务(指定区域) firewall-cmd --zone=<zone> --add-service=<服务名> # 移除服务 firewall-cmd --remove-service=<服务名>
4. 端口管理
# 添加端口(TCP 443) firewall-cmd --add-port=443/tcp # 添加端口(指定区域) firewall-cmd --zone=<zone> --add-port=<端口号/协议>
5. 配置模式
-
运行时模式:内存中临时配置,重启失效。
-
永久模式:存储在配置文件,需通过
firewall-cmd --reload
生效。 -
命令示例:
# 设置永久规则(添加HTTP服务) firewall-cmd --add-service=http --permanent # 重新加载规则 firewall-cmd --reload
五、Firewalld 防火墙案例
1. 实验环境
-
网关服务器:双网卡(
ens160
:external 区域,ens226
:trusted 区域)。 -
网站服务器:部署于 dmz 区域,修改 SSH 端口为 12345,仅允许 HTTPS 访问,禁止 ping。
2. 关键配置步骤
(1)网站服务器配置
设置默认区域为dmz firewall-cmd --set-default-zone=dmz # 允许HTTPS服务,添加SSH端口 firewall-cmd --zone=dmz --add-service=https --permanent firewall-cmd --zone=dmz --add-port=12345/tcp --permanent # 禁止ping firewall-cmd --zone=dmz --add-icmp-block=echo-request --permanent
(2)网关服务器配置
# 设置默认区域为external,启用IP伪装 firewall-cmd --set-default-zone=external firewall-cmd --zone=external --add-masquerade --permanent # 配置接口区域 firewall-cmd --change-interface=ens224 --zone=trusted --permanent firewall-cmd --change-interface=ens226 --zone=dmz --permanent
本章总结
-
核心内容:firewal1d 基本原理、区域机制、图形化与命令行配置方法、实际案例应用。
-
关键优势:动态配置、区域化管理、支持运行时与永久配置模式,适合复杂网络环境的安全控制。