CentOS6.5下openssh升级

时间:2022-10-01 00:32:46

CentOS6.5下openssh升级

在有的企业中每年都会安全扫描,因为实现远程连接比较重要,如果openssh版本过低,就要对其升级,本文主要讲述openssh升级的步骤。

openssh升级主要有三步:
1. 安装并启动dropbear
2. 安装新版本的openssl
3. 安装新版本的openssh
如果是生产环境,并且存在备机,建议从备机开始升级,备机升级完了再升级主机。

详细的过程如下:

一、安装并启动dropbear

我之前写过一篇dropbear的安装文档,dropbear安装,里面有详细的介绍。安装dropbear是为了防止在升级openssh的过程中断掉和服务器的连接。
如果是生产环境,并且和服务器相隔很远,建议开两个监听端口,一个用于远程连接,另外一个用于在其它服务器上跳转。

二、安装新版本的openssl

这里给出openssl的下载地址: openssl-1.0.2j.tar.gz ,如果是生产环境,请一定要先确认之前运行的服务是否支持最新的ssl链接库。
安装的命令如下:

    #备份之前的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
    yum remove -y openssh 
    rpm -qa | grep openssl | xargs rpm -e –nodeps
    #安装openssl
    tar zxvf openssl-1.0.2j.tar.gz
    cd openssl-1.0.2j
    ./config --prefix=/usr/ --shared  --openssldir=/etc/ssl  --libdir=lib 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.1.0.0
    ln -s /usr/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.1.0.0
    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

如果不链接一些必要的库,有一些程序可能会使用不了,比如yum和mysql,安装完成之后可以使用openssl version命令查看版本信息,如果显示下面的图片,表示安装成功。
CentOS6.5下openssh升级

三、安装并重启openssh

这里给出openssh的下载地址:openssh-7.3p1.tar.gz
安装并重启的命令如下:

    tar zxvf 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=/usr/local/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

同样,如果在生产环境下,公司对出网有端口限制,那么就要先杀死dropbear第一个监听的端口,把sshd服务配置文件(/etc/ssh/sshd_config)中的监听端口改掉,然后重启sshd服务。

    service sshd restart

重启如果出现下面图片显示的内容:
CentOS6.5下openssh升级

只需要在sshd配置文件中将相关项注释掉即可,并不影响使用。
最后将sshd服务设置为开机自启动。

    chkconfig sshd on

最后提醒一下读者,如果要在生产环境里升级openssh,一定要在测试环境下面多做几次,熟悉整个流程,并且本文出示代码不能删减。