1.
跳板机概述与架构选型
1) 跳板机定义:在家庭实验中,
跳板机通常为一台可被外网访问的主机(Windows 10)用于中转SSH/RDP连接。
2) 架构要点:内网主机 ← 跳板机 ← VPS/反向代理 ← 客户端(可加 CDN 防护)。
3) 关联技术:域名解析(A/CAA)、CDN(如 Cloudflare)、DDoS 防御、端口转发与反向隧道。
4) 风险面:暴露服务会增加被扫描和爆破的风险,需要端口限制、IP 白名单与证书/密钥认证。
5) 性能与成本:家庭带宽上行通常为10–50 Mbps,选择小型 VPS(1 核/1G/20G)做中继可满足大多数实验需求。
2.
环境准备与 OpenSSH 安装(Windows 10)
1) 安装命令:PowerShell(管理员)执行 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0。
2) 启动与自启:Set-Service -Name sshd -StartupType 'Automatic';Start-Service sshd。
3) 用户与路径:示例用户 admin,本地 IP 192.168.1.10,默认密钥目录 C:\Users\admin\.ssh。
4) 密钥生成:ssh-keygen -t ed25519 -f C:\Users\admin\.ssh\id_ed25519 -C "admin@home"(建议 4096 RSA 或 ed25519)。
5) 端口选择:推荐改为 22022(避免被动扫描),sshd_config 里设置 Port 22022 并重启服务。
3.
Windows 防火墙与精确规则配置
1) 允许端口(仅限特定源):New-NetFirewallRule -DisplayName "Allow SSH 22022 from VPS" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 22022 -RemoteAddress 198.51.100.22。
2) 局域网限制:只允许私网段内管理端口(例如 RDP 3389 仅允许 192.168.1.0/24)。
3) 阻断全部并分步放行:先默认阻断,再逐个添加规则以便审计。
4) 连接追踪:使用 netsh advfirewall monitor 或 Windows 事件查看器记录入站拒绝事件,便于调整。
5) 自动规则示例:使用 Task Scheduler 每日执行脚本检测并更新白名单(例如基于动态 DNS 的公网 IP 变化)。
4.
证书与密钥的生成与使用
1) SSH 密钥:使用 ed25519 或 4096-bit RSA;示例:ssh-keygen -t rsa -b 4096 -f id_rsa_jump。
2) TLS 证书(用于反向代理或 stunnel):openssl req -newkey rsa:4096 -nodes -keyout server.key -x509 -days 365 -out server.crt -subj "/CN=jump.example.com"。
3) 将公钥追加到 C:\Users\admin\.ssh\authorized_keys,权限设置为 600(Windows 上确认 ACL)。
4) 使用 Windows CA:若有企业 CA,可用 certreq + INF 文件申请并安装到个人证书存储,供 RDP 网关使用。
5) 禁用密码认证:在 sshd_config 中设置 PasswordAuthentication no;重启 sshd 服务,强制使用密钥/证书。
5.
真实案例:家庭 Win10 跳板 + VPS 反向代理配置
1) 场景描述:家庭公网 IP 203.0.113.45 不稳定,使用 VPS(198.51.100.22,域名 jump.example.com)做反向代理并接入 Cloudflare 以减轻 DDoS。
2) 本地跳板配置:Windows 10(192.168.1.10)sshd 监听 22022,公钥认证。
3) 反向隧道命令(在 Win10 上以服务启动):ssh -i C:\Users\admin\.ssh\id_rsa_jump -N -R 22222:localhost:22 jumpuser@198.51.100.22 -p 22。
4) VPS 上 nginx + TLS:为 jump.example.com 配置 Let's Encrypt 证书,开启访问控制与 rate_limit;Cloudflare 在前端提供 CDN 与基础 DDoS 缓解。
5) 日志与防爆破:VPS 使用 fail2ban(基于 /var/log/auth.log)对 SSH 失败尝试进行封禁,显著降低暴力破解风险。
6.
配置摘要表(端口/IP/说明)
| 项目 |
本地跳板机 |
VPS / 反向代理 |
说明 |
| 公网 IP |
203.0.113.45 (路由器 WAN) |
198.51.100.22 |
路由器做端口转发 / VPS 用域名跳转 |
| SSH 端口 |
22022 (Windows sshd) |
22222 (VPS reverse) |
VPS 映射到本地 22022 |
| 证书 |
自签或使用 VPS CA |
Let's Encrypt(jump.example.com) |
TLS 用于 nginx/stunnel |
| 防护 |
Windows Defender + 防火墙规则 |
Cloudflare + fail2ban |
结合 CDN 缓解 DDoS |
7.
运维建议与安全加固清单
1) 定期更新:Windows 与 OpenSSH 每月打补丁,VPS 安全更新每日检查。
2) 备份密钥与证书:把私钥存离线或硬件密钥(YubiKey),证书私钥限管理员访问。
3) 监控与告警:设置监控(Zabbix/Prometheus)和登录告警(Auth log 到 Slack/Email)。
4) 多重验证:启用两步验证(如基于 TOTP 的 SSH 2FA)或使用硬件安全模块。
5) 灾难恢复:记录路由器端口转发、VPS SSH keys 与域名 DNS 管理账号,定期演练恢复流程。
来源:家庭实验场景win10搭建跳板机防火墙与证书配置详尽说明