?????博主簡(jiǎn)介
????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
????華為云開發(fā)者社區(qū)專家博主
????阿里云開發(fā)者社區(qū)專家博主
??交流社區(qū):運(yùn)維交流社區(qū) 歡迎大家的加入!
?? 希望大家多多支持,我們一起進(jìn)步!??
??如果文章對(duì)你有幫助的話,歡迎 點(diǎn)贊 ???? 評(píng)論 ?? 收藏 ?? 加關(guān)注+??
文章聲明
文章聲明:此文基于實(shí)操撰寫 生產(chǎn)環(huán)境:
ssh -V查看版本是:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
問題關(guān)鍵字:OpenSSH 升級(jí), OpenSSH 更新, OpenSSH 漏洞修復(fù)
漏洞信息:OpenSSH代理轉(zhuǎn)發(fā)遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2023-38408)
前述
OpenSSH(OpenBSD Secure Shell)是OpenBSD計(jì)劃組的一套用于安全訪問遠(yuǎn)程計(jì)算機(jī)的連接工具。該工具是SSH協(xié)議的開源實(shí)現(xiàn),支持對(duì)所有的傳輸進(jìn)行加密,可有效阻止竊聽、連接劫持以及其他網(wǎng)絡(luò)級(jí)的攻擊。 OpenSSH 8.9版本至9.3之前版本存在安全漏洞,該漏洞源于將智能卡密鑰添加到ssh-agent,會(huì)導(dǎo)致忽略每次轉(zhuǎn)發(fā)的目標(biāo)約束。
注:此操作步驟同樣適用于Red Hat系所有 9.x 服務(wù)器系統(tǒng)。
注意事項(xiàng):
在升級(jí)之前,建議打開多個(gè)SSH終端連接,并安裝telnet服務(wù)器,確保在SSH服務(wù)器升級(jí)異常時(shí),可以通過telnet服務(wù)器遠(yuǎn)程連接,進(jìn)行緊急問題修復(fù)處理。
因?yàn)樽铋_始需要直接卸載openssh,卸載完之后就連不上了,如有問題不好解決,所以建議多開幾個(gè)SSH終端連接。
在升級(jí)前一定要備份原有的配置文件,以防出現(xiàn)意外情況。
安裝一些必要的命令(需要用到的)
安裝一些必要的命令(需要用到的)
yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y
如果沒有外網(wǎng),可以選擇在有網(wǎng)絡(luò)的服務(wù)器上下載rpm安裝包,yum離線下載安裝包可參考:Centos7 yum如何下載離線安裝包?(詳解)
或者是使用我提供的離線包:openssh7.4p1 升級(jí)到 openssh9.3p2 所需的離線包
網(wǎng)盤下載:
鏈接:https://pan.baidu.com/s/1W426VDGwchE9ndKGV-eyxw?pwd=f2um
提取碼:f2um
命令解析:
- 1.1 OpenSSL:OpenSSH 使用了 OpenSSL 的加密庫(kù)。因此,在更新 OpenSSH 之前,需要先更新 OpenSSL 的版本。
- 1.2 PAM:OpenSSH 使用了Pluggable Authentication Modules (PAM),因此需要安裝 PAM 相關(guān)的庫(kù)文件。
- 1.3 Zlib:OpenSSH 使用了 Zlib 庫(kù)進(jìn)行數(shù)據(jù)壓縮。因此,需要安裝 Zlib 的庫(kù)文件。
- 1.4 GCC 和 G++:OpenSSH 的編譯需要 GCC 和 G++ 編譯器。
Centos 服務(wù)器升級(jí)OpenSSH到9.3p2
1、安裝依賴
安裝一些必要的命令(需要用到的)
2、編譯安裝openssl
2.1 官網(wǎng)下載安裝包:openssl官網(wǎng)
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz
或者是使用我提供的離線包:openssh7.4p1 升級(jí)到 openssh9.3p2 所需的離線包
網(wǎng)盤下載:
鏈接:https://pan.baidu.com/s/1W426VDGwchE9ndKGV-eyxw?pwd=f2um
提取碼:f2um
如果遇到以下問題,后面加上--no-check-certificate
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate
2.2 解壓并放到/usr/local/目錄
tar xf openssl-1.1.1t.tar.gz -C /usr/local
2.3 編譯安裝openssl
# 進(jìn)入openssl目錄
cd /usr/local/openssl-1.1.1t
# 編譯安裝openssl
./config shared --prefix=/usr/local/openssl
make -j 4
make install
2.4 為openssl做軟連接
echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
# 加載配置文件
ldconfig
# 備份以前的openssl
mv /usr/bin/openssl /usr/bin/openssl.old
# 軟連接,如果提示軟連接已存在,記得備份軟連接,然后在執(zhí)行下面再次軟連接,要不然會(huì)出問題,會(huì)導(dǎo)致root目錄看不了,磁盤看不了,sftp連接不上;
ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
軟連接,如果提示軟連接已存在,記得備份軟連接,然后在執(zhí)行上面再次進(jìn)行軟連接,要不然會(huì)出問題,會(huì)導(dǎo)致root目錄看不了,磁盤看不了,sftp連接不上,等等一系列問題;
2.5 查看openssl版本
openssl version -a
3、查看、備份并卸載原有OpenSSH
確保終端一直連接 斷開遠(yuǎn)程連接就不能用了
# 查看當(dāng)前安裝包
[root@localhost ~]# rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
# 查看當(dāng)前OpenSSH版本(Centos7 默認(rèn)使用OpenSSH_7.4p1)
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
# 備份現(xiàn)有的SSH
[root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
[root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak
# 如果您是第一次升級(jí),備份/etc/init.d/sshd時(shí)會(huì)不存在,不影響后續(xù)操作
[root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
mv: 無(wú)法獲取'/etc/init.d/sshd' 的文件狀態(tài)(stat): No such file or directory
# 卸載現(xiàn)有OpenSSH
rpm -e --nodeps $(rpm -qa |grep openssh)
確保已經(jīng)卸載成功(沒有返回則卸載成功)
rpm -qa | grep openssh
4、下載OpenSSH二進(jìn)制包
openssh官網(wǎng):下載官網(wǎng)
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
或者是使用我提供的離線包:openssh7.4p1 升級(jí)到 openssh9.3p2 所需的離線包
網(wǎng)盤下載:
鏈接:https://pan.baidu.com/s/1W426VDGwchE9ndKGV-eyxw?pwd=f2um
提取碼:f2um
5、解壓并編譯安裝OpenSSH
# 將下載的openssh安裝包移動(dòng)到/usr/local下
[root@localhost ~]# mv openssh-9.3p2.tar.gz /usr/local/
# 進(jìn)入/usr/local/目錄解壓openssh9.3
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar xf openssh-9.3p2.tar.gz
# 進(jìn)入openssh目錄
[root@localhost local]# cd openssh-9.3p2
# 編譯安裝
[root@localhost openssh-9.3p2]# CCFLAGS="-I/usr/local/include" \
LDFLAGS="-L/usr/local/lib64" \
./configure \
--sysconfdir=/etc/ssh \
--with-zlib \
--with-ssl-dir=/usr/local/openssl
[root@localhost openssh-9.3p2]# make -j 4
[root@localhost openssh-9.3p2]# make install
6、授權(quán)
[root@localhost openssh-9.3p2]# chmod 600 /etc/ssh/*
7、復(fù)制配置文件
[root@localhost openssh-9.3p2]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
[root@localhost openssh-9.3p2]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
[root@localhost openssh-9.3p2]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
[root@localhost openssh-9.3p2]# cp -ar /usr/local/openssh-9.3p2/contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-9.3p2]# cp -ar /usr/local/openssh-9.3p2/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
8、修改配置允許root用戶遠(yuǎn)程登錄
# 修改配置允許root用戶遠(yuǎn)程登錄(允許使用密碼登錄,允許root遠(yuǎn)程登錄,開啟端口,賦予/etc/init.d/sshd權(quán)限)
cat >>/etc/ssh/sshd_config<<EOF
PermitRootLogin yes
X11Forwarding yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
EOF
[root@localhost openssh-9.3p2]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
[root@localhost openssh-9.3p2]# chmod 755 /etc/init.d/sshd
9、啟用sshd,生成服務(wù)配置文件,并重啟服務(wù)
# 啟用sshd,生成服務(wù)配置文件
[root@localhost openssh-9.3p2]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on
# 重啟服務(wù)
[root@localhost openssh-9.3p2]# systemctl restart sshd
# 查看服務(wù)狀態(tài)
[root@localhost openssh-9.3p2]# systemctl status sshd
10、驗(yàn)證升級(jí)是否成功
[root@localhost ~]# ssh -V
OpenSSH_9.3p2, OpenSSL 1.1.1t 7 Feb 2023
可能遇到的問題及解決方式
問題一:
編譯如果有此報(bào)錯(cuò),可能是你沒安裝gcc…需要的命令,返回最上面: 安裝一些必要的命令(需要用到的),安裝完再次編譯就可以了。
問題二:
編譯時(shí)報(bào)錯(cuò)信息:
checking for cc... cc
checking whether the C compiler works... no
configure: error: in `/usr/local/openssh-9.3p2':
configure: error: C compiler cannot create executables
See `config.log' for more details
gcc問題,如果gcc是5.4將gcc降級(jí)為4.8.5,我遇到的問題就是因?yàn)間cc的版本為5.4,將gcc版本降為4.8.5即可。
問題三:
編譯時(shí)報(bào)錯(cuò)信息:
checking for openssl/opensslv.h... yes
checking OpenSSL header version... 009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx)
checking for OpenSSL_version... no
checking for OpenSSL_version_num... no
checking OpenSSL library version... configure: error: OpenSSL >= 1.0.1 required (have "009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx)")
這個(gè)報(bào)錯(cuò)是說版本要必須大于等于1.0.1,但是ssh -V我看的時(shí)候是1.0.2,可能還是因?yàn)榘姹咎土?,我就升?jí)了一個(gè)openssl版本為1.1.1,就可以了。安裝openssl可參考:編譯安裝openssl
問題四:
升級(jí)OpenSSH后SFTP無(wú)法連接問題文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-713027.html
- 1.修改配置
vim /etc/ssh/sshd_config
#override default of no subsystems
#Subsystem sftp /usr/local/openssh/libexec/sftp-server改成下面這句
Subsystem sftp internal-sftp
- 2.重啟sshd服務(wù)
systemctl restart sshd
再試一下就可以了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-713027.html
參考文獻(xiàn)
- [1] 國(guó)家信息安全漏洞庫(kù):http://www.cnnvd.org.cn/
- [2] 騰訊安全:https://s.tencent.com/research/bsafe/
- [3] Centos7 yum如何下載離線安裝包?(詳解):https://liucy.blog.csdn.net/article/details/125780172?spm=1001.2014.3001.5502
相關(guān)文章
文章標(biāo)題 | 文章鏈接 |
---|---|
【Linux】 OpenSSH_7.4p1 升級(jí)到 OpenSSH_8.7p1(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/130484944 |
【Linux】 OpenSSH_7.4p1 升級(jí)到 OpenSSH_9.3p1(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/131398113 |
【Linux】 OpenSSH_7.4p1 升級(jí)到 OpenSSH_9.3p2(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/133460612 |
【Linux】 OpenSSH_9.3p1 升級(jí)到 OpenSSH_9.3p2(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/133460539 |
【Linux】 OpenSSH_7.4p1 升級(jí)到 OpenSSH_9.4p1(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/133697104 |
【Linux】 OpenSSH_9.3p2 升級(jí)到 OpenSSH_9.4p1(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/133682882 |
【Linux】 OpenSSH_9.3p1 升級(jí)到 OpenSSH_9.5p1(親測(cè)無(wú)問題,建議收藏) | https://liucy.blog.csdn.net/article/details/134717718 |
到了這里,關(guān)于【Linux】 OpenSSH_7.4p1 升級(jí)到 OpenSSH_9.3p2(親測(cè)無(wú)問題,建議收藏)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!