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

 

posted @ 2025-09-17 20:59  猫哥_kaiye  阅读(105)  评论(0)    收藏  举报