linux中openssh漏洞修複步驟詳解

來源:互聯網
上載者:User

近期有幾台主機上線,上線的主機在進行安全合規掃描時,發現如下openssh漏洞。其中有幾個是陳年老漏洞,主要為CVE-2014-1692漏洞(openssh schnorr.c漏洞)為今天一月份的新漏洞。由於主機沒有配置外網串連,而且針對suse和redhat不同的版本,所以使用用了源碼包編譯升級openssh版本的方式修複。

一、準備相關包

zlib-1.2.5.tar.bz2

openssl-1.0.1.tar.gz

openssh-6.6p1.tar.gz

相關包已上傳百度雲端硬碟上。

二、準備其他登入方式

由於其間有卸載ssh的操作,以免登入不上主機,可以選擇先配置telnet或者vnc來進行遠程操作,這裡以telnet為例,如下:

 代碼如下 複製代碼
# vim /etc/xinetd.d/telnet
service telnet
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        disable         = yes
}

注,如無telnet-server包,需要先安裝該包後,再配置以上選項。

配置完後,重啟xinetd守護進程生效並查看是否有23連接埠的監聽:

# service xinetd restart
# netstat -tunlp
安全起見也可以考慮修改下telnet連接埠或通過iptables進行源地址指定 。

三、程式升級

1、openssl 包的安裝

 代碼如下 複製代碼
# tar -zxvf openssl-1.0.1.tar.gz
# cd openssl-1.0.1
# ./config -fPIC threads shared
# make
# make test
# make install
# mv /usr/bin/openssl /usr/bin/openssl.OFF
# mv /usr/include/openssl /usr/include/openssl.OFF
//該步驟可能提示無檔案,忽略即可
# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
//移走原先系統內建的openssl,將自己編譯產生的新檔案進行連結

註:不能卸載原openssl包,否則會影響系統的ssl加密庫檔案,除非你可以做兩個軟串連libcryto和libssl 。

設定檔搜尋路徑:

 代碼如下 複製代碼

# chmod 755 /usr/local/ssl/lib
# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
# /sbin/ldconfig -v
# openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Fri Mar 16 17:14:50 CST 2012
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"

2、卸載原openssh包

備份啟動指令碼

# cp /etc/init.d/sshd  /root/
停止SSHD服務

# /sbin/service sshd stop

卸載系統裡原有Openssh

# rpm  -qa|grep openssh  //查詢系統原安裝的openssh包,全部卸載。
# rpm -e openssh --nodeps
# rpm -e openssh-server --nodeps
# rpm -e openssh-clients --nodeps
# rpm -e openssh-askpass
或rpm -e --nodeps `rpm -qa |grep openssh`

3、解壓安裝zlib包

 代碼如下 複製代碼

# tar -jxvf zlib-1.2.5.tar.bz2 //首先安裝zlib庫,否則會報zlib.c錯誤無法進行
# cd zlib-1.2.5
# ./configure
# make&&make install

4、升級openssh包

先將將/etc/ssh的檔案夾備份:

 代碼如下 複製代碼
# mv /etc/ssh /etc/ssh_bak
# tar -zxvf openssh-6.6p1.tar.gz
# ./configure --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl  --with-md5-passwords --mandir=/usr/share/man  --with-pam
# make
# make install

編譯過程中可能報如下錯:

checking for EVP_sha256... yes
checking whether OpenSSL has NID_X9_62_prime256v1... yes
checking whether OpenSSL has NID_secp384r1... yes
checking whether OpenSSL has NID_secp521r1... yes
checking if OpenSSL's NID_secp521r1 is functional... yes
checking for ia_openinfo in -liaf... no
checking whether OpenSSL's PRNG is internally seeded... yes
configure: error: PAM headers not found
如果報此錯誤需要安裝相應版本的 pam-devel 包。安裝完再重新編譯即可 。

5、啟動openssh服務

編譯安裝好後,可以通過sshd -d 進行驗證,如果沒有報錯就可以重新啟用openssh了

 代碼如下 複製代碼

# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
(suse: cp contrib/suse/rc.sshd /etc/init.d/sshd)
# chmod +x /etc/init.d/sshd
# chkconfig --add sshd
# cp sshd_config /etc/ssh/sshd_config  (如提示覆蓋,yes斷行符號)
# cp sshd /usr/sbin/sshd   (如提示覆蓋,yes斷行符號)
(redhat:cp ssh-keygen /usr/bin/ssh-keygen)

通過下面的命令啟動ssh服務:

 代碼如下 複製代碼
service sshd start 或 service sshd restart

註:ssh -V //如果看到了新的版本號碼就沒問題啦!如果沒有ssh這條命令,執行(redhat、suse: ln -s /usr/local/bin/ssh /usr/bin/ssh)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.