升级原因
服务器openSSH 8.2 被扫描出多个高危漏洞,要打各种补丁或者升级,此处采用升级的方式修复。
漏洞 | 影响版本 |
---|---|
Openssh 命令注入漏洞(CVE-2020-15778)【低可信】 | 影响OpenSSH:8.4p1以下版本(含) |
OpenSSH 安全漏洞(CVE-2021-28041)【低可信】 | 影响OpenSSH:8.2版本(含)到8.3版本 |
OpenSSH 输入验证错误漏洞(CVE-2020-12062)【低可信】 | 影响OpenSSH:8.5以下版本 |
环境
- Ubuntu 16.04.2 LTS
- openSSH 8.2
升级步骤
- 准备
为了防止升级过程中无法登陆,可暂时开启telnet方式登录
$ sudo apt-get install openbsd-inetd
$ sudo apt-get install telnetd
$ sudo /etc/init.d/openbsd-inetd restart
# 查看 telnet服务是否开启
$ sudo netstat -a | grep telnet
# 创建一个非root账户
$ useradd tu
# 设置密码
$ passwd tu
# 升级完之后删除用户 关闭telnet服务,一定要关闭哦
- 安装
# 1. 下载包
$ wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.5p1.tar.gz
# 配置
$ ./configure --prefix=/usr/local/ --sysconfdir=/etc/ssh --with-pam --with-tcp-wrappers
# 编译
$ make
# 安装
$ make install
# 替换原有的sshd和ssh命令 (where ssh|sshd)
$ ln -s /usr/local/sbin/sshd /usr/sbin/sshd
# 查看service注册的脚本地址 替换对应配置的位置
$ cat /lib/systemd/system/ssh.service
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
- 启动
# 校验sshd_config参数 根据结果更改配置文件
$ sshd -t
# 替换配置文件 将不支持的参数注释
$ sed -i 's/UsePrivilegeSeparation/# UsePrivilegeSeparation/g' /etc/ssh/sshd_config && \
sed -i 's/KeyRegenerationInterval/# KeyRegenerationInterval/g' /etc/ssh/sshd_config && \
sed -i 's/ServerKeyBits/# ServerKeyBits/g' /etc/ssh/sshd_config && \
sed -i 's/RhostsRSAAuthentication/# RhostsRSAAuthentication/g' /etc/ssh/sshd_config && \
sed -i 's/RSAAuthentication/# RSAAuthentication/g' /etc/ssh/sshd_config
# 启动
service ssh restart