Linux 内网与公网安全边界划分
发布时间 - 2026-01-27 00:00:00 点击率:次不能按IP段粗暴划分内网/公网边界,因同一IP段混跑多类服务,仅靠地址无法判断流量合法性;必须基于业务角色分区,结合nftables链级隔离、cgroup标记、TLS双向认证、SELinux等实现细粒度控制,并通过Git审计、实时监控确保策略闭环。
为什么不能按IP段粗暴划分内网/公网边界
直接用 192.168.0.0/16 当“内网”、0.0.0.0/0 当“公网”,是企业防火墙配置中最常见的逻辑漏洞。真实业务中,同一IP段可能混跑Web前端、管理后台、数据库代理,甚至容器化服

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和端口范围。此时必须结合进程上下文做控制。
- 用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命令,而是让每条规则背后都有明确的业务归属、责任人和失效时间——否则再严密的分区设计,也会在一次临时调试中被绕过。
# mysql
# linux
# redis
# 前端
# git
# go
# nginx
# 防火墙
# app
# 端口
# ubuntu
# ai
# 防火墙配置
# Filter
# goto
# delete
# 数据库
# 闭环
# 内网
# 而非
# 子网
# 仅靠
# 都有
# 也会
# 隐式
# 开了
# 能让
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
如何在万网自助建站平台快速创建网站?
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Python高阶函数应用_函数作为参数说明【指导】
如何为不同团队 ID 动态生成多个非值班状态按钮
简单实现Android文件上传
如何在阿里云香港服务器快速搭建网站?
微信公众帐号开发教程之图文消息全攻略
Laravel如何生成API文档?(Swagger/OpenAPI教程)
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
如何安全更换建站之星模板并保留数据?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
浅析上传头像示例及其注意事项
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
如何在建站宝盒中设置产品搜索功能?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
制作公司内部网站有哪些,内网如何建网站?
图册素材网站设计制作软件,图册的导出方式有几种?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Linux安全能力提升路径_长期防护思维说明【指导】
Python文件操作最佳实践_稳定性说明【指导】
如何在云主机上快速搭建网站?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
js实现获取鼠标当前的位置
什么是javascript作用域_全局和局部作用域有什么区别?
使用C语言编写圣诞表白程序
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
如何在VPS电脑上快速搭建网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
深圳网站制作培训,深圳哪些招聘网站比较好?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
音响网站制作视频教程,隆霸音响官方网站?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel如何配置和使用缓存?(Redis代码示例)
java中使用zxing批量生成二维码立牌
网站图片在线制作软件,怎么在图片上做链接?
利用 Google AI 进行 YouTube 视频 SEO 描述优化

