1. 程式人生 > >CentOS6.5下openssh升級

CentOS6.5下openssh升級

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命令檢視版本資訊,如果顯示下面的圖片,表示安裝成功。
這裡寫圖片描述

三、安裝並重啟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

重啟如果出現下面圖片顯示的內容:
這裡寫圖片描述

只需要在sshd配置檔案中將相關項註釋掉即可,並不影響使用。
最後將sshd服務設定為開機自啟動。

    chkconfig sshd on

最後提醒一下讀者,如果要在生產環境裡升級openssh,一定要在測試環境下面多做幾次,熟悉整個流程,並且本文出示程式碼不能刪減。