绿盟扫出来centos6自带openssh存在大量高危漏洞,遂有了如下的升级手记,再扫的时候没有漏洞了。

在centos6 64位主机测试通过


升级前版本

openssl-1.0.1e-48.el6_8.1.x86_64

openssh-5.3p1-118.1.el6_8.x86_64


升级后版本

OpenSSL 1.0.2j

OpenSSH 7.3p1


如果你是最小化安装之后马上升级,得装一下或update一下基础的东西,不然后面升级可能会遇到问题

yum -y install wget openssh-clients openssl-devel


第一步,先去官网下载好这两个包放在/tmp目录下。

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
wget https://openssl.org/source/openssl-1.0.2j.tar.gz


安装gcc

yum install gcc


为确保升级过程没有意外导致ssh会话断开,还是开个telnet服务

yum install telnet-server xinetd
sed -i '/disable/s/yes/no/g' /etc/xinetd.d/telnet
service xinetd restart


此时换telnet登陆服务器执行后续命令

#备份旧的ssh配置和用户家目录的相关ssh文件
cp -raf /etc/ssh /etc/ssh.old
cp -raf /etc/init.d/sshd /etc/init.d/sshd.old
cp -raf /root/.ssh/ /root/.ssh.old
r_list=`cat /etc/passwd | awk -F ":" '{if($3>=500) print $6}'`
for i in $r_list;do
    cp -raf $i/.ssh/ $i/.ssh.old
done


删掉旧的openssl和openssh

rpm -qa  |  grep  openssh  |  xargs rpm -e --nodeps
rpm -qa | grep openssl | xargs rpm -e --nodeps


安装openssl

tar zxf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=/usr     \
         --openssldir=/etc/ssl \
         --libdir=lib          \
         --shared              \
         zlib-dynamic 
make depend && make
make MANDIR=/usr/share/man MANSUFFIX=ssl install &&
install -dv -m755 /usr/share/doc/openssl-1.0.2j  &&
cp -vfr doc/*     /usr/share/doc/openssl-1.0.2j
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.10
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.10

openssl version
#安装完成,应当输出OpenSSL 1.0.2j  26 Sep 2016


安装openssh

cd /tmp/
tar zxf openssh-7.3p1.tar.gz
cd openssh-7.3p1

#隐藏版本号配置
sed -i '/SSH_VERSION/s/OpenSSH_7.3/Goodbye/g' version.h
sed -i '/SSH_PORTABLE/s/p1/./g' version.h

echo "/usr/include/openssl/">>/etc/ld.so.conf
ldconfig
./configure --prefix=/usr                  \
            --sysconfdir=/etc/ssh          \
            --with-md5-passwords           \
            --with-ssl-dir=/etc/ssl/ \
            --with-privsep-path=/var/empty/sshd
make
make install &&
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-7.3p1     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-7.3p1
                    
cp -raf /etc/init.d/sshd.old /etc/init.d/sshd
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.new
cp -raf /etc/ssh.old/sshd_config /etc/ssh/sshd_config
sed -i 's/GSSAPI/#GSSAPI/g' /etc/ssh/sshd_config
sed -i 's/UsePAM/#UsePAM/g' /etc/ssh/sshd_config
service sshd restart

安装完成

感谢以下参考文章

http://www.cnblogs.com/jyzhao/p/5817199.html

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssl.html