| 状态
|
漏洞名称
|
修复步骤(简要命令)
|
自测办法(验证命令)
|
| [ ]
|
1. Nginx 软件版本漏洞 (对应图里 CVE 漏洞)
|
# 1. 安装必要的依赖工具
sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
# 2. 下载并导入 Nginx 官方签名公钥
# 注意:如果此时 curl 提示“Could not resolve host”,请在 curl 命令中加入代理参数(代理ip记得改),改为:
# curl -x http://10.7.41.201:7890 -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
# 3. 将 Nginx 官方源地址写入 apt 源列表
# $(lsb_release -cs) 会自动获取当前 Ubuntu 的代号(如 jammy)
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
# 4. 刷新软件源,并安装/升级 Nginx
sudo apt update
sudo apt install -y nginx
# 5. 检查版本是否升级成功
nginx -v
|
nginx -v✅ 预期:显示 1.26.x 或 1.30.x 或更高
|
| [ ]
|
2. HTTP 横幅版本泄露 (对应图里“HTTP横幅”)
|
编辑 /etc/nginx/nginx.conf 在 http { 块内添加:
server_tokens off;
然后 sudo systemctl reload nginx
|
curl -I http://localhost✅ 预期:Server 头仅显示 nginx,不带版本号
|
| [ ]
|
3. SSL 弱加密套件与协议 (对应图里“密码套件/协议”)
|
在 server { 的 SSL 配置部分添加:
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:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
然后 sudo systemctl reload nginx
|
nmap --script ssl-enum-ciphers -p 443 localhost✅ 预期:只显示 TLSv1.2 和 TLSv1.3,没有 TLSv1.0/1.1,没有弱加密套件
|
| [ ]
|
4. 默认 Nginx 首页 (对应图里“默认 nginx 设置”)
|
删除默认测试页:
sudo rm /var/www/html/index.nginx-debian.html
|
curl http://localhost✅ 预期:不再显示 Nginx 默认的“Welcome to nginx!”页面
|
| [ ]
|
5. TCP 时间戳泄露 (对应图里“TCP时间戳”)
|
写入并生效内核参数:
echo "net.ipv4.tcp_timestamps = 0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
|
sysctl net.ipv4.tcp_timestamps✅ 预期:输出 net.ipv4.tcp_timestamps = 0
|
| [ ]
|
6. ICMP/跟踪路由风险 (对应图里“ICMP/跟踪路由”)
|
写入并生效内核参数:
echo "net.ipv4.conf.all.accept_redirects = 0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
|
sysctl net.ipv4.conf.all.accept_redirects✅ 预期:输出 net.ipv4.conf.all.accept_redirects = 0
|
| [ ]
|
7. LDAP 信息泄露 (对应图里“LDAP搜索请求”)
|
阻止 Docker 穿透暴露端口:
sudo iptables -I DOCKER-USER -p tcp --dport 389 -j DROP
sudo iptables -I DOCKER-USER -p tcp --dport 636 -j DROP并保存规则:sudo netfilter-persistent save
|
本机测试:nc -zv 127.0.0.1 389(应通)
跨局域网测试:另一台机器 nc -zv 10.7.41.245 389(应不通)
|
| [ ]
|
8. MySQL 3306 局域网访问 (修复业务连通性)
|
UFW 放行局域网(记得根据实际情况调整网段)网段:
sudo ufw allow from 10.0.0.0/8 to any port 3306
sudo ufw reload
|
跨局域网测试:另一台机器 nc -zv 10.7.41.245 3306
✅ 预期:能连通
|
| [ ]
|
9. SSH 22端口防爆破 (建议替代直接禁用)
|
将允许所有人改为限流:
sudo ufw delete allow 22/tcp
sudo ufw limit 22/tcp
|
sudo ufw status✅ 预期:22/tcp 状态为 LIMIT
|
| [ ]
|
10. SSL 证书过期 (图中遗留项)
|
注:因你无域名,此项无法通过申请证书修复,属于合规性遗留项。暂时忽略,后续有了域名再使用 certbot 申请。
|
openssl s_client -connect localhost:443 -servername localhost 2>/dev/null | openssl x509 -noout -dates✅ 预期:证书日期已经过期(目前状态正常)
|