1. 程式人生 > >CentOS6.x服務器OpenSSH平滑7.3p版本——拒絕服務器漏洞攻擊

CentOS6.x服務器OpenSSH平滑7.3p版本——拒絕服務器漏洞攻擊

blank pass 版本號 攻擊 includes shell spa fault div

對於新安裝的Linux服務器,默認OpenSSH及OpenSSL都不是最新的,需要進行升級以拒絕服務器漏洞攻擊。本次介紹的是升級生產環境下CentOS6.x系列服務器平滑升級OpenSSL及OpenSSH的方法。

一、服務器漏洞說明

技術分享

二、環境描述

1)操作系統:CentOS 6.x系列 64位

2)修補前後

  使用源碼安裝的方式

  技術分享

3)連接工具SecureCrt、XShell

三、升級

最好先多開幾個root登錄的shell窗口萬一升級失敗可以回退回來,或者安裝dropbear只是為了在升級失敗sshd啟動不起來時,依然可以登錄系統

3.1 下載響應源碼安裝包

3.1.1 下載OpenSSL源碼包

下載地址:https://www.openssl.org/source/

技術分享

3.1.2 下載1.0.2版本的openssl

下載地址:https://www.openssl.org/source/openssl-1.0.2j.tar.gz

技術分享

3.1.3 下載OpenSSH源碼包

下載地址:http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

技術分享

3.2 安裝Zlib

http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --shared

技術分享

make

技術分享

make test

技術分享

make install

技術分享

3.3 安裝OpenSSL

tar zxf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j/
./config shared  (默認安裝路徑/usr/local/ssl)

技術分享

make
make test
(確認編譯是否有問題)

技術分享

make install

技術分享

把老的openssl文件進行備份

mv /usr/bin/openssl /usr/bin/openssl.bak  (文件存在的話就執行這個命令)
mv /usr/include/openssl /usr/include/openssl.bak   (文件存在的話就執行這個命令)

做鏈接

ln
-s /usr/local/ssl/bin/openssl /usr/bin/openssl (做鏈接) ln -s /usr/local/ssl/include/openssl /usr/include/openssl (做鏈接)

技術分享

vi /etc/ld.so.conf 

在第一行加 /usr/local/ssl/lib

技術分享

之後

ldconfig

讓配置文件生效

最後查看當前openssl版本信息

openssl version -a

技術分享

3.4 安裝OpenSSH

tar zxf openssh-7.3p1-CVE-2016-8858.tar.gz

如為原版openssh-7.3p1包則添加下圖代碼,包已經添加過。

cd openssh-7.3p1/

解壓openssh源碼包,修改源碼包根目錄中的kex.c文件

debug("SSH2_MSG_KEXINIT received"); 在這附近

ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL);

技術分享

./configure --prefix=/usr/local/myssh --sysconfdir=/usr/local/myssh/ssh --with-openssl-includes=/usr/local/ssl/include -with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/myempty --with-privsep-user=sshd --with-zlib --with-ssl-engine --with-md5-passwords --disable-etc-default-login

(標紅的部分是openssh安裝的文件目錄,可以自定義)

技術分享

make

技術分享

(make之後沒有報錯)

make install

技術分享

修改新的OpenSSH配置文件

技術分享

vi /usr/local/myssh/ssh/sshd_config

修改端口號和版本號

技術分享

cd /usr/local/openssh-7.3p1
cp contrib/redhat/sshd.init /etc/init.d/sshd

(把啟動腳本拷貝到init.d下)

技術分享

mv /usr/sbin/sshd /usr/sbin/sshd.bak

(將以前的sshd進行備份)

ln -s /usr/local/myssh/sbin/sshd /usr/sbin/sshd

(做鏈接)

技術分享

service sshd restart

最後再用其他主機telnet這臺主機,會發現已經升級到OpenSSH_7.3

技術分享

CentOS6.x服務器OpenSSH平滑7.3p版本——拒絕服務器漏洞攻擊