SSH和RDP加固需围绕“谁可以连、从哪连、怎么连、连了能做什么”四维度设防:禁用密码改密钥认证、改端口+IP白名单、启用fail2ban/NLA、用堡垒机统一纳管并最小权限分配,辅以日志监控与定期暴露面扫描。

SSH 和 RDP 是服务器远程管理的两个核心入口,但也是攻击者最常瞄准的突破口。加固不是堆砌配置,而是围绕“谁可以连、从哪连、怎么连、连了能做什么”这四个关键问题,层层设防。下面直接讲实操要点,每一步都对应真实风险。
SSH 接入控制加固:堵住暴力破解和未授权访问
Linux 服务器约 70% 的入侵始于 SSH 弱口令或配置疏漏。重点不在“能不能连”,而在“连得是否可控、可审计、不可绕过”。
-
禁用密码登录,强制密钥认证:编辑
/etc/ssh/sshd_config,确保以下三行生效:PasswordAuthentication noPubkeyAuthentication yesPermitRootLogin prohibit-password
修改后必须执行sudo systemctl restart sshd,并提前验证密钥登录可用,避免锁死。 -
改默认端口 + 限制来源 IP:将
Port 22改为高位端口(如Port 22222),再配合防火墙只放行办公网或跳板机 IP 段。云平台用户优先用安全组实现,比系统级防火墙更前置。 -
启用登录失败锁定与连接限速:安装
fail2ban并启用sshd监控规则,设置 5 分钟内失败 3 次即封 IP 1 小时;也可在sshd_config中加MaxAuthTries 3和LoginGraceTime 60缩短试探窗口。
RDP 接入控制加固:防止图形化入口被爆破利用
Windows 服务器的 RDP 默认暴露在 3389 端口,Shodan 显示全球日均遭数亿次扫描。图形协议不像 SSH 那样天然支持密钥,所以更依赖组合策略。
-
必须启用网络级身份验证(NLA):这是 RDP 最有效的第一道防线。它在建立完整会话前完成认证,能过滤掉大量自动化扫描流量。PowerShell 命令一键开启:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 1 -
修改默认端口 + 严格白名单:通过注册表修改
PortNumber值(如改为33900),重启TermService生效;同时在 Windows 防火墙或云安全组中,仅允许可信出口 IP 访问该新端口,禁止0.0.0.0/0。 -
禁用 Administrator 账户远程登录,启用 MFA:创建专用远程管理账户,加入
Remote Desktop Users组;使用 Microsoft Authenticator 或硬件令牌为该账户开启多因素认证——这是目前对抗凭证泄露最有效的手段之一。
统一入口与权限收敛:用堡垒机替代直连
无论 SSH 还是 RDP,长期“点对点直连”都会导致权限分散、操作不可追溯、账号复用泛滥。真正可持续的加固,是把所有远程访问收口到一个可控节点。
- 部署 Jumpserver 或类似开源堡垒机:让所有管理员先登录堡垒机,再由堡垒机代理连接目标服务器。这样可做到:账号与资产解耦、命令级审计、会话录像、临时授权、操作审批留痕。
- Windows 主机双协议纳管:在 Jumpserver 上配置 Windows 资产时,同时启用 SSH(用于 Ansible 自动化)和 RDP(用于 GUI 故障排查)。一台主机两个协议,一套权限体系,运维效率和安全性同步提升。
-
最小权限分配:堡垒机上不给“全量资产+全部命令”权限。例如,DBA 只能连数据库服务器并执行
mysql相关命令;前端工程师只能连 Web 服务器并操作/var/www目录。权限按角色切分,而非按人头发放。
持续验证与行为监控:让加固不流于静态配置
配置写完不是终点,攻击者会不断试探新路径。真正的加固闭环,必须包含主动感知与快速响应能力。
-
日志集中采集与告警:将 Linux 的
/var/log/auth.log和 Windows 的安全事件日志(ID 4624/4625)统一接入 ELK 或 SIEM 平台,设置规则:同一 IP 5 分钟内失败登录超 10 次、非工作时间出现 root 登录、RDP 来源 IP 不在白名单等,立即短信/邮件告警。 -
定期检查暴露面:每月用
nmap -sS -p 22,22222,3389,33900 your-server-ip扫描自身公网 IP,确认只有预期端口开放;用 Shodan 搜索自己的 IP,看是否被公开索引——如果能搜到,说明某处安全组或防火墙漏配了。 -
模拟攻击验证效果:在测试环境用
hydra -l admin -P wordlist.txt ssh://ip:22222尝试爆破,确认返回失败且 IP 被 fail2ban 封禁;用普通用户尝试 RDP 连接非白名单 IP,确认连接被拒绝而非超时——这些简单验证,能快速暴露配置盲区。

















