指令碼升級openssh

來源:互聯網
上載者:User

標籤:

一、問題描述(預設Linux安裝的SSHD服務存在一些漏洞,特此升級)

在曾經手動升級sshd服務後發現了三個後遺症:

  1. selinux開啟的狀態下,重啟機器sshd不啟動(原因:庫檔案“libcrypto.so.1.0.0”的selinux標記不正確,導致sshd無法調用訪問該檔案,使用setroubleshoot工具找到原因)

  2. hosts.allow,hosts.deny對sshd不起作用(原因:編譯時間未加上--with-tcp-wrappers)

  3. sftp無法使用(原因:源碼安裝後設定檔未找到sftp-server工具)

  4.  為了方便以後安裝,再加上修補以上遺留問題,特寫成指令碼。(指令碼測試在CentOS6.5、RHEL6.4、CentOS5.10測試通過)

注意事項:為了降低風險,運行指令碼之前,需以telnet登陸系統取得root許可權(telnet預設不允許root登陸,可以設定允許root或者以普通使用者切換)

二、安裝

1.  工具包:openssh-6.6p1.tar.gz     openssl-1.0.1g.tar.gz

openssh:  http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/     

openssl:   ftp://ftp.openssl.org/source/old/1.0.1/

 

2. 安裝時將指令碼和兩個包放在相同路徑下,解決依賴請配置好YUM倉庫 

3. 指令碼:updatesshd.sh

#!/bin/bash#-------------------------------------|#"WARING"!!! Please use telnet-server.|#"WARING"!!! Please use telnet-server.|#"WARING"!!! Please use telnet-server.|#-------------------------------------|ssh_update(){#Backup the old filesSSL_VER=openssl-1.0.1gSSH_VER=openssh-6.6p1CUR_DIR=$(pwd)SSH_DIR=/usr/local/opensshcd  /etc/ssh/mkdir oldmv ssh* moduli  oldmv /etc/init.d/sshd    /etc/init.d/sshd.old #Update sslyum -y install gcc gcc-c++ zlib-devel pam-devel tcp_wrappers*cd $CUR_DIRtar zxf    $SSL_VER.tar.gzcd $SSL_VER./config shared zlibmake && make installmv  /usr/bin/openssl    /usr/bin/openssl.oldmv  /usr/include/openssl    /usr/include/openssl.oldln -s  /usr/local/ssl/bin/openssl    /usr/bin/opensslln  -s   /usr/local/ssl/include/openssl/   /usr/include/opensslecho  "/usr/local/ssl/lib" >> /etc/ld.so.confldconfig/sbin/restorecon -v /usr/local/ssl/lib/libcrypto.so.1.0.0cd .. #Update sshdrpm -e `rpm -qa | grep openssh` --nodepstar zvxf $SSH_VER.tar.gzcd $SSH_VER/./configure --prefix=$SSH_DIR --sysconfdir=/etc/ssh  --with-pam  --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --with-md5-passwords --with-zlib=zlibmake && make installcp contrib/redhat/sshd.init   /etc/init.d/sshdchmod  u+x   /etc/init.d/sshdchkconfig --add   sshdchkconfig sshd oncp -rf sshd_config  /etc/ssh/sshd_configcd  $SSH_DIRcp -rf  sbin/sshd  /usr/sbin/sshdcp -rf  bin/*  /usr/bin/sed  -i ‘s#/usr/libexec/sftp-server#/usr/local/openssh/libexec/sftp-server#‘  /etc/ssh/sshd_configservice sshd  restart} read -p "Are you using telnet[YES/NO]?" ANSWERcase $ANSWER inYES)   echo "Fine,continue!!!"   ssh_update 2>&1 | tee -a /tmp/update.log ;;NO)   echo "It is dangerous,bye!!!";;*)   echo "Error choice";;esac

  

4. 結果驗證:

[[email protected] src]# ssh  -V

SSH, OpenSSL 1.0.1g 7 Apr 2014

指令碼升級openssh

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.