最近接收到客戶的漏洞提醒,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 重啓後便可鏈接
源碼安裝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
因爲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"
更新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