-
Notifications
You must be signed in to change notification settings - Fork 0
Description
下面我站在“平台方 / SRE 视角”,帮你系统性地把 21 / 22 / 23 出口端口的安全隐患、是否应允许、以及在你们平台已有 SFTP 用户场景下的推荐方案一次讲清楚。
内容是可直接落地到平台安全策略 / egress policy / 审计规则里的那种。
⸻
平台出口端口 21 / 22 / 23 的安全评估与治理建议
一、问题分析
你关心的本质问题其实是三点:
1. 这些端口本身是否存在“天然不安全”的协议问题
2. 作为平台,是否应该在默认安全规则中允许它们作为出口流量
3. 在“确实有用户要用 SFTP”的前提下,平台该如何“既支持业务,又守住安全边界”
⸻
二、端口与协议安全性逐一分析
1️⃣ TCP 23 —— Telnet
协议特性
• 明文传输(账号、密码、命令全是明文)
• 无加密、无完整性校验
• 极易被嗅探、中间人攻击
平台级安全隐患
风险 说明
凭据泄露 任何网络节点都可抓包获取用户名密码
横向移动 一旦被利用,极易成为内网跳板
合规风险 几乎所有安全规范(ISO、SOC2、PCI)明确禁止
平台结论
❌ 必须禁止(默认 + 强制)
平台不应在任何场景允许 TCP/23 出口
即使是 POC / Sandbox 也不例外
⸻
2️⃣ TCP 21 —— FTP(控制端口)
协议特性
• 控制通道明文
• 数据通道 动态端口(PASV/PORT)
• NAT / 防火墙极难控制
平台级安全隐患
风险 说明
明文凭据 用户名/密码直接暴露
防火墙穿透 被动模式需要大范围端口放行
数据泄露 传输内容无加密
安全设备绕过 常被用作数据外泄通道
平台结论
❌ 默认禁止,不推荐任何生产使用
“FTP over TLS(FTPS)”并不等于安全,因为:
• 仍然有复杂的端口协商
• 与 Cloud NAT / egress firewall 极不友好
• 运维和审计成本极高
⸻
3️⃣ TCP 22 —— SSH / SFTP
协议特性
• 强加密(对称 + 非对称)
• 支持完整性校验
• 可做强身份认证(Key-based)
平台级风险点(不是协议问题)
风险 说明
外连跳板 SSH 是天然的“通道协议”
数据外泄 可 SCP / SFTP 任意文件
持久连接 易被用于反向隧道
凭据管理 私钥泄露影响极大
平台结论
⸻
三、平台安全规则是否应允许?(明确结论)
默认出口策略(强烈推荐)
端口 是否允许 平台态度
23 / Telnet ❌ 禁止 安全红线
21 / FTP ❌ 禁止 明文 + 动态端口
22 / SSH
⸻
四、在“平台有用户使用 SFTP”的前提下,推荐方案
这是你问题里最关键的一段。
⸻
✅ 推荐方案一(平台级首选):受控 SFTP 出口
1️⃣ 放行粒度:端口 ≠ 等于能力
不是“开 22 端口”,而是“允许访问特定 SFTP 目标”
平台控制维度
• ✅ 仅 TCP/22
• ✅ 仅特定目标 IP / 域名
• ❌ 禁止 0.0.0.0/0
• ❌ 禁止内网 / RFC1918
⸻
2️⃣ 强制使用 Key-based SFTP
禁止 password-based SSH
只允许:
- RSA / ED25519 Key
- 可轮换
- 可吊销
⸻
3️⃣ 协议级约束(平台安全基线)
即使是 TCP/22,也建议在平台规范中明确:
项 要求
协议 仅 SFTP(禁止 SCP / Shell)
用户 限定 sftp-only user
权限 Chroot / 限目录
功能 禁止 port-forward / tunneling
⸻
4️⃣ 网络层额外约束(非常重要)
GCP / K8S 场景建议
• Cloud NAT + Egress Firewall
• NetworkPolicy(namespace / pod 级)
• 或通过 集中式 Egress Proxy / Bastion
graph TD
A["User Pod"] --> B["Egress Control Layer"]
B --> C["Approved SFTP Server"]
⸻
✅ 推荐方案二(更平台化):SFTP Gateway / 中转节点
如果你们是多租户平台,这是更优雅的方案
思路
• 平台只允许 Pod → 内部 SFTP Gateway
• Gateway 再统一访问外部 SFTP
• 集中审计 / 控制 / 白名单
优点
• 不暴露出口 22 给所有 workload
• 统一日志与审计
• 可强制 Key / Cipher Policy
⸻
❌ 不推荐的方案(明确)
• ❌ 开放 FTP / FTPS
• ❌ 允许 SSH Shell
• ❌ 22 端口直通公网(无 IP 限制)
• ❌ 用户自定义出口策略
⸻
五、平台安全规则建议(可写进规范)
平台出口端口安全基线(示例)
端口 策略
21 永久禁止
23 永久禁止
22 需审批 + IP 白名单 + SFTP-only
⸻
六、总结一句话(给管理层 / 安全评审用)
Telnet(23)和 FTP(21)在现代平台中应被视为不安全协议并默认禁止;
SSH(22)本身是安全协议,但必须以 SFTP-only、强认证、目标受限、可审计的方式受控放行。
如果你愿意,下一步我可以直接帮你输出:
• 📄 《平台 Egress Port 安全白名单规范 v1.0》
• 🔐 SFTP 用户接入平台的标准接入流程
• 🧩 GCP / GKE 下可直接用的 egress + NetworkPolicy 示例
你挑一个,我们直接落地。