SSH版本升级-openssh-9.7p1
- 1、查看当前版本
- 2、安装openssl
- 2.1、编译安装ssl
- 3、下载新版本SSH
- 4、备份原有的SSH配置
- 5、上传文件并解压
- 6、卸载原有的openssh包
- 7、编译安装openssh
- 7.1、在解压后的目录,初始化openssh
- 7.2、将文件拷回
- 7.3、修改配置文件
- 最终实现:
漏洞描述
OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。OpenSSH 9.6之前版本存在安全漏洞,该漏洞源于存在操作系统命令注入漏洞。
项目 | Value |
---|---|
CVE编号 | CVE-2023-51385 |
CNNVD编号 | CNNVD-202312-1665 |
1、查看当前版本
[root@test003 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2、安装openssl
下载入口:新版本ssl
[root@test003 tmp]# tar -zxvf openssl-3.3.0.tar.gz
[root@test003 tmp]# yum install cpan -y
[root@test003 tmp]# cpan
cpan[1]>install IPC::Cmd
[root@test003 tmp]# yum install gcc-c++ zlib-devel pam-devel
2.1、编译安装ssl
[root@test003 ]# mv /usr/bin/openssl /usr/bin/openssl_old.bak
[root@test003 ]# mv /usr/include/openssl /usr/include/openssl_old.bak
[root@test003 tmp]# cd openssl-3.3.0
[root@test003 openssl-3.3.0]# ./config --prefix=/usr/local/openssl
[root@test003 openssl-3.3.0]# make && make install
[root@test003 ]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@test003 ]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
[root@test003 ]# echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
[root@test003 ]# ldconfig -v
如果报错
[root@promethues-01 openssl-3.3.0]# openssl version openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
[root@test003 ]# ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
[root@test003 ]# ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
[root@test003 ]# ln -s /usr/local/openssl/lib64/libcrypto.so /usr/lib64/libcrypto.so
3、下载新版本SSH
下载入口:新版本SSH
4、备份原有的SSH配置
[root@test003 ~]# mv /etc/ssh /etc/ssh_old.bak
[root@test003 ~]# mv /usr/bin/ssh /usr/bin/ssh_old.bak
[root@test003 ~]# mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_old.bak
[root@test003 ~]# mv /usr/sbin/sshd /usr/sbin/sshd_old.bak
5、上传文件并解压
[root@test003 tmp]# tar -zxvf openssh-9.7p1.tar.gz
6、卸载原有的openssh包
[root@test003 ~]# rpm -e --nodeps `rpm -qa | grep openssh`
7、编译安装openssh
7.1、在解压后的目录,初始化openssh
[root@test003 ~]# cd /tmp/openssh-9.7p1
[root@test003 openssh-9.7p1]# ./configure --prefix=/usr/local/openssh9p7 --sysconfdir=/etc/ssh --with-pam --with-zlib
[root@test003 openssh-9.7p1]# make -j 4
[root@test003 openssh-9.7p1]# make install
7.2、将文件拷回
[root@test003 openssh-9.7p1]# cp /usr/local/openssh9p7/sbin/sshd /usr/sbin/sshd
[root@test003 openssh-9.7p1]# cp /usr/local/openssh9p7/bin/ssh /usr/bin/ssh
[root@test003 openssh-9.7p1]# cp /usr/local/openssh9p7/bin/ssh-keygen /usr/bin/ssh-keygen
[root@test003 openssh-9.7p1]# cp -p contrib/redhat/sshd.init /etc/init.d/sshd [root@test003 openssh-9.7p1]# chmod +x /etc/init.d/sshd
7.3、修改配置文件
vim /etc/ssh/sshd_configPermitRootLogin yes 、PubkeyAuthentication yes、PasswordAuthentication yes 将配置文件中这几个改为yes.
说明:
PermitRootLogin yes
# 允许root用户通过SSH登录到系统
PubkeyAuthentication yes
# 启用公钥身份验证
PasswordAuthentication yes
# 启用密码身份验证
/etc/init.d/sshd start
若出现如下错误:那就重新编译安装高一点版本的openssl
error: OpenSSL >= 1.1.1 required (have “100020bf (OpenSSL 1.0.2k-fips 26 Jan 2017)”)
最终实现:
`