Orion Visor 是一款支持 SSH/SFTP/RDP/VNC 的轻量级自动化运维平台,集成资产管理、批量执行、计划任务、监控告警与文件操作,适用于 Linux 和 Windows 双环境,解决高频运维动作分散问题。

要实现服务器 SSH 与 RDP 接入控制的自动化巡检,核心是定期检查两类服务的启用状态、监听配置、认证策略及访问控制规则,并生成可读报告。脚本需适配 Linux(SSH)和 Windows(RDP)双环境,避免手动登录逐台核查。
检查 SSH 服务状态与关键配置
在 Linux 主机上,巡检应确认 OpenSSH 是否运行、是否仅监听必要地址、是否禁用危险选项。建议通过以下逻辑判断:
- 执行 systemctl is-active sshd 验证服务是否活跃(非 just “enabled”)
- 用 ss -tln | grep :22 检查是否仅绑定 127.0.0.1 或指定内网 IP,避免 0.0.0.0:22 公网暴露
- 解析 /etc/ssh/sshd_config,确保 PermitRootLogin no、PasswordAuthentication no、AllowUsers 或 AllowGroups 明确限制账号范围
- 若使用 SELinux 或防火墙,补充检查 sestatus 和 firewall-cmd --list-ports 是否放行合理端口
验证 Windows RDP 启用状态与网络级认证(NLA)
Windows 主机需区分“RDP 功能是否开启”和“是否安全启用”。仅靠远程桌面开关不够,必须确认底层策略生效:
- 用 PowerShell 命令 Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections 返回值为 0 表示允许连接
- 检查 NLA 是否强制:读取 HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 下 UserAuthentication 值是否为 1
- 确认防火墙放行:运行 Get-NetFirewallRule -DisplayGroup "Remote Desktop",确保对应规则为 Enabled 且 Profile 匹配当前网络类型
- 若部署了网络控制器(如 NPS 或 Azure AD Conditional Access),脚本不直接验证,但可在报告中标注“依赖外部策略”,提醒人工复核
统一输出结构化巡检结果
脚本最终应生成机器可解析、人可读的汇总报告,推荐 JSON + 简明文本双格式:
- 每台服务器输出含主机名、IP、OS 类型、SSH/RDP 检查项、状态(pass/warn/fail)、失败原因(如 “PasswordAuthentication yes”、“NLA disabled”)
- 汇总统计:总数量、高风险项(如公网 SSH、未启用 NLA)台数、需人工介入项列表
- 支持输出到本地文件、Syslog 或 HTTP Webhook(例如推送到企业微信/钉钉机器人)
- 避免静默失败:任何子命令报错(如权限不足读取注册表)应在报告中标记为 “check-skipped”,并记录 stderr
部署与执行建议
该脚本不是一次性工具,需纳入日常运维流程:
- Linux 端用普通用户+passwordless sudo 执行;Windows 端用具备远程管理权限的域账号,配合 WinRM 或 PowerShell Remoting
- 通过 Ansible / SaltStack / 自建 Agent 调度,避免在跳板机上集中拉取——减少单点风险
- 设置定时任务(如每天凌晨 3 点),但首次运行后建议人工抽检 3–5 台,比对脚本输出与实际配置是否一致
- 配置变更后自动触发一次巡检(如通过 GitOps webhook 或配置中心通知),形成闭环

















