firewalld 详解

firewalld 详解

firewalld 是 Linux 系统中一个动态防火墙管理工具,取代了传统的 iptables,提供更灵活、动态的规则配置,支持运行时修改且无需重载服务。以下是其核心概念、常用操作及示例指南:


一、核心概念
  1. 区域(Zone)
    定义网络环境的信任级别,不同区域绑定不同规则。常用预置区域:

    • public:默认区域,适用于不信任的公共网络。
    • home:家庭网络,允许部分服务(如SSH、打印机)。
    • internal:内部网络,信任度高于 home
    • trusted:允许所有流量。
  2. 服务(Service)
    预定义规则集合(如 httpssh),包含端口和协议,简化配置:

    sudo firewall-cmd --list-services  # 查看允许的服务
    
  3. 端口与协议
    支持手动开放端口(TCP/UDP):

    sudo firewall-cmd --add-port=8080/tcp  # 开放TCP 8080端口
    
  4. 富规则(Rich Rules)
    复杂规则配置,支持IP、端口范围、限速等:

    sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept'
    
  5. 直接规则(Direct Rules)
    直接调用底层 iptables/ip6tables 命令(高级使用):

    sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 9090 -j ACCEPT
    

二、常用命令
功能命令示例
查看状态sudo firewall-cmd --state
默认区域sudo firewall-cmd --get-default-zone
修改默认区域sudo firewall-cmd --set-default-zone=internal
列出所有区域sudo firewall-cmd --list-all-zones
添加服务sudo firewall-cmd --zone=public --add-service=http
开放端口sudo firewall-cmd --zone=public --add-port=443/tcp
重载配置sudo firewall-cmd --reload
永久生效添加 --permanent 参数,随后重载:
sudo firewall-cmd --permanent --add-port=8080/tcp

三、配置示例
  1. 允许 HTTP/HTTPS 流量

    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-service=https --permanent
    sudo firewall-cmd --reload
    
  2. 限制 SSH 访问(仅允许 192.168.1.0/24 网段)

    sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
    sudo firewall-cmd --reload
    
  3. 转发端口(将80端口转发到内部8080)

    sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
    sudo firewall-cmd --reload
    

四、注意事项
  1. 防止锁定
    测试规则前确保允许当前SSH连接,或设置宽限期:

    sudo firewall-cmd --panic-on   # 紧急模式(阻断所有流量)
    sudo firewall-cmd --panic-off  # 恢复
    
  2. 备份配置
    备份 /etc/firewalld/ 目录下的配置文件(如 zones/services/)。

  3. 日志与监控
    查看防火墙日志(通常位于 /var/log/messagesjournalctl -u firewalld)。


五、总结

firewalld 通过动态管理、区域划分和预定义服务简化了防火墙配置,适合需要灵活调整规则的场景(如服务器、多网络环境)。掌握核心概念与常用命令后,可高效保障系统安全,避免网络攻击。

👉 提示: 使用 man firewall-cmdfirewall-cmd --help 获取更多参数细节。

以下是对 firewalld 常用命令的详细解析,涵盖基础配置、服务管理、端口操作及高级规则的定义。通过这些命令可以高效管理 Linux 系统的防火墙策略。


firewalld 常用命令

一、基础状态与配置

1. 查看防火墙状态
firewall-cmd --state
  • 功能:检查 firewalld 是否正在运行。
  • 输出:running(运行中)或 not running(未运行)。

2. 查看默认区域
firewall-cmd --get-default-zone
  • 功能:显示当前默认的防火墙区域(如 publichomeinternal)。
  • 典型场景:确认新网络接口自动绑定的区域。

3. 修改默认区域
firewall-cmd --set-default-zone=internal
  • 功能:将默认区域更改为 internal(或其他预定义区域)。
  • 注意:修改会立即生效,但不影响已绑定的接口

4. 列出所有区域详情
firewall-cmd --list-all-zones
  • 功能:显示所有区域(zones)的详细配置(服务、端口、来源IP等)。
  • 简化版:使用 --zone=public --list-all 查看特定区域。

二、服务与端口管理

1. 允许服务通过防火墙
firewall-cmd --zone=public --add-service=http
  • 功能:在 public 区域允许 http 服务(预定义端口80/tcp)。
  • 永久生效:添加 --permanent 参数,并执行 firewall-cmd --reload
2. 移除已允许的服务
firewall-cmd --zone=public --remove-service=ssh
  • 功能:在 public 区域移除对 ssh 服务的放行。
  • 紧急场景:若误封了SSH,通过物理控制台或KVM恢复。

3. 开放自定义端口
firewall-cmd --zone=public --add-port=8080/tcp
  • 功能:手动开放TCP端口 8080
  • 多端口:支持范围 3000-4000/udp
4. 查看已开放的端口
firewall-cmd --zone=public --list-ports

三、IP与网络规则

1. 允许特定IP访问
firewall-cmd --zone=public --add-source=192.168.1.10
  • 功能:允许来自 192.168.1.10 的所有流量通过 public 区域。
  • 网段支持:使用 192.168.1.0/24 表示整个子网。
2. 拒绝某IP的流量
firewall-cmd --zone=public --add-source=10.0.0.5 --set-target=DROP
  • 功能:将来自 10.0.0.5 的流量全部丢弃。

四、高级规则(Rich Rules)

适用于复杂场景,支持端口、IP、协议等多条件组合。

1. 限速规则(如每秒允许2个连接)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4"source address="192.168.1.0/24"port port="22" protocol="tcp"limit value="2/s" accept'
2. 拒绝某个IP访问特定端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4"source address="203.0.113.50"port port="80" protocol="tcp"reject'

五、端口转发与NAT

1. 将外部80端口转发到内部8080
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080
  • 要求:启用IP伪装(masquerade)以实现NAT:
firewall-cmd --zone=public --add-masquerade

六、临时与永久规则

1. 临时规则(测试用)
  • 若不添加 --permanent,规则将在重启后失效。
  • 示例:临时允许MySQL端口:
firewall-cmd --zone=public --add-port=3306/tcp
2. 永久规则(需重载生效)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
  • 注意:直接修改配置文件(/etc/firewalld/)后也需重载。

七、应急操作

1. 紧急阻断所有流量
firewall-cmd --panic-on
  • 恢复命令:
firewall-cmd --panic-off

八、命令总结表

类别命令示例
服务管理firewall-cmd --add-service=ftp --permanent
端口管理firewall-cmd --remove-port=9090/udp
IP规则firewall-cmd --add-source=172.16.0.0/16 --zone=trusted
富规则firewall-cmd --add-rich-rule='rule family="ipv6" drop' --permanent
重载配置firewall-cmd --reload

九、注意事项

  1. 操作顺序:建议先测试临时规则,确认无误后再保存为永久规则。
  2. 防锁定:修改远程服务(如SSH)规则时,确保留有恢复途径。
  3. 日志监控:通过 journalctl -u firewalld 跟踪防火墙行为。

掌握这些命令后,可灵活应对服务器部署、网络隔离、端口转发等典型场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向高性能运动控制的MCU:架构创新、算法优化与应用分析

摘要:现代工业自动化、汽车电子以及商业航天等领域对运动控制MCU的性能要求不断提升。本文以国科安芯的MCU芯片AS32A601为例,从架构创新、算法优化到实际应用案例,全方位展示其在高性能运动控制领域的优势与潜力。该MCU以32位RISC-V指令集为基…

支付宝小程序组件与页面构造器使用指南:从页面到组件的正确迁移

引言 在支付宝小程序开发中,我们经常会遇到需要将页面组件化的情况。本文将通过一个实际案例(将 /pages/plugin/device 从页面迁移到组件),深入分析支付宝小程序中页面和组件的区别,以及正确的迁移方式。我们将从问题…

26-算法打卡-字符串-右旋字符串-第二十六天

1 题目说明 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。 例如,对于输入字符串 &qu…

fastbev mmdetection3D 角度和方向损失

角度/方向损失 sin(a−b)sinacosb−cosasinb config参数 dir_offset0.7854, # pi/4 dir_limit_offset0, box编解码 # Copyright (c) OpenMMLab. All rights reserved. import torchfrom mmdet.core.bbox import BaseBBoxCoder from mmdet.core.bbox.builder import BBOX_COD…

极狐GitLab 如何 cherry-pick 变更?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 拣选(cherry-pick)更改 (BASIC ALL) 在 Git 中,cherry-pick 是从一个分支获取一个提交并将其添加为另一个分支的…

java多线程(7.0)

目录 ​编辑 定时器 定时器的使用 三.定时器的实现 MyTimer 3.1 分析思路 1. 创建执行任务的类。 2. 管理任务 3. 执行任务 3.2 线程安全问题 定时器 定时器是软件开发中的一个重要组件. 类似于一个 "闹钟". 达到一个设定的时间之后, 就执行某个指定好的…

优化非线性复杂系统的参数

非线性项组合的系统 对于系统中的每一个复杂拟合,即每一个残差函数,都能表示为非线性方程的趋势,例如较为复杂的系统函数组, from optimtool.base import sp, np x sp.symbols("x1:5") res1 0.5*x[0] 0.2*x[1] 1.…

清华LeapLab开源Cooragent框架:一句话构建本地智能体服务群,让AGI真正触手可及

引言:智能体革命,从复杂到简单 在人工智能发展的浪潮中,Agent(智能体) 技术被视为实现通用人工智能(AGI)的关键路径。然而,传统智能体的开发与协作始终面临两大痛点:依赖…

云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)

1、基本概念 (1)、云原生(Cloud Native) 是一种构建和运行应用程序的方法论,旨在充分利用云计算环境(公有云、私有云、混合云)的特性,通过容器化、微服务、服务网格、声明式API等技…

问答页面支持拖拽和复制粘贴文件,MaxKB企业级AI助手v1.10.6 LTS版本发布

2025年4月24日,MaxKB开源企业级AI助手正式发布v1.10.6 LTS版本。这一版本主要进行了一些功能优化和问题修复。 功能优化 ■ 应用:文件上传支持上传其他自定义的文件类型,该类型文件需要自行写入函数解析; ■ 问答页面&#xff…

用户案例--慧眼科技

作者:算力魔方创始人/英特尔创新大使刘力 每个行业都有其独特的需求,算力魔方推出了全面的定制化服务,从概念到产品化,满足各行各业,用户可以根据具体应用需求定制更多接口或更强图形处理的需求,且算力魔方…

apple 个人开发者转公司经验

1、在apple开发者官网申请 2、收到邮件后,回复准备了开始迁移 3、收到填写迁移资料的邮件 4、开始填写资料 Sign In - Applehttps://developer.apple.com/enroll/type/edit To complete this change, you will need: 要完成此更改,您需要: L…

【ESP32-IDF笔记】20-配置以太网网络(W5500)

环境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 模块:W5500,SPI通讯协议 组件支持:esp_eth 官方的ethernet 以太网组件 W5500介绍 介绍 W5500 是一款全硬件 TCP/IP 嵌入式以太网…

卫星通信的基本概念

1 频段 频段 频率范围 技术特点 典型应用 优势 局限性 最新进展 L 频段 1-2 GHz 波长较长&#xff0c;穿透能力强&#xff0c;受天气影响小&#xff0c;带宽较窄&#xff08;<100 MHz&#xff09;。 卫星导航&#xff08;北斗 / GPS&#xff09;、海事通信&#x…

数据结构------C语言经典题目(7)

1.系统栈和数据结构中的栈有什么区别&#xff1f; 1.本质&#xff1a; 系统栈&#xff1a;由程序运行时由操作系统自动分配的一块连续内存区域&#xff0c;用于存储函数调用过程中的临时数据&#xff08;参数、局部变量、返回地址&#xff09;&#xff0c;是程序运行的底层机制…

【Redis】一、redis的下载与安装

目录 一、redis下载 二、启动服务 三、测试服务 四、可视化界面 五、设置reids密码 今天起准备对redis进行学习&#xff0c;目标是掌握实际开发项目中如何应用redis等操作。首先在这里讲将如何下载redis&#xff0c;方便以后查阅。 一、redis下载 可以去官网&#xff08…

vue3中nextTick的作用及示例

在Vue 3中&#xff0c;nextTick是一个用于处理DOM异步更新的工具函数&#xff0c;确保在数据变化后操作最新的DOM。以下是其作用的详细解析&#xff1a; 核心作用 延迟回调到DOM更新后&#xff1a;Vue的响应式系统会将数据变更批量处理&#xff0c;异步更新DOM。nextTick允许你…

拆解大模型“越狱”攻击:对抗样本如何撕开AI安全护栏?

该文章首发于奇安信攻防社区:https://forum.butian.net/share/4254 引言 随着大规模语言模型(LLMs)在内容生成、智能交互等领域的广泛应用,其安全性和可控性成为学界和产业界关注的焦点。尽管主流模型通过道德对齐机制建立了安全护栏,但研究者发现,通过精心设计的"…

Ubuntu主机上通过WiFi转有线为其他设备提供网络连接

以下是在Ubuntu主机上通过WiFi转有线为Jetson设备提供网络连接的步骤&#xff1a; ​​1. 确认网络接口名称​​ 在Ubuntu主机上执行以下命令&#xff0c;查看WiFi和有线接口名称&#xff1a; ip a WiFi接口通常类似 wlp2s0 或 wlan0有线接口通常类似 enp0s25 或 eth0 记下…

通讯录完善版本(详细讲解+源码)

目录 前言 一、使通讯可以动态更新内存 1、contact.h 2、contact.c 存信息&#xff1a; 删除联系人&#xff0c;并试一个不存在的人的信息&#xff0c;看看会不会把其他人删了 ​编辑 修改&#xff1a; ​编辑 排序&#xff1a; ​编辑 销毁&#xff1a; ​编辑 ​…