本文主要介绍在linux操作系统下如何升级OpenSSL和OpenSSH到更高版本以修复低版本存在的安全漏洞。同样也是想帮助有OpenSSL和OpenSSH升级要求的人员。下面将详细介绍OpenSSL和OpenSSH升级过程,后面附带软件的一键升级脚本。
实验环境:
- 操作系统:CentOS6.6
- openssl版本:openssl-1.0.2k
- openssh版本:openssh-8.0p1
- zlib版本:zlib-1.2.11
- glibc版本:glibc-2.20
第一步、下载OpenSSL和OpenSSH的安装包。注:下载glibc、zlib、openssl(rpm包)和openssh的安装包。glibc是安装openssl的基础,openssl、zlib是安装openssh的基础。
第二步、上传所有安装包。
第三步、安装glibc安装包。
- echo "开始升级glibc..."
- tar -zxvf glibc-2.20.tar.gz
- cd glibc-2.20
- mkdir build; cd build
- ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
- make -j 8
- make install
- echo "升级glibc结束."
第四步、安装zlib安装包。
- echo "开始安装zlib..."
- tar -zxvf zlib-1.2.11.tar.gz
- cd zlib-1.2.11
- ./configure --shared
- make
- make test
- make install
- echo "安装zlib结束."
第五步、安装openssl。
openssl使用的rpm包进行安装的。
- echo "开始升级openssl版本..."
- cd openssl
- rpm -Uvh openssl-*.rpm --nodeps
- echo "升级openssl结束."
第六步、安装openssh。采用的是覆盖安装。
- echo "开始安装openssh..."
- tar -zxvf openssh-8.0p1.tar.gz
- cd openssh-8.0p1
- ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
- make
- make install
- echo "安装openssh结束."
第七步、安装完成后,查看openssl和openssh是否升级成功。
第八步、为了快速升级,编写了一个升级脚本执行。如下所示:
- #!/bin/sh
- echo "开始升级glibc..."
- tar -zxvf glibc-2.20.tar.gz
- cd glibc-2.20
- mkdir build; cd build
- ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
- make -j 8
- make install
- cd ../
- cd ../
- echo "升级glibc结束."
- echo "开始安装zlib..."
- tar -zxvf zlib-1.2.11.tar.gz
- cd zlib-1.2.11
- ./configure --shared
- make
- make test
- make install
- cd ../
- echo "安装zlib结束."
- echo "开始升级openssl版本..."
- cd openssl
- rpm -Uvh openssl-*.rpm --nodeps
- cd ../
- echo "升级openssl结束."
- echo "开始安装openssh..."
- tar -zxvf openssh-8.0p1.tar.gz
- cd openssh-8.0p1
- ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
- make
- make install
- cd ../
- echo "安装openssh结束."
本人具有多年的java开发经验,熟悉多种框架,熟悉网络编程,熟悉java安全编程,熟悉大数据,熟悉多种安全协议,熟悉并发编程,有兴趣的同学可以互相关注,互相学习!!!我们不是代码的奴隶,我们代码的驾驭者。将你的编程思想融入代码,让代码活起来。