NAVY82·OPS 运维故障排查案例集
blog.navy82.icu / index / 04 ↑ 返回索引
#04 2026-08-17 漏洞扫描 / 安全加固 / TLS / SSH

主机漏洞扫描 处理分析报告

无入侵无高危无弱口令中危 1 · 低危 7

对一台业务主机执行全量漏洞扫描。结果:无可入侵漏洞、无高危漏洞、无弱口令,安全基线良好;共发现 1 个中危7 个低危问题,逐项给出加固建议与整改优先级。本报告为处置与复盘记录,内容已脱敏。

CHART 01 // 漏洞风险分布

scan findings by severity
可入侵 0
高危 0
中危 1
低危 7

8 项发现 · 柱长为占比(以总发现数 8 为满格)· 中危项为唯一需优先处置对象。

CHART 02 // 开放端口 · 按服务分类

listening ports by service
HTTP/HTTPS · nginx 3
SSH · OpenSSH 1
22/tcpsshOpenSSH标准管理端口
80/tcphttpnginxHTTP 服务
443/tcphttpsnginx中危:TLS 支持 RSA 密钥交换
5000/tcphttpnginxHTTP 监听

扫描目标:[内网主机IP](Linux)· 扫描时间:2026-08-17 10:24:46 ~ 10:26:06 扫描类型:可入侵漏扫 / 版本漏扫 / 常规端口 脱敏说明:主机 IP 等内网信息、扫描服务商信息均已隐去。

一、结论摘要

本次对目标主机进行漏洞扫描,整体风险可控

指标 结果
存活主机 1
可入侵漏洞 0
高风险漏洞 0
中风险漏洞 1
低风险漏洞 7
弱口令 0
  • 未发现可入侵 / 高风险漏洞,未发现弱口令,说明主机安全基线良好
  • 唯一中危项为 TLS 配置支持 RSA 密钥交换(443 端口),属于传输层加密配置问题;
  • 其余 7 项均为信息泄露类低危(HTTP/SSH banner、SSL 证书信息),不构成直接入侵路径;
  • 总体判断:无需紧急处置,建议按优先级完成常规加固

二、资产与暴露面

扫描共识别到 4 个开放端口:

端口 服务 指纹 用途推测
80 http nginx Web 服务(HTTP)
443 https nginx Web 服务(HTTPS,主要业务入口)
22 ssh OpenSSH 远程管理
5000 http nginx Web 服务(疑似应用/容器映射端口)

暴露面收敛建议:5000 端口若无必须对外提供的业务,建议通过安全组/防火墙收紧公网访问;22 端口仅对授权管理 IP 开放。

三、漏洞风险分布

类别 中风险 低风险 合计
其他(Web 服务/SSH) 1 5 6
SSL/TLS 0 2 2
合计 1 7 8

四、中风险漏洞分析及处置(1 项)

4.1 目标主机支持 RSA 密钥交换【原理扫描】 · 影响端口 443

风险说明

TLS 握手阶段支持静态 RSA 密钥交换套件(TLS_RSA_*)。该类套件不具备前向保密(PFS):若服务器私钥泄露或留存,攻击者可离线解密历史抓包的加密会话;同时允许 RSA/3DES/CBC 类偏弱密码套件会降低整体加密强度。

先澄清一个常见误区:证书是 RSA 加密 ≠ 支持 RSA 密钥交换。证书公钥算法(RSA/ECC)与 TLS 握手的密钥交换方式是两回事。本主机证书为 RSA2048,整改无需更换证书,只需控制握手阶段允许的套件即可。

扫描器如何检测

TLS 1.3 协议层已彻底移除 RSA 静态密钥交换模式,因此扫描告警依靠的是 TLS 1.2 握手主动探测纯 RSA 套件(如 AES256-SHAAES128-SHA 这类不带 ECDHE、走静态 RSA 密钥交换的套件)。用 OpenSSL 可 1:1 模拟扫描器:

openssl s_client -connect [内网主机IP]:443 -tls1_2 -cipher AES256-SHA
  • 握手直接失败、立刻断开(SSL alert handshake failure → 纯 RSA 套件已被拒绝,修复完成;
  • 正常输出证书、建立完整 SSL 会话 → 仍存在漏洞,继续整改。

注意:不要用 -cipher RSA 测试,它会强制走到 TLS 1.3;TLS 1.3 本就不存在 RSA 静态密钥交换,测不出真实结果。

加固步骤

  1. 在站点 SSL 配置(如 /etc/nginx/conf.d/*_ssl.conf)中,只保留带前向保密的 ECDHE 套件:
ssl_protocols TLSv1.2 TLSv1.3;
# TLS1.2:只允许带 ECDHE 前向保密套件,彻底剔除纯 RSA 套件
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers on;
# 高版本 nginx 才支持,低版本(< 1.19.1)删除这一行
ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
  1. 确认配置真正生效(只改文件未重载是常见失效原因):
nginx -T | grep ssl_ciphers
nginx -s reload

输出的套件列表应全部以 ECDHE 开头,不存在 AES256-SHA / AES128-SHA 这类纯 RSA 套件

  1. 复扫验证(再次模拟扫描器):
openssl s_client -connect [内网主机IP]:443 -tls1_2 -cipher AES256-SHA
# 预期输出:40E0:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure ... SSL alert number 40

若执行后仍能握手,按以下两种可能排查:

  • 存在另一个监听 443 的 server 块(如默认虚拟主机)没有应用这套 ssl_ciphers,可用 nginx -T | grep -E "listen.*443|ssl_ciphers" 全量核对;
  • 扫描器以空 SNI 访问,命中 nginx 默认 server,而默认 server 未加固。根治做法:配置默认 SSL 虚拟主机兜底,让空 SNI 请求直接断连:
server {
    listen 443 ssl default_server;
    server_name _;
    ssl_certificate     /etc/letsencrypt/live/[站点域名]/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/[站点域名]/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
    ssl_prefer_server_ciphers on;
    return 444;
}

五、低风险漏洞分析及处置(7 项)

5.1 可通过 HTTP 获取远端 WWW 服务信息(影响:80 / 443 / 5000,共 3 处)

  • 风险说明:HTTP 响应头 Server 泄露服务名称与版本。Server: nginx/1.xx 常被扫描器判为版本信息泄露(中危)Server: nginx 也会被部分扫描器标为服务标识泄露(低危)
  • 加固建议: 1. 在 http 块设置 server_tokens off;原生指令,无需重新编译nginx -s reload 即生效),隐藏版本号,响应头仅剩 Server: nginx; 2. 若要彻底移除整个 Server 响应头,标准 Nginx 配置无法实现,需第三方模块 ngx_headers_moremore_set_headers -s 200 -t 'Server' '';)或改用 OpenResty,视合规要求决定是否推进; 3. 顺带补齐基础安全响应头:
http {
    server_tokens off;
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-XSS-Protection "1; mode=block";
}

5.2 检测到远程主机开放了 ssh 服务(影响:22)

  • 风险说明:SSH 管理端口对公网开放,存在被扫描、暴力破解的风险面。
  • 加固建议:通过安全组/防火墙将 22 端口限制为授权管理 IP 白名单;关闭 root 密码登录、仅保留密钥认证;如业务允许,可修改默认端口降低自动化扫描命中率。

5.3 可获取到 ssh 服务版本信息(影响:22)

  • 风险说明:SSH 握手 banner 泄露 OpenSSH 版本,攻击者可用于匹配已知漏洞。
  • 加固建议:在 sshd_config 中配置自定义 Banner(或 Debian 系 DebianBanner no)隐藏真实版本。

5.4 可获取 SSL 证书中的 hostname【原理扫描】(影响:443)

  • 风险说明:TLS 证书 CN/SAN 可被读取,属信息收集类,无直接危害。
  • 加固建议无需修复;确保证书不包含内部/敏感域名即可。

5.5 可获取目标 SSL 证书过期时间【原理扫描】(影响:443)

  • 风险说明:证书有效期信息可被读取,仅用于信息收集。
  • 加固建议无需修复;确保证书已配置自动续期,避免过期导致业务中断(本次扫描显示证书状态正常)。

六、加固整改优先级

优先级 事项 等级 处置方式
P1 禁用 RSA 密钥交换,收紧 TLS 套件 中危 修改 nginx ssl_ciphersnginx -T 核对 → 复扫
P2 隐藏 nginx 版本 banner + 补齐安全头 低危 server_tokens off + 安全响应头
P3 SSH 访问控制 + 隐藏版本 低危 安全组白名单 + sshd 配置
P4 5000 端口暴露面复核 低危 评估业务必要性,收敛访问
P5 证书续期机制确认 低危 确认自动续期任务存在

加固前建议对相关配置文件做好备份,便于回退;涉及对外业务的服务改动请安排在低峰期。

七、复查与长效机制

  1. 复扫验证:完成上述整改后,使用同一扫描器对目标主机复扫,目标为中危清零、低危收敛(信息泄露类项确认已加固或说明无需处理);
  2. 纳入定期巡检:建议将主机漏洞扫描纳入季度/半年度常规巡检,覆盖 Web 服务、中间件、TLS 配置与开放端口变化;
  3. 关注新增暴露面:每次开放新端口、新上线的服务,应在上线前同步完成一次针对性漏扫。