firewalld详解
时间: 2025-01-08 09:51:56 浏览: 5
### Firewalld 的详细介绍
#### 一、Firewalld 概述
Firewalld 是一款动态管理防火墙的软件,支持网络区域(zone)的概念来定义不同信任级别的网络连接。相比传统的 iptables 工具而言,firewalld 提供了一个更易于使用的命令行接口和图形界面[^1]。
#### 二、安装与启动服务
大多数现代 Linux 发行版默认已预装此组件;如果没有,则可以通过包管理器轻松获取。对于基于 Red Hat 的系统来说,可执行如下指令完成部署:
```bash
sudo yum install firewalld
```
接着启用并开启该守护进程:
```bash
sudo systemctl enable firewalld.service
sudo systemctl start firewalld.service
```
确认其运行状态正常:
```bash
sudo firewall-cmd --state
```
上述操作完成后即可开始配置工作[^2]。
#### 三、基本概念解析
- **Zone**: 定义了一组具有相同安全策略的应用场景,默认存在 public/private/internal/drop/block/workstation/external/trusted 等多个内置 zone;
- **Service**: 表示允许通过的服务类型列表,比如 ssh/http/https 等常见协议端口组合;
- **Port**: 单独指定开放的具体 TCP 或 UDP 端口号;
- **Rich Rule**: 支持创建复杂的条件语句实现高级过滤逻辑。
#### 四、常用命令集锦
查询当前活动区及其关联规则:
```bash
sudo firewall-cmd --get-active-zones
```
查看某特定 Zone 下的所有设置详情:
```bash
sudo firewall-cmd --zone=public --list-all
```
临时添加一条新规则至 Public 区域内(重启后失效):
```bash
sudo firewall-cmd --add-service=http --zone=public
```
永久生效需追加 `--permanent` 参数,并重新加载配置文件使更改立即起效:
```bash
sudo firewall-cmd --runtime-to-permanent
```
移除先前设定好的规则项:
```bash
sudo firewall-cmd --remove-port=80/tcp --zone=public --permanent
sudo firewall-cmd --reload
```
针对 Rich Rules 进行增删改查的操作方式类似,在这里不再赘述具体语法结构。
#### 五、进阶特性说明
除了以上提到的基础功能外,firewalld 还具备 SNAT/DNAT 地址转换能力,能够灵活调整内外网之间的数据流向。此外,借助于 rich rules 可以构建更为精细的安全防护体系,满足企业级应用场景下的多样化需求。
阅读全文