##@TOC
1. 情況說(shuō)明:
近期甲方系統(tǒng)漏洞掃描,發(fā)現(xiàn)服務(wù)器存在一些漏洞如下:OpenSSH安全漏洞(CVE-2021-41617),OpenSSH命令注入漏洞(CVE-2020-15778),OpenSSH安全漏洞(CVE-2017-15906),OpenSSH安全漏洞(CVE-2019-6111),OpenSSH欺騙安全漏洞(CVE-2019-6110),OpenSSH欺騙安全漏洞(CVE-2019-6109),OpenSSH訪問(wèn)限制繞過(guò)漏洞(CVE-2018-20685),OpenSSH用戶(hù)枚舉漏洞(CVE-2018-15919),OpenSSH信息泄露漏洞(CVE-2020-14145),OpenSSH安全漏洞(CVE-2016-20012)。
相關(guān)漏洞還提供了參考解決方案:
漏洞 | 參考措施 |
---|---|
OpenSSH安全漏洞(CVE-2021-41617) | 廠商補(bǔ)?。航ㄗh使用此軟件的用戶(hù)隨時(shí)關(guān)注廠商主頁(yè)或參考網(wǎng)址以獲取解決辦法; http://www.openssh.com/security.html |
OpenSSH命令注入漏洞(CVE-2020-15778) | 廠商補(bǔ)?。耗壳皶何窗l(fā)布修復(fù)措施解決此安全問(wèn)題,建議使用此軟件的用戶(hù)隨時(shí)關(guān)注廠商主頁(yè)或參考網(wǎng)址以獲取解決辦法;http://www.openssh.com/ 臨時(shí)緩解措施:可以禁用scp,改用rsync等緩解風(fēng)險(xiǎn)(可能會(huì)導(dǎo)致小文件機(jī)器內(nèi)拷貝變慢) |
OpenSSH安全漏洞(CVE-2017-15906) | 廠商補(bǔ)?。耗壳皬S商已發(fā)布升級(jí)補(bǔ)丁以修復(fù)漏洞,補(bǔ)丁獲取鏈接:https://www.openssh.com/txt/release-7.6 |
OpenSSH安全漏洞(CVE-2019-6111) | 廠商補(bǔ)丁:目前廠商已發(fā)布升級(jí)補(bǔ)丁以修復(fù)漏洞,詳情請(qǐng)關(guān)注廠商主頁(yè):https://www.openssh.com/ |
OpenSSH欺騙安全漏洞(CVE-2019-6110) | 廠商補(bǔ)丁:OpenSSH 目前廠商已發(fā)布了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問(wèn)題,請(qǐng)到廠商的主頁(yè)下載:https://www.openssh.com/ 參考:https://vigilance.fr/vulnerability/OpenSSH-scp-PuTTY-PSCP-spoofing-via-Scp-Client-ANSI-Codes-stderr-File-Hidding-28262 |
OpenSSH欺騙安全漏洞(CVE-2019-6109) | 廠商補(bǔ)?。篛penSSH 目前廠商已發(fā)布了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問(wèn)題,請(qǐng)到廠商的主頁(yè)下載:https://www.openssh.com/ 參考:https://vigilance.fr/vulnerability/OpenSSH-scp-PuTTY-PSCP-spoofing-via-Scp-Client-ANSI-Codes-stderr-File-Hidding-28261 |
OpenSSH訪問(wèn)限制繞過(guò)漏洞(CVE-2018-20685) | 廠商補(bǔ)丁:OpenSSH 目前廠商已發(fā)布了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問(wèn)題,請(qǐng)到廠商的主頁(yè)下載: https://www.openssh.com/ https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/scp.c.diff?r1=1.197&r2=1.198&f=h |
OpenSSH用戶(hù)枚舉漏洞(CVE-2018-15919) | 修復(fù)版本:openssh > 7.8版本 廠商升級(jí):OpenSSH 請(qǐng)用戶(hù)關(guān)注OpenBSD官方發(fā)布的補(bǔ)丁修復(fù)漏洞: https://www.openssh.com/ https://www.openssh.com/portable.html |
OpenSSH信息泄露漏洞(CVE-2020-14145) | 廠商補(bǔ)丁:OpenBSD 目前廠商還沒(méi)有提供補(bǔ)丁或者升級(jí)程序,我們建議使用此軟件的用戶(hù)隨時(shí)關(guān)注廠商的主頁(yè)以獲取最新版本。 http://www.openbsd.org/security.html |
OpenSSH安全漏洞(CVE-2016-20012) | 廠商補(bǔ)?。耗壳皬S商暫未發(fā)布修復(fù)補(bǔ)丁,請(qǐng)及時(shí)關(guān)注廠商最新公告。 |
2. 查看相關(guān)軟件版本、漏洞說(shuō)明
查看服務(wù)器系統(tǒng)版本。
$ cat /proc/version
>> Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020
備注:本機(jī)測(cè)試采用的是Win10商店的Ubuntu
。甲方服務(wù)器系統(tǒng)版本是 Linux 3.10.0 RedHat 4.8.5
。親測(cè),兩種系統(tǒng)均可以按照如下流程,成功升級(jí)OpenSSH_8.8p1
查看OpenSSH版本。
$ ssh -V
>> OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 21 Jun 2017
查看漏洞詳情
在這個(gè)鏈接
結(jié)尾加上漏洞編號(hào),可以查看官方漏洞說(shuō)明和解決方案。https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE--*
查了不少鏈接和博客,發(fā)現(xiàn)好多漏洞只影響低版本的OpenSSH,在高版本的OpenSSH上已經(jīng)修復(fù)了,所以后續(xù)內(nèi)容暫且關(guān)注如何離線(xiàn)升級(jí) OpenSSH 至 OpenSSH 8.8p1
。
---- CVE-2021-41617
安全版本:OpenSSH >= 8.8
修復(fù)建議:升級(jí)到OpenSSH最新安全版本
---- CVE-2020-15778
影響:無(wú) - 不再被視為漏洞。 解決方法:目前沒(méi)有。
禁用scp,使用 rsync 緩解風(fēng)險(xiǎn)
或者 升級(jí)到OpenSSH 8.3p1之后的版本
---- CVE-2019-6111
對(duì)于穩(wěn)定發(fā)行版(stretch),這些問(wèn)題已在版本 1: 7.4p1-10+deb9u5 中修復(fù)。
我們建議您升級(jí)您的 openssh 軟件包。
---- CVE-2019-6110
---- CVE-2019-6109
對(duì)于穩(wěn)定發(fā)行版(stretch),這些問(wèn)題已在版本 1: 7.4p1-10+deb9u5 中修復(fù)。
我們建議您升級(jí)您的 openssh 軟件包。
…………
3. 下載相關(guān)軟件包
升級(jí)OpenSSH的過(guò)程需要依賴(lài)ZLIB
、Perl
、OpenSSL
,升級(jí)OpenSSL可能會(huì)報(bào)錯(cuò),可能還需要依賴(lài)PAM
。所以先要離線(xiàn)下載這些依賴(lài)對(duì)應(yīng)的包:zlib-1.2.12.tar.gz
,perl-5.16.1.tar.gz
,Linux-PAM-1.3.1.tar.xz
,openssl-1.1.1p.tar.gz
,openssh-8.8p1.tar.gz
。(安裝順序)
源碼包下載地址:
zlib-1.2.12.tar.gz:
zlib:http://www.zlib.net/
perl-5.16.1.tar.gz:
perl: http://www.cpan.org/src/5.0/
Linux-PAM-1.3.1.tar.xz:
PAM: https://www.linuxfromscratch.org/blfs/view/9.0/postlfs/linux-pam.html
openssl-1.1.1p.tar.gz:
OpenSSL: https://www.openssl.org/source/
openssh-8.8p1.tar.gz:
OpenSSH: http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
**注意:**
建議按照如下
順序安裝
,否則 可能因缺少依賴(lài)報(bào)錯(cuò)
建議將上述安裝包放到/home/apps
路徑下,并且以root
用戶(hù)進(jìn)行升級(jí)操作。
4. 安裝/升級(jí) zlib
$ tar -xzvf zlib-1.2.12.tar.gz
$ cd zlib-1.2.12
$ ./configure --prefix=/usr/local/zlib
$ make && make install
5. 安裝/升級(jí) Perl
$ tar -xzf perl-5.16.1.tar.gz
$ cd perl-5.16.1
$ ./Configure -de
$ make && make install
# 如下命令查看是否安裝成功,查看perl版本
$ perl -v
6. 安裝pam-devel
$ sudo tar -xf Linux-PAM-1.3.1.tar.xz
$ cd Linux-PAM-1.3.1
$ ./configure
$ make && make install
7. 安裝/升級(jí) openssl
$ openssl version -a
$ tar -zxvf openssl-1.1.1p.tar.gz
$ cd openssl-1.1.1p
$ ./config --prefix=/usr/local/ssl -d shared
## make
## make test
## make install
$ make && make install
$ echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
$ ldconfig -v
8. 安裝/升級(jí) openssh
$ tar -zxvf openssh-8.8p1.tar.gz
$ cd openssh-8.8p1
$ sudo ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
## ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
$ sudo make clean && sudo make && sudo make install
# sshd_config 文件 修改
$ echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
$ echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
$ echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
# 備份原有文件,并將新的配置復(fù)制到指定目錄
$ mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
$ mv /usr/sbin/sshd /usr/sbin/sshd.bak
$ cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
$ mv /usr/bin/ssh /usr/bin/ssh.bak
$ cp /usr/local/openssh/bin/ssh /usr/bin/ssh
$ mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
$ cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
$ mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
$ cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
# 【這幾句我在自己測(cè)試的時(shí)候并不需要執(zhí)行】
# OpenSSH安裝后環(huán)境配置:在openssh編譯目錄, 執(zhí)行如下命令:
# install -v -m755 contrib/ssh-copy-id /usr/bin
# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-****
# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-****
# 驗(yàn)證是否升級(jí)成功
$ ssh -V
>> OpenSSH_8.8p1, OpenSSL 1.1.1p 21 Jun 2022
# 重啟sshd服務(wù)
$ systemctl restart sshd.service
# 或者
$ systemctl restart sshd
驗(yàn)證是否升級(jí)成功
:注意
:重啟
sshd服務(wù)的命令運(yùn)行之后
,需要重新遠(yuǎn)程
連接服務(wù)器。
9. 可能的報(bào)錯(cuò) 及 解決辦法
1. configure: error: *** zlib.h missing - please install first or check config.log ***
原因是缺少 zlib ,或者 zlib安裝未成功
解決方案: 重新按照步驟 4. 安裝/升級(jí) zlib
$ tar zxf zlib***.tar.gz
$ cd zlib-***/
$ ./configure
$ make test
$ make install
$ make clean
$ ./configure --shared
$ make test
$ make install
$ cp zutil.h /usr/local/include/
$ cp zutil.c /usr/local/include/
2. 若報(bào)錯(cuò)bin/openssl: relocation error: bin/openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference
解決方案:
- 在/etc/ld.so.conf.d/libc.conf 文件中添加一行 /usr/lib
- 運(yùn)行 ldconfig 命令
$ echo '/usr/lib ' >> /etc/ld.so.conf.d/libc.conf
$ ldconfig
3. 若報(bào)錯(cuò) configure: error: PAM headers not found
原因是缺少PAM,或者 pam安裝失敗
解決方案:
- 聯(lián)網(wǎng)安裝 yum -y install pam-devel
- 離線(xiàn)安裝 pam-devel , 參考
步驟6. 安裝pam-devel
$ echo '/usr/lib ' >> /etc/ld.so.conf.d/libc.conf
$ ldconfig
4. make && make install出現(xiàn)recipe for target ‘install-binPROGRAMS’ failed
原因:權(quán)限不足
解決方法:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-444200.html
- cd … 到上層目錄,或更上層,例如/usr/目錄
- 給存放代碼/包的目錄加權(quán)限,以/usr/apps/目錄為例:
$ cd /usr/
$ sudo chmod -R 777 /usr/apps/
5. 運(yùn)行make命令的時(shí)候報(bào)錯(cuò):Makefile:638: recipe for target ‘xxxxxxx’ failed make: *** [xxxxxx] Error 1
原因:./configure之后,由于運(yùn)行make時(shí)候的權(quán)限或者其他原因,導(dǎo)致了make或make install 失敗,需要重新操作。
解決方案:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444200.html
- 執(zhí)行
make clean
清除上一次生成的可執(zhí)行文件,再次執(zhí)行 make 等命令,大概率可以解決
$ make clean
$ sudo make && sudo make install
參考鏈接
- CVE-2019-6111 常見(jiàn)漏洞和暴露
- CVE-CVE-2020-15778
- OpenSSH scp、PuTTY PSCP 的漏洞:通過(guò) Scp Client ANSI Codes File Hidding 進(jìn)行欺騙
- CVS log for src/usr.bin/ssh/progressmeter.c
- Redhat 6 OpenSSH 升級(jí)步驟
到了這里,關(guān)于Linux Redhat 服務(wù)器 OpenSSH 漏洞修復(fù) or 升級(jí) OpenSSH 8.8的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!