文章目录
-
- 一、firewall-cmd的作用
- 二、常用使用方法
-
- [1. 查看当前防火墙状态](#1. 查看当前防火墙状态)
- [2. 重新载入防火墙规则(修改配置后生效)](#2. 重新载入防火墙规则(修改配置后生效))
- [3. 查看所有区域信息](#3. 查看所有区域信息)
- [4. 查看当前默认区域](#4. 查看当前默认区域)
- [5. 查看某个区域当前配置(如 public 区域)](#5. 查看某个区域当前配置(如 public 区域))
- [6. 开放某个端口(比如 TCP 端口 8080)](#6. 开放某个端口(比如 TCP 端口 8080))
- [7. 移除端口](#7. 移除端口)
- [8. 添加允许的服务(比如 http、ssh)](#8. 添加允许的服务(比如 http、ssh))
- [9. 配置接口归属到某个区域](#9. 配置接口归属到某个区域)
- [10. 添加富规则(更灵活的规则)](#10. 添加富规则(更灵活的规则))
- [三、附:重启 firewalld 服务](#三、附:重启 firewalld 服务)
一、firewall-cmd的作用
主要用于:
- 配置和管理防火墙规则
- 控制网络流量的允许与拒绝
- 定义不同"区域"的信任级别
- 添加/移除端口、服务、富规则(rich rules)等
- 动态修改防火墙配置(无需重启服务)
Firewalld 基于 zone(区域) 的概念,不同的网络接口可以分配到不同的 zone,从而实现不同级别的安全策略。
二、常用使用方法
1. 查看当前防火墙状态
bash
firewall-cmd --state
2. 重新载入防火墙规则(修改配置后生效)
bash
firewall-cmd --reload
3. 查看所有区域信息
bash
firewall-cmd --get-zones
4. 查看当前默认区域
bash
firewall-cmd --get-default-zone
5. 查看某个区域当前配置(如 public 区域)
bash
firewall-cmd --zone=public --list-all
6. 开放某个端口(比如 TCP 端口 8080)
- 临时生效(重启失效)
bash
firewall-cmd --zone=public --add-port=8080/tcp
- 永久生效
bash
firewall-cmd --zone=public --add-port=8080/tcp --permanent
7. 移除端口
bash
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
8. 添加允许的服务(比如 http、ssh)
- 查看所有支持的服务
bash
firewall-cmd --get-services
- 添加服务
bash
firewall-cmd --zone=public --add-service=http --permanent
- 移除服务
bash
firewall-cmd --zone=public --remove-service=http --permanent
9. 配置接口归属到某个区域
bash
firewall-cmd --zone=internal --change-interface=eth1
10. 添加富规则(更灵活的规则)
允许某个 IP 访问特定端口:
bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port protocol="tcp" port="22" accept'
三、附:重启 firewalld 服务
bash
systemctl restart firewalld