CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

时间:2023-02-12 20:46:40

对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击。本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenSSH的方法。

一、服务器漏洞说明

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

二、环境描述

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

2)修补前后

  使用源码安装的方式

  CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3)连接工具SecureCrt、XShell

三、升级

最好先多开几个root登录的shell窗口万一升级失败可以回退回来,或者安装dropbear只是为了在升级失败sshd启动不起来时,依然可以登录系统

3.1 下载响应源码安装包

3.1.1 下载OpenSSL源码包

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

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3.1.2 下载1.0.2版本的openssl

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

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3.1.3 下载OpenSSH源码包

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

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3.2 安装Zlib

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

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make test

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make install

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3.3 安装OpenSSL

tar zxf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j/
./config shared (默认安装路径/usr/local/ssl)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make
make test
(确认编译是否有问题)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make install

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

把老的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 (做链接)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

vi /etc/ld.so.conf 

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

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

之后

ldconfig

让配置文件生效

最后查看当前openssl版本信息

openssl version -a

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

3.4 安装OpenSSH

tar zxf openssh-.3p1-CVE--.tar.gz

如为原版openssh-7.3p1包则添加下图代码,此包已经添加过。

cd openssh-.3p1/

解压openssh源码包,修改源码包根目录中的kex.c文件

搜debug("SSH2_MSG_KEXINIT received"); 在这附近

加ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL);

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

./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安装的文件目录,可以自定义)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

make

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

(make之后没有报错)

make install

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

修改新的OpenSSH配置文件

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

vi /usr/local/myssh/ssh/sshd_config

修改端口号和版本号

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

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

(把启动脚本拷贝到init.d下)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

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

(将以前的sshd进行备份)

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

(做链接)

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

service sshd restart

最后再用其他主机telnet这台主机,会发现已经升级到OpenSSH_7.3

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击