讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 内网与公网安全边界划分

云墨吖_6423

云墨吖_6423

发布时间:2026-01-27 18:16:03

|

693人浏览过

|

来源于php中文网

原创

不能按IP段粗暴划分内网/公网边界,因同一IP段混跑多类服务,仅靠地址无法判断流量合法性;必须基于业务角色分区,结合nftables链级隔离、cgroup标记、TLS双向认证、SELinux等实现细粒度控制,并通过Git审计、实时监控确保策略闭环。

linux 内网与公网安全边界划分

为什么不能按IP段粗暴划分内网/公网边界

直接用 192.168.0.0/16 当“内网”、0.0.0.0/0 当“公网”,是企业防火墙配置中最常见的逻辑漏洞。真实业务中,同一IP段可能混跑Web前端、管理后台、数据库代理,甚至容器化服务;仅靠地址无法区分“该流量是否合法”。比如:DMZ区某台Nginx服务器若被攻陷,它用源IP伪装成应用区IP(如192.168.20.5)直连数据区,传统IP规则完全失效。

  • 分区必须基于业务角色,而非物理位置或子网——DMZ只放API网关,应用区只跑微服务,数据区只响应白名单IP+指定端口的mysql或redis连接
  • 默认策略必须是drop,不是accept;漏一条规则 = 隐式放行全部
  • 禁止跨区绕行:不允许DMZ主机通过SNAT把源IP改成应用区地址再访问数据区

nftables 实现分区间单向控制(非iptables兼容写法)

现代Linux发行版(如RHEL 9+/Ubuntu 22.04+)推荐用nftables替代iptables,语法更清晰、链级隔离更强。关键不是“加允许规则”,而是“建专用链+显式拒绝”。

  • 先创建链:nft add chain inet filter dmz_to_app { type filter hook forward priority 0 \; }
  • 只允许可信流量:nft add rule inet filter dmz_to_app ip saddr 192.168.10.0/24 ip daddr 192.168.20.0/24 tcp dport 8080 accept
  • 记录越权尝试:nft add rule inet filter dmz_to_app log prefix "BLOCKED_CROSS_ZONE" drop
  • 确保无旁路:检查nft list ruleset中没有jump或goto跳转到其他链绕过该策略

光靠IP+端口不够:如何识别“真实服务身份”

容器环境里,192.168.20.10这台宿主机上可能同时运行订单服务、风控服务、日志采集器,它们共用同一个IP和端口范围。此时必须结合进程上下文做控制。

Ainative Git Workflow
Ainative Git Workflow

Git 提交、PR 与分支规范,对 AI 归属零容忍。适用于创建提交、编写提交信息、创建 Pull Request。

下载
  • 用cgroup标记容器:nft add rule inet filter app_to_data meta cgroup /order tcp dport 3306 accept
  • 数据库连接启用TLS双向认证后,防火墙可配合conntrack识别已验证会话,只对ct state established且带有效证书DN字段的连接放行
  • SELinux限制进程网络能力:semanage port -a -t http_port_t -p tcp 8080,再配合allow httpd_t database_port_t:tcp_socket name_connect策略,让Web进程根本无法发起数据库连接

规则不是写完就上线:必须闭环审计

生产环境中,一条没走Git评审的nft add rule命令,可能让核心数据库暴露在公网扫描下。策略变更必须可追溯、可回滚、可验证。

  • 所有规则变更提交到Git仓库,提交信息强制包含:原因(如“开放支付回调端口”)、影响范围(app区10台Pod)、回滚命令(nft delete rule inet filter app_to_dmz handle 123)
  • 用nft monitor trace实时捕获匹配路径,验证规则是否真正在FORWARD链生效,而非被更早的raw/mangle链提前处理
  • 定期执行nft list ruleset | grep -E "(drop|reject)"确认无隐式放行,尤其检查OUTPUT链是否误开了accept导致内部横向渗透

真正难的不是写几条nft命令,而是让每条规则背后都有明确的业务归属、责任人和失效时间——否则再严密的分区设计,也会在一次临时调试中被绕过。

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2113

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1299

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

755

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2832

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

4728

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1079

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

4991

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

4442

2023.08.14

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

100

2026.09.30

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 181人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 287人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn