SSH与RDP接入控制核心逻辑一致:连接前按源IP拦截,但实现机制不同——SSH通过sshd_config的AllowUsers或hosts.allow配置白名单,RDP则依赖Windows组策略IP安全策略或防火墙入站规则限制3389端口访问。

服务器 SSH 与 RDP 接入控制的核心逻辑一致:**在连接建立前,按源 IP 做访问拦截**。但两者实现机制不同——SSH 属于 Linux/Unix 系统原生服务,RDP 是 Windows 远程桌面协议,配置路径、工具和生效层级有本质区别。下面分场景说明关键配置方式,聚焦「限制指定 IP 登录」这一目标,不堆砌冗余步骤。
SSH:优先用 AllowUsers + CIDR 白名单(推荐)
这是最可靠、认证前拦截、无需额外依赖的方式,适用于 OpenSSH 6.7+(主流发行版均满足):
- 编辑 /etc/ssh/sshd_config,末尾添加白名单规则,例如只允许运维人员从内网固定段登录:
AllowUsers admin@192.168.10.0/24 dev@10.20.30.50 - 支持通配用户名(@)实现纯 IP 限制:
AllowUsers *@192.168.10.0/24 —— 表示该网段任意用户都可登录,但其他 IP 一律拒绝 - 配置后务必先校验语法:
sshd -t(无输出即通过) - 再重启服务生效:
systemctl restart sshd(CentOS/RHEL 7+/Ubuntu 16.04+)或 service ssh restart(旧版 Debian)
注意:AllowUsers 是白名单逻辑,默认拒绝所有未明列项;DenyUsers 是黑名单,仅作临时封禁,不建议作为主控策略。
SSH:辅助用 hosts.allow / hosts.deny(兼容性强)
适用于老旧系统或需快速生效的场景,基于 TCP Wrappers,规则即时生效、无需重启 SSH:
- 编辑 /etc/hosts.allow,写入允许项(支持逗号分隔多个 IP 或 CIDR):
sshd: 192.168.10.50, 203.0.113.0/24 - 编辑 /etc/hosts.deny,统一拒绝其余所有:
sshd: ALL - 确认 OpenSSH 编译时启用了 libwrap 支持(多数现代系统默认开启):
ldd $(which sshd) | grep libwrap(有输出即支持)
原理:hosts.allow 优先级高于 hosts.deny,匹配到 allow 规则即放行,不再继续判断 deny。
RDP:用 Windows 组策略 IP 安全策略(图形化+稳定)
Windows Server 默认不启用 IP 级 RDP 访问控制,需手动配置组策略,适合企业环境集中管理:
- 运行 gpedit.msc → 计算机配置 → Windows 设置 → 安全设置 → IP 安全策略
- 新建策略(如命名“RDP-IP-Restrict”),取消勾选“激活默认响应规则”
- 添加两条规则(顺序重要):
• 第一条:源地址为指定 IP(如 203.0.113.45),目标为“我的 IP 地址”,协议 TCP 端口 3389,操作设为“允许”
• 第二条:源地址为“任何 IP 地址”,目标同上,协议端口同上,操作设为“阻止” - 右键策略 → “指派”,重启或执行 gpupdate /force 生效
提示:若使用非标准 RDP 端口(如改成了 3390),规则中必须对应修改端口号。
RDP:备选用防火墙入站规则(轻量、直观)
适用于 Windows Server 2012 R2 及以后版本,无需组策略权限,直接通过高级安全防火墙配置:
- 打开“高级安全 Windows 防火墙” → 入站规则 → 新建规则 → 选择“端口” → TCP,特定本地端口 3389
- 操作选“允许连接”,配置配置文件(域/专用/公用,按需勾选)
- 点击“作用域”,在“远程 IP 地址”中选“下列 IP 地址”,添加允许的单 IP 或地址范围(如 203.0.113.45-203.0.113.49 或 203.0.113.0/24)
- 完成并启用规则;原生“远程桌面”默认规则可禁用,避免冲突
优势:规则可视化强、支持日志记录、与网络层联动紧密;缺点是无法像组策略那样跨域下发。











