CentOS 7怎么修改系统防火墙白名单

酷辰大大_9097

酷辰大大_9097

2026-07-16

225人浏览

原创

centos 7 必须用 firewall-cmd rich-rule 实现 ip 白名单,命令为 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.5" port protocol="tcp" port="3306" accept',需 --permanent 持久化并 --reload 生效。

centos 7怎么修改系统防火墙白名单

CentOS 7 默认用 firewalld,不是 iptables;直接改配置文件或混用两种工具极易导致规则冲突、重启后丢失,甚至 SSH 断连。白名单必须用 firewall-cmd 的 rich rule 机制实现,不能靠“开放端口 + 信任网段”这种粗放方式。

firewall-cmd 添加单 IP 白名单(指定端口)

这是最常用也最安全的写法:只允许某个 IP 访问特定端口,其他所有流量(包括该 IP 的其他端口)默认拒绝。

  • firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.5" port protocol="tcp" port="3306" accept' —— 注意引号嵌套和空格,单引号外不能有双引号混用
  • 必须加 --permanent,否则重启 firewalld 后规则消失
  • 端口协议写错(比如写成 udp 却想开 TCP 服务)会导致规则不生效,firewall-cmd --list-rich-rules 能看到但实际不通
  • 执行后务必 firewall-cmd --reload,仅 systemctl restart firewalld 不会加载新规则

批量添加 CIDR 网段白名单(含常见坑)

用 /24 或 /16 网段比逐条加 IP 效率高,但 CIDR 表达必须合法,且不能覆盖本地回环或内网管理网段。

CentOS Linux 7.9.2009
CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离

下载
  • 正确示例:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.20.0/24" port protocol="tcp" port="8080" accept'
  • 错误示例:100.63.248.661/32 —— 661 是非法 IPv4 地址,命令会静默失败,--list-rich-rules 里也看不到
  • 若网段含广播地址(如 192.168.1.255),firewalld 不会报错,但部分交换机或云平台可能丢弃该包,建议避开
  • 不要对同一端口重复添加重叠网段(如 10.0.1.0/24 和 10.0.1.100/32),firewalld 不去重,规则冗余但不影响功能

删除白名单规则时的硬性限制

firewalld 不支持模糊匹配删除,必须完整复现当初添加时的字符串,一个空格、引号类型、大小写不对就删不掉。

  • 先查清原始规则:firewall-cmd --list-rich-rules,复制整行(含引号和空格)
  • 删的时候把 add-rich-rule 换成 remove-rich-rule,其余一字不改:firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.10.5" port protocol="tcp" port="3306" accept'
  • 误删了默认 zone 规则(如 ssh、http)?别慌,firewall-cmd --permanent --add-service=ssh 可快速补回,但记得 reload
  • 删完不 reload,规则仍生效;reload 后若发现连不上,立刻用 console 登录,检查 firewall-cmd --list-all 输出是否意外清空了 INPUT 链基础规则

绕过 firewalld 直接改 public.xml 的风险点

有人图省事直接编辑 /etc/firewalld/zones/public.xml,这在 firewalld 运行中修改极危险。

  • firewalld 加载配置是原子性的,手动改 XML 后不 reload,新规则永不生效;reload 时若 XML 格式错误(如标签未闭合、属性值缺引号),整个 firewalld 会 crash,systemctl status firewalld 显示 failed
  • XML 中的 <rule></rule> 必须严格按 schema 写,例如 source address 必须是 <source address="x.x.x.x"></source>,写成 <source address="x.x.x.x"></source> 就解析失败
  • 如果 zone 文件被改坏又没备份,firewall-cmd --reload 失败后只能删掉 public.xml,再 firewall-cmd --set-default-zone=public 让它重建默认文件
  • 云服务器(如阿里云、腾讯云)的底层安全组已做过一层过滤,firewalld 白名单只是第二道防线,别把它当唯一防护手段

真正容易被忽略的是:firewalld 的 rich rule 仅作用于 INPUT 链,对 OUTPUT 和 FORWARD 链无影响;如果你开了 Docker 或 K8s,容器间通信可能绕过这些规则——白名单只管“谁可以连进来”,不管“连进来之后能访问什么”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

centos 防火墙

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

2023.06.16

3389

10

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.10.27

6521

23

CentOS安装部署教程精选
CentOS安装部署教程精选

CentOS安装部署专题提供 CentOS Stream 9/10 服务器安装与初始化配置教程,涵盖 ISO 镜像下载、系统分区、最小化安装、网络配置、SSH远程连接、防火墙、软件源、时区同步、用户权限和常见安装故障排查,适合新手搭建 Linux 服务器环境及运维人员快速部署 CentOS 系统。

2026.05.29

194

10

CentOS运维命令大全
CentOS运维命令大全

CentOS运维命令专题整理 CentOS 服务器日常管理常用命令,覆盖系统信息查看、用户与权限管理、服务启动停止、进程监控、端口查看、日志分析、磁盘空间清理、软件包安装、定时任务配置和故障排查方法,帮助运维人员高效完成 CentOS 系统维护工作。

2026.05.29

188

10

CentOS建站环境搭建实战教程
CentOS建站环境搭建实战教程

CentOS建站环境专题围绕服务器网站部署场景,系统讲解在 CentOS 上安装和配置 Nginx、Apache、PHP、MySQL、MariaDB、PHP-FPM、SSL证书、网站目录权限、虚拟主机、反向代理和 WordPress 等常见建站环境,适合个人站长和运维人员搭建稳定 Web 服务。

2026.05.29

223

10

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

60

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

20

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

20

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

20

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习

Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 4.2万人学习