核心思路是按接口划分区域实现网络隔离:外网接口(如ens33)设为public区,内网接口(如ens34)设为internal区;internal区默认拒绝public区新连接,仅允许必要服务与已建立连接返回流量,并通过移除非必要服务、禁止public区开放内网端口、可选富规则限制源ip等方式强化边界控制。

核心思路是:把外网接口放在限制严格的区域(如 public 或 external),内网接口放在信任度高的区域(如 internal 或 trusted),再通过区域默认策略和显式规则控制跨网段访问。
明确内外网接口归属区域
firewalld 的区域策略天然支持“按接口隔离”。关键不是禁止某个 IP 段,而是让外网流量进不来、内网流量出得去且受控。
- 查当前激活的区域和绑定接口:
firewall-cmd --get-active-zones - 将外网网卡(如 ens33)永久设为 public 区域:
firewall-cmd --permanent --zone=public --add-interface=ens33 - 将内网网卡(如 ens34)永久设为 internal 区域:
firewall-cmd --permanent --zone=internal --add-interface=ens34 - 重载生效:
firewall-cmd --reload
利用 internal 区域默认策略保护内网
internal 区域默认允许 SSH、DHCPv6-client、Samba、mDNS 等常用服务,并默认允许已建立连接的返回流量。它不主动放行来自 public 区域的任意新连接 —— 这正是你想要的隔离效果。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 确认 internal 区域的默认行为:
firewall-cmd --zone=internal --list-all - 如需进一步收紧,可移除非必要服务:
firewall-cmd --permanent --zone=internal --remove-service=samba - 确保 internal 区域不开放通用端口(如 8080、3306),除非业务明确需要
阻止外网主动访问内网服务
即使区域划分正确,仍需防止 public 区域的请求穿透到 internal 接口上运行的服务。最稳妥方式是:不在 public 区域开放任何面向内网服务的端口或服务。
- 检查 public 区域是否误开了内部服务:
firewall-cmd --zone=public --list-services和--list-ports - 如有,立即移除:
firewall-cmd --permanent --zone=public --remove-service=http - 特别注意:不要用
--add-rich-rule把外网 IP 主动加进 internal 区域——这会绕过区域隔离逻辑
可选:添加富规则强化边界控制
若需更精细管控(例如只允许某台管理机访问内网 SSH),可在 internal 区域加源 IP 限制:
- 仅允许 192.168.10.5 访问 internal 区域的 SSH:
firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.10.5" service name="ssh" accept' - 拒绝整个外网段(如 203.0.113.0/24)访问 internal 接口:
firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" reject' - 别忘了 reload:
firewall-cmd --reload










