Skip to content

ssh #189

@aibangjuxin

Description

@aibangjuxin

下面我站在“平台方 / 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”的前提下,推荐方案

这是你问题里最关键的一段。

✅ 推荐方案一(平台级首选):受控 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 示例

你挑一个,我们直接落地。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions