歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

OpenSSH平滑升級——解決OpenSSH漏洞

一、環境描述   1)操作系統:CentOS 6.5 64位   2)Openssl升級前版本:openssl 0.9.8e   3)Openssl升級後版本:openssl 1.0.1j(源碼安裝)   4)Openssh升級前版本:openssh-4.3p2-41.el5   5)Openssh升級後版本:openssh_6.7p1(源碼安裝)   6)連接工具SecureCrt   二、安裝Dropbear代替OpenSSH   安裝dropbear只是為了在升級失敗sshd啟動不起來時,依然可以登錄系統。也可以用其他工具代替,比如telnet   1)下載dropbear安裝包   https://matt.ucc.asn.au/dropbear/releases/dropbear-2014.66.tar.bz2   2)檢查安裝依賴包   rpm -qa zlib* gcc make   3)編譯安裝dropbear   # tar jxf dropbear-2014.66.tar.bz2   # cd dropbear-2014.66   # ./configure   # make && make install 檢查生成的文件是否正確: 4)生成證書   # /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key  (注:系統默認是沒有/etc/dropbear 目錄的需要自行到創建)   # /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key 5)啟動dropbear   # /usr/local/sbin/dropbear -p 2222    //監聽2222端口   查看是否啟動成功: 三、升級OpenSSL到openssl-1.0.1j,並刪除老版本   1)升級前准備   下載openssl-1.0.1j   http://www.openssl.org/source/openssl-1.0.1j.tar.gz   2)刪除舊版本 #rpm -e `rpm -qa | grep openssl` --allmatches --nodeps   3)安裝openssl, 一定記得加上--shared選項, 否則openssh編譯的時候會找不到新安裝的openssl的library, 會報錯: openssl的 header和library版本不匹配   (注:這裡LZ糾結了很久,如果按照步驟執行./config --prefix=/usr --shared 依然報錯: openssl的 header和library版本不匹配,很可能是由於之前安裝的Openssl也是源碼安裝的,而且沒有刪除干淨,需要手工搜索ssl相關的文件   1.執行find / -name ssl    2.將搜索結果中/usr/lib  /usr/lib64  /lib64  /lib等目錄下的結果逐一重命名,千萬不要亂刪除,逐一嘗試。這是個笨辦法,目前還沒有發現啥比較好的辦法。)   # ./config --prefix=/usr --shared    # make      # make test   # make install   完畢後查看openssl版本安裝是否正確   # openssl version -a 四、升級sshd到OpenSSH-6.7並刪除老版本ssh   1)升級前准備   查看是否缺包   # rpm -qa | egrep "gcc|make|perl|pam|pam-devel"   如果有配置yum了的話可以直接yum安裝這些包,這樣既可以檢驗是否裝了,沒裝的直接裝上。   yum -y install gcc* make perl pam pam-devel 2)下載openssh-6.7p1.tar.gz   http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.7p1.tar.gz   備份ssh :   # mv /etc/ssh /etc/ssh.bak   # openssl version -a 3)編譯安裝新版本openssh   # tar zxf openssh-6.7p1.tar.gz && cd openssh-6.7p1    # ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords      # make   先卸載完舊版本的openssh,再make install   # rpm -qa | grep openssh    # rpm -e `rpm -qa | grep openssh` Openssh-askpass是用於圖形界面下輸入口令的,用不著可以不裝   # make install   4)查看是否升級到新版本 5)復制啟動腳本到/etc/init.d   # cp /root/openssh-6.7p1/contrib/RedHat/sshd.init /etc/init.d/sshd   加入開機自啟   # chkconfig --add sshd 6)啟動sshd,用start或reload。不要restart,restart 會直接斷開連接,而並不會接著啟動sshd服務,這時候要通過其他途徑進入機器,然後啟動sshd服務才行。 四、刪除dropbear。   終端軟件裡再重新打開一個標簽,   在這裡Dropbear用來防止升級不成功,用來替代openssh連接服務器。   在開啟2222端口(dropbear啟動時的端口,可以設置別的 )的情況下,通過xshell連接的方法是:   ssh 192.168.0.1 2222 (192.168.0.1為需要連接的服務器ip) 刪除dropbear安裝的文件,並殺掉進程   # rm -rf /etc/dropbear/ /usr/local/sbin/dropbear /usr/local/bin/dropbear*
Copyright © Linux教程網 All Rights Reserved