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)”)
最終實現:
`