Ubuntu Linux 云服务器常见安全漏洞修复方法汇总 Apache/OpenSSH/DNS
| 安全漏洞名称/CVE | 修复方案 |
|---|---|
| 1. Apache HTTP Server 缓冲区错误漏洞(CVE-2023-31122) 2. Apache HTTP Server 资源管理错误漏洞(CVE-2023-43622) 3. Apache httpd 资源管理错误漏洞(CVE-2024-27316) 4. Apache HTTP Server 代码问题漏洞(CVE-2024-38477) 5. Apache HTTP Server 安全漏洞(CVE-2024-38476) 6. Apache HTTP Server 安全漏洞(CVE-2024-38475) 7. Apache HTTP Server 安全漏洞(CVE-2024-38474) 8. Apache HTTP Server 安全漏洞(CVE-2024-47252) 9. Apache HTTP Server 资源管理错误漏洞(CVE-2023-45802) 10. Apache HTTP Server 安全漏洞(CVE-2024-24795) 11. Apache HTTP Server 输入验证错误漏洞(CVE-2024-39573) 12. Apache HTTP Server 安全漏洞(CVE-2024-38473) 13. Apache HTTP Server 安全漏洞(CVE-2024-38472) 14. Apache HTTP Server 代码问题漏洞(CVE-2024-36387) 15. Apache HTTP Server 安全漏洞(CVE-2025-53020) 16. Apache HTTP Server 输入验证错误漏洞(CVE-2024-42516) 17. Apache HTTP Server 访问控制错误漏洞(CVE-2025-23048) 18. Apache HTTP Server 安全漏洞(CVE-2025-49630) 19. Apache HTTP Server 授权问题漏洞(CVE-2025-49812) |
升级 Apache 至 2.4.64 以上版本 |
| 1. OpenSSH 安全漏洞(CVE-2023-28531) 2. OpenSSH 安全漏洞(CVE-2023-38408) 3. OpenSSH 竞争条件问题漏洞(CVE-2024-6387) 4. OpenSSH 安全漏洞(CVE-2023-51384) 5. OpenSSH 安全漏洞(CVE-2023-51385) 6. OpenSSH 安全漏洞(CVE-2023-48795) 7. OpenSSH 安全漏洞(CVE-2025-26465) |
升级 OpenSSH 至 9.9 以上版本 |
| 1. Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001) | 禁用 SSH DHE 加密 |
| 1. ISC BIND伪来源IP地址DNS远程攻击漏洞(CVE-2006-0987) | 禁用 DNS 递归查询 |
1、升级 Apache 至 2.4.64 以上版本
# 备份配置 sudo cp -r /etc/apache2 /etc/apache2.backup # 更新包列表并升级 sudo apt update sudo apt upgrade apache2 # 一路 ok 下去,不确定的问 AI # 检查升级后版本 apache2 -v
2、升级 OpenSSH 至 9.9 以上版本
⚠️ 提醒:升级 ssh 服务可能意外导致无法再次连接云服务器,建议先打开 23 端口 telnet 备用通道以防万一
2.1、安装配置 telnet 服务(可选)
# 更新软件包列表 sudo apt update # 安装telnet服务器 sudo apt install -y telnetd xinetd # 创建xinetd配置文件 sudo tee /etc/xinetd.d/telnet > /dev/null <<'EOF' service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID bind = 0.0.0.0 port = 23 } EOF # 启动xinetd服务 sudo systemctl enable xinetd sudo systemctl start xinetd # 验证telnet服务 sudo systemctl status xinetd sudo netstat -tlnp | grep :23
提示:
1. 阿里云、腾讯云等需要去网络安全组中新增一条规则,确保 TCP 23 端口允许外部访问。
2. telnet 登录需要用户名和密码,如果你当前的 root (同等权限)账户没有密码或忘记密码,可以使用 passwd 命令重置密码
sudo passwd your_username
3. 服务设置成功后,请从本地电脑 telnet 到目标 IP(替换下面的 1.2.3.4),按提示输入用户名和密码(密码上屏不显示)
telnet 1.2.3.4 23
2.2、升级 OpenSSH
# 创建工作目录 mkdir -p /tmp/openssh_upgrade cd /tmp/openssh_upgrade # 下载和解压 wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz tar -xzf openssh-9.9p1.tar.gz cd openssh-9.9p1 # 配置 ./configure \ --prefix=/usr \ --sysconfdir=/etc/ssh \ --libexecdir=/usr/libexec \ --datadir=/usr/share \ --mandir=/usr/share/man \ --with-pid-dir=/run \ --with-systemd \ --with-pam \ --with-ssl-engine \ --with-selinux \ --with-kerberos5 \ --with-tcp-wrappers \ --with-audit=linux \ --with-ldns # 编译 make -j$(nproc) # 设置 dpkg-divert 需要将编译安装的文件标记为不被包管理器管理 sudo dpkg-divert --add --rename --divert /usr/sbin/sshd.orig /usr/sbin/sshd 2>/dev/null || true sudo dpkg-divert --add --rename --divert /usr/bin/ssh.orig /usr/bin/ssh 2>/dev/null || true # 停止SSH服务 sudo systemctl stop ssh # 安装新版本(只执行一次) sudo make install # 检查配置和启动 sudo /usr/sbin/sshd -t sudo systemctl start ssh # 验证 /usr/sbin/sshd -V sudo systemctl status ssh --no-pager
2.3、关闭 telnet 服务(可选)
# 停止并禁用xinetd服务 sudo systemctl stop xinetd sudo systemctl disable xinetd # 检查23端口 sudo netstat -tlnp | grep :23
3、禁用 SSH DHE 加密
sudo tee /etc/ssh/sshd_config.d/99-cve-2002-20001-fix.conf > /dev/null <<'EOF' # 修复CVE-2002-20001: 禁用DHE密钥交换 KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521 Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512 HostKeyAlgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256 PubkeyAcceptedAlgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256 EOF # 验证配置是否正确 sudo /usr/sbin/sshd -t # 重启 ssh 服务 sudo systemctl restart ssh # 验证 DHE 算法是否已移除 sudo sshd -T | grep kexalgorithms
4、禁用 DNS 递归查询
sudo cp /etc/systemd/resolved.conf /etc/systemd/resolved.conf.backup sudo tee /etc/systemd/resolved.conf > /dev/null <<EOF [Resolve] DNS=8.8.8.8 1.1.1.1 Domains=~. DNSSEC=no DNSOverTLS=no MulticastDNS=no LLMNR=no Cache=yes DNSStubListener=no EOF sudo systemctl restart systemd-resolved sudo rm /etc/resolv.conf sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf # 确认53端口不再监听 sudo ss -ulnp | grep :53
# 确认DNS解析正常 nslookup google.com


浙公网安备 33010602011771号