对一台业务主机执行全量漏洞扫描。结果:无可入侵漏洞、无高危漏洞、无弱口令,安全基线良好;共发现 1 个中危与 7 个低危问题,逐项给出加固建议与整改优先级。本报告为处置与复盘记录,内容已脱敏。
CHART 01 // 漏洞风险分布
scan findings by severity共 8 项发现 · 柱长为占比(以总发现数 8 为满格)· 中危项为唯一需优先处置对象。
CHART 02 // 开放端口 · 按服务分类
listening ports by service扫描目标:
[内网主机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-SHA、AES128-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 静态密钥交换,测不出真实结果。
加固步骤
- 在站点 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;
- 确认配置真正生效(只改文件未重载是常见失效原因):
nginx -T | grep ssl_ciphers
nginx -s reload
输出的套件列表应全部以 ECDHE 开头,不存在 AES256-SHA / AES128-SHA 这类纯 RSA 套件。
- 复扫验证(再次模拟扫描器):
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_more(more_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_ciphers → nginx -T 核对 → 复扫 |
| P2 | 隐藏 nginx 版本 banner + 补齐安全头 | 低危 | server_tokens off + 安全响应头 |
| P3 | SSH 访问控制 + 隐藏版本 | 低危 | 安全组白名单 + sshd 配置 |
| P4 | 5000 端口暴露面复核 | 低危 | 评估业务必要性,收敛访问 |
| P5 | 证书续期机制确认 | 低危 | 确认自动续期任务存在 |
加固前建议对相关配置文件做好备份,便于回退;涉及对外业务的服务改动请安排在低峰期。
七、复查与长效机制
- 复扫验证:完成上述整改后,使用同一扫描器对目标主机复扫,目标为中危清零、低危收敛(信息泄露类项确认已加固或说明无需处理);
- 纳入定期巡检:建议将主机漏洞扫描纳入季度/半年度常规巡检,覆盖 Web 服务、中间件、TLS 配置与开放端口变化;
- 关注新增暴露面:每次开放新端口、新上线的服务,应在上线前同步完成一次针对性漏扫。