升级OpenSSH解决远程代码执行漏洞

2,192 阅读2分钟

升级OpenSSH解决远程代码执行漏洞

image.png

openssh漏洞,升级版本解决

注意:openssh升级前,需要将openssl也升级,版本得对应起来,否则升级不了!!!

一、升级openssl

1.1、安装依赖包

# yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel

1.2、下载openssl的包

下载最新版本,下载箭头指的包(看实际最新的包)

openssl下载地址:

ftp.openssl.org/source/

image.png

这里下载1.1.1版本

1.3、将压缩包放到/opt/tools目录下并解压

# cd /opt/tools

# tar -zxvf openssl-1.1.1k.tar.gz

1.4、备份原目录

# mv /usr/bin/openssl /usr/bin/openssl_bak202012

# mv /usr/include/openssl /usr/include/openssl_bak202012

上面的202012可根据当前日期改变

1.5、编译安装新版本的openssl

# cd /opt/tools/openssl-1.1.1k/

# ./config --prefix=/usr/local/openssl shared zlib

# make

# make install

以上命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题

# echo $?

image.png

1.6、创建软链接和加载新配置

# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# ln -s /usr/local/openssl/include/openssl /usr/include/openssl

# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

# ldconfig

1.7、检查版本

# openssl version

image.png

二、升级openssh

2.1、下载openssh包

下载最新版本,下载箭头指的包(看实际最新的包)

openssh下载地址:

cdn.openbsd.org/pub/OpenBSD…

image.png

这里下载8.4版本

2.2、将压缩包放到/opt/tools目录下并解压、授权

# cd /opt/tools

# tar -zxvf openssh-8.6p1.tar.gz

可能文件默认显示uid和gid数组都是1000,这里重新授权下。不授权可能也不影响安装

# chown -R root.root /opt/tools/openssh-8.6p1

2.3、备份当前openssh

备份前先停止ssh服务:

# service sshd stop

image.png

然后备份:

# mv /etc/init.d/sshd /etc/init.d/sshd.bak202012

# mv /etc/ssh /etc/ssh.bak202012

# mv /usr/sbin/sshd /usr/sbin/sshd.bak202012

# mv /usr/bin/ssh /usr/bin/ssh.bak202012

上面的202012可根据当前日期改变

2.4、编译安装新版本的openssh

# cd /opt/tools/openssh-8.6p1

# ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib

其中:--with-ssl-dir=是openssl的安装路径,如果报:configure: error: PAM headers not found,执行命令:yum -y install pam-devel,然后再 ./configure 一次

# make

# make install

以上命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题

# echo $?

image.png

2.5、修改配置

修改配置文件最终为如下内容,其他的不要动:

# vi /etc/ssh/sshd_config

在文件末尾添加以下内容:

PermitRootLogin yes

UseDNS no

2.6、拷贝一些文件到目标位置

# cp -a /opt/tools/openssh-8.6p1/contrib/redhat/sshd.init /etc/init.d/sshd

# cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

# cp /usr/local/openssh/bin/ssh /usr/bin/ssh

2.7、创建服务和开机自启动

# chkconfig --add sshd

# chkconfig sshd on

2.8、测试启动

我本次升级重启服务后无法远程登录连接,只能够执行完上一步操作后立马重启电脑才生效(具体原因未知,阿里云平台反映重启服务器后就正常)

2.9、测试连接

升级了最新openssh需要用最新的ssh客户端(SecureCRT8.7以上)及启用最新的ssh加密协议(curve25519-sha256)

image.png

好了,以上就是用升级 OpenSSH 解决 远程代码执行漏洞!!!

今天就先到这里了,溜了溜了溜了!!!^_^

觉得有收获的,帮忙点个赞呗!!!

image.png