关于centos7出现ssh版本过低出现的VE-2016-1009漏洞的修复思路(已验证)

因为是事后总结,所以在此大致说一下思路,希望对你有帮助;

首先openssh需要依赖openssl,经过我修复漏洞之后了解的大概是openssh需要依赖指定的openssl版本,如果版本不对应会出现openssh无法安装。

openssl升级可以参考https://blog.51cto.com/u_7424593/1840487

写写我自己的openssl操作步骤
如上面的链接准备4个包(ssh我想通过yum直装,这里主要是安装openssl)

pam-devel-1.1.8-23.el7.x86_64.rpm
libopenssl-devel-1.0.1c-2.1.3.x86_64.rpm
zlib-devel-1.2.7-2.1.2.x86_64.rpm
openssl-1.0.2h.tar.gz

一、安装依赖软件
1、安装必要的gcc、gcc-c++编译工具及libopenssl-devel、pam-devel、zlib-devel

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
mkdir /usr/local/src
cd /usr/local/src
rpm -ivh libopenssl-devel-1.0.1c-2.1.3.x86_64.rpm --nodeps --force
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm --nodeps --force
rpm -ivh zlib-devel-1.2.7-2.1.2.x86_64.rpm

【
	如果安装zlib出现报错,请使用这个:
	rpm -ivh zlib-devel-1.2.7-2.1.2.x86_64.rpm --nodeps --force
】

二、安装OpenSSL
1、检查系统自带的openssl

cd /usr/local/src 
rpm -q openssl
	=>openssl-0.9.8j-0.50.1
	
# 由于openssl依赖的软件太多,所以在升级openssl时,不用卸载旧的版本。如果强制卸载可能导致系统不能正常运行
openssl version
	=>OpenSSL 0.9.8j-fips 07 Jan 2009
	
# 检查openssl的目录
which openssl
	=>/usr/bin/openssl
	
# 在升级过程中将旧版的相关文件进行备份,在升级新版本后重新链接替换为新版本对应的文件目录
whereis openssl
	=>openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
	
ls /etc/ssl/
	=>certs  openssl.cnf  private  servercerts

# 备份上述文件,/usr/bin/X11/openssl为/usr/bin/openssl的软链接
mkdir /home/ssl_bak
mv /usr/bin/openssl /home/ssl_bak/
mv /etc/ssl /home/ssl_bak/etc_ssl
mv /usr/include/openssl /home/ssl_bak/include_openssl

备份完之后最后去路径中查一遍

2、升级openssl

1)安装openssl-1.0.2h.tar.gz
cd /usr/local/src
tar -zxf openssl-1.0.2h.tar.gz 
cd openssl-1.0.2h/
./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared zlib
make
make install(必须要这一步,否则可能会不能使用)

# 查看安装好的/usr/local/openssl目录文件
ls /usr/local/openssl/{bin,include,lib}
	=>/usr/local/openssl/bin:
		c_rehash  fips_standalone_sha1  fipsld  openssl

		/usr/local/openssl/include:
		openssl

		/usr/local/openssl/lib:
		engines         fips_premain.c.sha1  fipscanister.o.sha1  libcrypto.so        libssl.a   libssl.so.1.0.0
		fips_premain.c  fipscanister.o       libcrypto.a          libcrypto.so.1.0.0  libssl.so  pkgconfig

# 查看/etc/ssl目录
ls /etc/ssl/
	=>certs  man  misc  openssl.cnf  private

3、配置升级后的openssl的相关目录(链接openssl程序)

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig

# 查看升级的openssl版本
openssl version
	=>OpenSSL 1.0.2h  3 May 2016

三、卸载系统原有的OpenSSH

# 停止sshd服务
service sshd stop

# 查看当前的openssh版本
rpm  -qa  openssh*

# 卸载openssh
yum remove openssh*

如果卸载不了,可以使用此项
	
	# 使用rpm查询系统里面openssh的RPM软件包名称
	rpm -qa | grep openssh
	
	语法:rpm -e RPM包的名称
	rpm -e opensshxxx
	
	卸载完成之后再做下一步

四、安装 openssh

安装 openssh
yum install openssh-server
	如果安装不上,建议将yum源切换到阿里云,阿里云的是最新版的openssh
	切换见这里 https://www.qunniao.net/113.html


yum install openssh-server

vim  /etc/ssh/sshd_config
按以下图配置,主要是上面四个红箭头

关于centos7出现ssh版本过低出现的VE-2016-1009漏洞的修复思路(已验证)
关于centos7出现ssh版本过低出现的VE-2016-1009漏洞的修复思路(已验证)

参数详解
Port 22  #定义ssh监听的端口号,默认为22 
Protocol 2,1 #设置使用ssh协议的顺序,先使用ssh2,如果不成功再使用ssh 

Protocol 2  #设置只使用ssh2协议 
ListenAddress 0.0.0.0  #设置ssh服务器绑定的ip地址,默认为所有可用的ip地址 

PermitRootLogin yes #设置是否允许root登录,默认允许 
PermitEmptyPasswords no #设置是否允许空密码的客户登录,默认为禁止 
PasswordAuthentication yes #设置是否使用口令认证方式,如果要使用公钥认证方式,可将其设置为no 

启动服务
systemctl  start sshd

开机自启
systemctl  enable  sshd

然后就可以使用xshell连接了

本文所需资源我放在CSDN上了,也可私聊我:https://download.csdn.net/download/qq_15088653/18235551

上一篇:CentOS7开启SSH服务


下一篇:Openssh漏洞修补