升級openssh漏洞

升級openssl和openssh

最近接收到客戶的漏洞提醒,openssl和openssh的漏洞,解決辦法就只有升級。linux

升級前環境

~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
~]# rpm -qa | grep openssl
openssl-1.0.1e-15.el6.x86_64
~]# uname -r
2.6.32-431.el6.x86_64
~]# rpm -qa |grep zlib
zlib-1.2.3-29.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64


升級先後:shell

升級前 升級後
Openssl Openssl_1.0.1e-fips openssl-1.0.2j
Openssh Openssh_5.3p1 Openssh-6.9p1


升級前準備

爲了防止升級openssh過程當中出現問題,ssh鏈接斷開,須要保證鏈接不能斷開,此處使用telnet鏈接,也可安裝別的dropbear等
telnet只容許普通用戶登錄vim

~]# yum install telnet_server telnet -y
~]# vim /etc/xinetd.d/telnet
將disable項由yes改爲no

~]# service xinetd restart
重啓後便可鏈接


操做過程

1、安裝zlib

源碼安裝openssh、openssl,爲了不zlib庫文件版本太低,同時編譯安裝zlib庫緩存

~]# tar xf zlib-1.2.7.tar.gz
~]# cd zlib-1.2.7
~]# ./configure --shared
...
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
**Looking for a four-byte integer type... Found.** 
//這個是因爲zlib並不是使用的標準autotools,沒有考慮交叉編譯的狀況,這個錯誤是執行測試程序致使的,用於檢測32bit整型是int仍是long仍是別的,該錯誤可有可無,能夠忽略


~]# make && make test
~]# make install


2、安裝openssl

因爲openssh依賴於openssl庫,因此在安裝openssh前要先安裝openssl庫服務器

~]# tar xf openssl-1.0.2j.tar.gz
~]# cd openssl-1.0.2j
~]# ./config shared //默認安裝路徑(/usr/local/ssl)
~]# make && make test  //測試沒報錯,繼續往下執行
~]# make install

備份及軟連接命令:
~]# mv /usr/bin/openssl{,_bak}
~]# mv /usr/include/openssl{,_bak}
~]# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
~]# ln -s /usr/local/ssl/include/openssl /usr/include/openssl

搜索出可共享的動態連接庫,進而建立出動態裝入程序(ld.so)所需的鏈接和緩存文件,讓剛安裝的openssl動態連接庫爲系統所共享。
~]# sed -i '1 i /usr/local/ssl/lib' /etc/ld.so.conf  //在文件行首添加新安裝的openssl
~]# ldconfig //加載


查看版本:
~]# openssl version -a
**OpenSSL 1.0.2j  26 Sep 2016**
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/usr/local/ssl"


3、安裝openssh

更新openssh前,爲了防止ssh鏈接斷開,最好先telnet進服務器,防止意外發生ssh

~]# mkdir /usr/local/myssh/ssh -p  //安裝在本身新建的目錄裏
~]# tar xf openssh-7.4p1.tar.gz
~]# cd openssh-7.4p1
~]# ./configure --prefix=/usr/local/myssh --sysconfdir=/usr/local/myssh/ssh --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/myempty --with-privsep-user=sshd --with-zlib --with-ssl-engine --with-md5-passwords --disable-etc-default-login

~]# make && make install


備份及軟連接命令:
~]# mv /etc/init.d/sshd{,_bak}
~]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd   //拷貝啓動腳本
~]# chmod u+x /etc/init.d/sshd

~]# mv /usr/sbin/sshd{,_bak}
~]# ln -s /usr/local/myssh/sbin/sshd /usr/sbin/sshd //sshd命令

~]# mv /usr/bin/ssh-keygen{,_bak}
~]# ln -s /usr/local/myssh/bin/ssh-keygen /usr/bin/ssh-keygen //老的ssh-keygen默認沒有-A參數,若是不連接,就會有提示信息「ssh-keygen: illegal option -- A」

~]# mv /usr/bin/ssh{,_bak}
~]# mv /usr/local/myssh/


查看版本:
~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2j  26 Sep 2016
修改配置文件,並檢驗升級是否成功
~]# vim /usr/local/myssh/ssh/sshd_config

修改以下配置項:ide

  • PermitRootLogin yes //容許root用戶登錄
相關文章
相關標籤/搜索