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

二十二、【Linux系统防火墙管理】firewalld命令详解

firewalld命令详解

  • 本章学习目标
  • 内容简介
    • 防火墙核心功能
    • 防火墙工作流程
  • 操作演示
      • 启停防火墙服务
      • 区域管理
      • 开放http服务
      • 自定义端口开放
      • 临时开放端口
      • IP白名单
      • 端口转发
      • 拒绝ICMP响应(禁ping)
    • 故障排查流程

本章学习目标

了解学习Linux系统防火墙信息与firewalld命令使用

内容简介

防火墙核心功能

  1. 动态规则管理

    • 无需重启生效:规则修改后通过 --reload 重载即时生效,不中断现有连接
    • 双状态配置
      • 运行时规则:临时生效,重启后失效(不加 --permanent)。
      • 持久化规则:需 --permanent + --reload,重启后保留
  2. 区域隔离策略

    • 分层信任模型
      • public(默认):不信任公共网络,仅放行显式允许的服务。
      • trusted:完全信任指定 IP(如 --add-source=192.168.1.0/24)。
    • 接口绑定:将网卡分配到不同区域(如 --zone=home --change-interface=eth0),实现网络环境差异化策略
  3. 高级流量控制

    • 富规则 (Rich Rules)
      • 精准过滤:支持 IP/端口/协议组合(如仅允许某 IP 访问特定端口)。
      • 限速与审计limit value="2/s" 限制每秒连接数,log prefix="Blocked: " 记录拒绝事件 。
    • NAT 与端口转发
      • 依赖 --add-masquerade 启用 IP 伪装,实现端口转发或隐藏内网结构

防火墙工作流程

匹配
未匹配
首包
允许
拒绝
后续包
合法
非法
网络流量进入
基础包处理
解析帧头部/IP头
白名单/黑名单检查?
放行或阻断
会话表查询
状态检测
安全策略匹配
创建会话表项
丢弃并记录
基于会话表转发
应用层安全检测
内容安全检测
地址转换NAT
发送报文

操作演示

演示命令功能描述关键选项/参数
systemctl start firewalld启动防火墙服务start 立即运行
firewall-cmd --get-default-zone查看默认区域无参数
firewall-cmd --zone=public --add-service=http --permanent永久允许服务--add-service 服务名
firewall-cmd --zone=public --add-port=8080/tcp --permanent永久开放端口--add-port 端口/协议
firewall-cmd --list-all列出所有规则--list-all 完整配置
firewall-cmd --add-rich-rule='rule...' --permanent添加 IP 白名单--add-rich-rule 复杂规则
firewall-cmd --add-forward-port=port=80:...端口转发--add-forward-port 转发目标

启停防火墙服务

# 启动并设置开机自启
[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# systemctl enable firewalld
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.# 查看运行状态
[root@localhost ~]# firewall-cmd --state
running  # 防火墙已运行 

区域管理

# 查看默认区域
[root@localhost ~]# firewall-cmd --get-default-zone
public  # 默认区域为 public# 切换默认区域为 home
[root@localhost ~]# firewall-cmd --set-default-zone=home
success  # 生产环境慎用(home 区域规则较宽松)

开放http服务

# 永久允许 HTTP(80/TCP)
[root@localhost ~]# firewall-cmd --zone=public --add-service=http --permanent
success
[root@localhost ~]# firewall-cmd --reload  # 重载生效 

自定义端口开放

# 永久开放 TCP 端口 8080
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload# 查看当前规则
[root@localhost ~]# firewall-cmd --list-all
public (active)services: dhcpv6-client http ssh  # 已放行服务ports: 8080/tcp                   # 已开放端口

临时开放端口

# 临时开放 9999/TCP(重启失效)
[root@localhost ~]# firewall-cmd --add-port=9999/tcp
success  # 无需重载,立即生效 

IP白名单

# 仅允许 192.168.1.0/24 访问 SSH
[root@localhost ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
success
[root@localhost ~]# firewall-cmd --reload  # 阻断非白名单 IP 的 SSH 访问 

端口转发

# 将本机 80 转发至 192.168.0.100:8080
[root@localhost ~]# firewall-cmd --add-masquerade --permanent  # 开启 IP 伪装(NAT)
success
[root@localhost ~]# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.0.100 --permanent
success
[root@localhost ~]# firewall-cmd --reload  # 实现内网服务隐藏 

拒绝ICMP响应(禁ping)

# 禁止公网 Ping 探测
[root@localhost ~]# firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
success
[root@localhost ~]# firewall-cmd --reload  # 提升隐蔽性

故障排查流程

不通流量
检查接口安全域
启用Debug
分析策略匹配
补全规则
http://www.dtcms.com/a/294405.html

相关文章:

  • 使用yolov10模型检测视频中出现的行人,并保存为图片
  • 电子设计大赛【C语言核心知识点】讲解
  • HF86611_VC1/HF86611Q_VC1:多通道USB HiFi音频解码器固件技术解析
  • 动态路由协议基础
  • MIT6.824 Raft算法Lab2A实验
  • 基于阿里云平台的文章评价模型训练与应用全流程指南
  • CASAIM自动蓝光检测供应商三维测量系统近线检测汽车变速箱尺寸
  • Java SE:类与对象的认识
  • 【kubernetes】-3 pod基础和yaml文件
  • 记录一本设计模式的书
  • vue3与ue5通信-工具类
  • [C/C++内存安全]_[中级]_[安全处理字符串]
  • ctfshow pwn40
  • 保护板测试仪:守护电池安全的“幕后卫士”
  • 关于SPring基础和Vue的学习
  • Docker 容器中的 HEAD 请求缺失 header?从 Content-MD5 缺失聊起
  • 超声原始数据重构成B扫成像的MATLAB实现
  • 【AI News | 20250722】每日AI进展
  • now能减少mysql的压力吗
  • 【Android】用 ViewPager2 + Fragment + TabLayout 实现标签页切换
  • linux性能调整和故障排查
  • LeetCode热题100--24. 两两交换链表中的节点--中等
  • Linux文件——Ext2文件系统(3)_软硬链接
  • Ubuntu 1804 编译ffmpeg qsv MediaSDK libva 遇到的问题记录
  • #Linux内存管理# 详细介绍madvise函数的工作原理
  • Elasticsearch(ES)安装
  • 分布式电商系统:缓存策略、负载均衡与容灾方案
  • 解决 Electron 中 window.open 打开新窗口的各种“坑”
  • Python 程序设计讲义(6):Python 的基本用法——运算符与表达式
  • API 汇总:ONLYOFFICE 文档最近更新