当前位置: 首页 > news >正文

firewalld防火墙(一):基础概念、配置详解与实战应用

目录

一、原理与理论

1. Linux防火墙基础

2. firewalld概述  2. firewalld 概述

二、背景与目的

1. 为何需要firewalld?

2. 适用场景

三、配置方法与步骤

1. 基础操作命令

2. 关键配置详解

四、问题及解决方案

常见故障排查

五、总结与心得


 

一、原理与理论

1. Linux防火墙基础
  • Netfilter框架:Linux内核的数据包过滤系统(iptables/nftables底层支撑)。

  • 包处理流程:数据包经过PREROUTING → INPUT/FORWARD → OUTPUT → POSTROUTING链的过滤。

  • 防火墙类型

    • 静态防火墙(iptables):规则更新需重启服务。

    • 动态防火墙(firewalld):规则实时生效,无需中断连接。

2. firewalld概述  2. firewalld 概述
  • 核心特性

    • 基于区域(Zone) 和服务(Service) 的抽象管理。

    • 支持运行时(Runtime) 和永久(Permanent) 双配置模式。

    • 使用D-Bus接口实现动态规则更新。

  • 工作流程


二、背景与目的

1. 为何需要firewalld?
  • iptables规则复杂且变更需重载,影响生产环境连续性。

  • firewalld通过预定义服务(如http、ssh)简化配置,提升可维护性。

2. 适用场景
  • 多网络环境切换(如笔记本移动办公)。

  • 需动态调整规则的云服务器/容器环境。


三、配置方法与步骤

1. 基础操作命令
# 查看活动区域
firewall-cmd --get-active-zones# 添加HTTP服务到public区域(运行时)
firewall-cmd --zone=public --add-service=http# 永久生效
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload  # 重载配置
2. 关键配置详解
功能命令示例
开放端口firewall-cmd --add-port=8080/tcp
绑定网卡到区域firewall-cmd --zone=work --change-interface=eth0
设置默认区域firewall-cmd --set-default-zone=trusted
允许IP段访问firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'

四、问题及解决方案

常见故障排查
  1. 服务未生效

    • 检查firewall-cmd --list-all --zone=public 确认规则是否存在。

    • 解决:确保使用--permanent后执行--reload

  2. 端口开放但无法访问

    • 可能原因:SELinux限制或服务未监听公网IP。

    • 验证ss -tuln | grep 8080 检查监听地址。

  3. 富规则(Rich Rules)优先级冲突

    • 原则:先添加的规则优先匹配。

    • 调整:使用--remove-rich-rule删除旧规则后重新排序添加。


五、总结与心得

  • firewalld优势:  firewalld 优势 

    • 灵活性:动态更新规则,适应网络环境变化。

    • 易用性:基于服务的配置降低复杂度。

  • 实践建议

    1. 生产环境操作前备份配置:cp /etc/firewalld/firewalld.conf{,.bak}

    2. 使用--permanent修改后必须--reload生效。

    3. 复杂规则优先使用富规则(Rich Rules)保证可读性。

http://www.dtcms.com/a/252084.html

相关文章:

  • 数据库核心技术深度剖析:事务、索引、锁与SQL优化实战指南(第六节)-----InnoDB引擎
  • YOLOv4 训练与推理流程详解
  • Java并发编程实战 Day 23:并发系统性能调优
  • Android跨进程通信深度优化:从Binder机制原理到企业级实战指南
  • sparseDrive(2):环境搭建及效果演示
  • 【Linux服务器】-安装zabbix-负载环境(故障自动切换场景)
  • MySQL面试题(完整版一百道经典高频面试题)
  • LDPC码的译码算法
  • Node.js验证码:从生成到验证的趣味之旅
  • 语音转文本ASR、文本转语音TTS
  • 如何在 Elementary OS 上安装 Google Chrome 浏览器
  • Qdrant向量数据库的增删改查
  • 华为OD-2024年E卷-增强的strstr[100分] -- python
  • 通过 BLE 和 Wi-Fi 交换优化基于 ID 的远程无人机通信的延迟
  • ubuntu 22.04 安装部署logstash 7.10.0详细教程
  • VSCODE + EIDE 下 STM32 编程使用部分外设无法通过编译:undefined reference to ‘xxx‘
  • 基于 Transformer RoBERTa的情感分类任务实践总结之五——剪枝
  • 山东大学项目实训-创新实训-法律文书专家系统-项目报告(八)
  • vue中的h渲染函数
  • AI医生24小时在线:你的健康新‘算法监护人
  • 《江西南昌棒垒球》一级运动员 vs 二级运动员·棒球1号位
  • 【C/C++】内核开发之进程调度大纲
  • 2.4k star 开源项目,Wingman AI + 知识图谱,如何帮你搭建‘私人大脑’?学术/项目必备,让笔记真正活起来!
  • Softhub软件下载站实战开发(三):平台管理模块实战
  • 二.TvSettings从Android.bp解析成build.gradle
  • 【Bug】--docker的wsl版本问题
  • Java项目中使用到的技术——《异步调用》
  • K8s集群平台
  • 快手可灵 Q1 营收1.5亿,AI商业化分析:C端订阅+B端API双轮驱动​
  • Appium + .NET 测试全流程