OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478) 升级OpenSSH服务

来源:互联网 发布:如何学好日语知乎 编辑:程序博客网 时间:2024/06/06 08:59
环境描述:
Linux 5.7 x86-64Bit  + Oracle 11.2g  

问题描述:
OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478) 
当J-PAKE启用时,OpenSSH 5.6及之前版本不能正确验证J-PAKE协议中的公共参数。远程攻击者可以通过发送每一轮协议中的特制值绕过共享秘密信息的需求,并成功获得认证。

解决方法:
升级OpenSSH版本、从OpenSSH_4.3p2 升级到OpenSSH_6.6p1

1、程序准备
下载SSH 源代码:
http://www.openssh.com/portable.html
上传openssh-6.6p1.tar.gz 到服务器
/tmp/orcl/openssh 目录下

2、查询当前SSH版本
[root@orcl-db-01 ~]rpm -qa|grep openssl
openssl-0.9.8e-20.el5
openssl097a-0.9.7a-9.el5_4.2
openssl-devel-0.9.8e-20.el5
openssl097a-0.9.7a-9.el5_4.2
openssl-0.9.8e-20.el5
openssl-devel-0.9.8e-20.el5

[root@orcl-db-01 ~]# rpm -qa|grep openssh
openssh-clients-4.3p2-72.el5_6.3
openssh-4.3p2-72.el5_6.3
openssh-askpass-4.3p2-72.el5_6.3
openssh-server-4.3p2-72.el5_6.3

[root@orcl-db-01 ~]# rpm -qa|grep zlib   
zlib-devel-1.2.3-4.el5
zlib-devel-1.2.3-4.el5
zlib-1.2.3-4.el5
zlib-1.2.3-4.el5

[root@orcl-db-01 ~]# ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

3、备份原rpm启动脚本sshd 
cp /etc/init.d/sshd /tmp/orcl/openssh/

4、停止及删除ssh服务
注意:
停止之后将无法连接到SSH服务器上、停止之前多建立几个Xshell连接窗口
/etc/init.d/sshd stop

.删除原rpm openssh软件包
rpm -e  openssh-server  openssh-5.3p1  openssh-clients  openssh-askpass  --nodeps
rpm -e openssh-server-4.3p2-72.el5_6.3 openssh-4.3p2-72.el5_6.3 openssh-clients-4.3p2-72.el5_6.3 openssh-askpass-4.3p2-72.el5_6.3

[root@orcl-db-01 ~]# rpm -qa|grep openssh
[root@orcl-db-01 ~]# 

6、安装新版本ssh服务
cd /tmp/orcl/openssh

解压源码补丁安装包
tar -zxvf openssh-6.6p1.tar.gz

进入该目录
cd /tmp/orcl/openssh/openssh6.0p1

配置指定安装目录  同时不检查zlib版本(节省时间如果zlib版本过低那么就会造成openssh的源文件无法编译成功)

./configure --prefix=/usr --sysconfdir=/etc/ssh --without-zlib-version-check 
make && make install

7.检查是否升级成功
[root@orcl-db-01 openssh-6.6p1]# ssh -V
OpenSSH_6.6p1, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

8.拷贝启动脚本到/etc/init.d/下
cp /tmp/orcl/openssh/sshd /etc/init.d/

9.开启服务
/etc/init.d/sshd start

报错信息:
[root@orcl-db-01 ~]# /etc/init.d/sshd start
cp: 无法创建一般文件“/var/empty/sshd/etc”: 没有那个文件或目录
启动 sshd:                                                [确定]

只需创建/var/empty/sshd/etc文件夹,后面启动将不会报错。


10.设置SSHD服务为开机启动
chkconfig --add sshd
chkconfig sshd on

11、检查端口是否正常
netstat -an |grep :22

12.修改ssh配置文件
vim /etc/ssh/sshd_config 修改配置文件

sshd配置文件路径/etc/ssh/sshd_config
Protocol 2      #为使用的协议
X11Forwarding yes    #允许窗口图形传输使用ssh加密 yes允许
IgnoreRhosts yes     #完全禁止sshd使用.rhosts文件 yes禁止
RhostsAuthentication no #不设置使用基于rhosts的安全验证
RhostsRSAAuthentication no #不设置使用RSA算法的基于rhosts的安全认证
HostbasedAuthentication no #不允许基于主机白名单的方式认证
PermitEmptyPasswords no #不允许空密码

给以下增加注释
#GSSAPICleanupCredentials no 是否在用户退出登录后自动销毁用户凭证缓存。默认值是"yes"。仅用于SSH-2
#GSSAPIAuthentication 是否允许使用基于 GSSAPI 的用户认证。默认值为"no"。仅用于SSH-2。
#USEPAM=YES 使用pam认证 NO
0 0