Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1250530
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1769
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-13 16:19
个人简介

努力, 努力, 再努力

文章分类

全部博文(220)

文章存档

2018年(8)

2017年(46)

2016年(75)

2015年(92)

我的朋友

分类: 系统运维

2017-01-23 11:35:38

引用:https://my.oschina.net/ulink/blog/810186


. openSSH漏洞

       2016-12-19发布:

      CVE-2016-10009sshd 服务器可以利用转发的 agent-socket 文件欺骗本机的 ssh-agent 加载一个恶意 PKCS#11 模块,任意执行代码。换句话说,是恶意服务器在客户端的机器上远程执行代码。、

       CVE-2016-10010:关闭 UsePrivilegeSeparation 权限隔离功能时,ssh 转发的 socket 文件将以 root 权限创建。

       CVE-2016-10011:即使打开权限隔离,假如攻击者可以让 sshd 创建的子进程提权,那么服务器私钥理论上可能通过 realloc() 的过程泄漏给子进程。

       CVE-2016-10012sshd 服务器如果启用了认证前压缩(也就是 Compression yes),其中的某些边界检查可能会被编译优化去除,导致攻击者有可能从经过权限隔离的子进程中攻击高权限的父进程。

       无名漏洞AllowUsers  DenyUsers 选项可以接受无效的 IP 段。假如管理员想拉黑用户,但却输入了无效的 IP 段,那么用户就不会被禁止登录,而管理员也不知道。

. 环境描述

      1. 安装openssh7.4p1在以下系统环境中通过:

                  (1) CentOS release 6.8 (Final) 内核:2.6.32-642.el6.x86_64

                  (2) CentOS release 6.5 (Final)  内核:2.6.32-431.el6.x86_64

     2. 软件版本

                  zlib-devel-1.2.3-29.el6.x86_64

                  zlib-1.2.3-29.el6.x86_64

      3.  openssh版本和openssl版本

                  [root@wdcp ~]# ssh -V

                  OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

                  [root@wdcp ~]# openssl version

                  OpenSSL 1.0.1e-fips 11 Feb 2013

      4.  对软件版本要求

                  参考链接:

                 

 

                  Zlib 1.1.4 or 1.2.1.2 或者更高的版本

              OpenSSL >= 0.9.8f < 1.1.0 也就是0.98f, 1.0.1, 1.0.23个系列的版本就

              支持

              Openssh官网明确声明, openssh7.4p1不支持OpenSSL 1.1.0系列的版本

              特别说明一下, 0.98f, 1.0.1x, 1.0.2x 是各自独立发展的版本

              换句话说,1.0.1并不是0.98f的升级版本, 1.0.2也不是1.0.1的升级版

              目前, openssh官网不再为0.98f, 1.0.1系列的openSSH提供升级服务

              仅支持1.0.2X, 1.1.0x

 

. 依赖包安装

      1. YUM安装依赖包

       yum install gcc zlib-devel openssl-devel pam-devel –y

      

       gcc:  C编译器

       zlib-devel: Header files and libraries for Zlib development

       openSSH会用到该开发包

       pam-devel: PAM认证软件开发包,通过ssh密码登录就会用到PAM功能

      2. 源码安装openssl 1.0.2j (官网最新稳定版)

              说明:centos6.5, centos6.8默认安装的openssl都是1.0.1e

                       即使不升级openssl也可以正常安装openssh7.4p1
                      
但是openssl1.0.1e存在著名的“心脏流血”漏洞,及其它诸多漏

                       洞,如果不升级openssl 仅升级openssh没什么意义,并没有

                       实质上提高安全防护能力

       (1)下载openssl

              wget

              或者:

       wget --no-check-certificate

      

       (2) 解压: tar zxvf openssl-1.0.2j.tar.gz

       (3) 编译安装:

              cd openssl-1.0.2j

              ./config  && make  && make install

       (4) 创建快捷链接:

              mv /usr/bin/openssl /usr/bin/openssl_v101e   (先将原来的openssl改名)

              ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl  

 

       (5) 验证:

              [root@wdcp openssl-1.0.2j]# openssl version

              OpenSSL 1.0.2j  26 Sep 2016

 

. openSSH7.4p1的安装

      1. 下载:

         wget

      2. 解压:

                  tar zxvf openssh-7.4p1.tar.gz

      

       3. 配置,环境检查

              [root@wdcp openssh-7.4p1]# ./configure   --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords   --with-pam  --with-tcp-wrappers   --with-ssl-dir=/usr/local/ssl   --without-hardening

 

       安装后的结果:

       OpenSSH has been configured with the following options:

                     User binaries: /usr/bin

                   System binaries: /usr/sbin

               Configuration files: /etc/ssh

                   Askpass program: /usr/libexec/ssh-askpass

                      Manual pages: /usr/share/man/manX

                          PID file: /var/run

  Privilege separation chroot path: /var/empty

            sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin

                    Manpage format: doc

                       PAM support: yes

                   OSF SIA support: no

                 KerberosV support: no

                   SELinux support: no

                 Smartcard support:

                     S/KEY support: no

              MD5 password support: yes

                   libedit support: no

  Solaris process contract support: no

           Solaris project support: no

         Solaris privilege support: no

       IP address in $DISPLAY hack: no

           Translate v4 in v6 hack: yes

                  BSD Auth support: no

              Random number source: OpenSSL internal ONLY

             Privsep sandbox style: rlimit

 

       注意:--with-pam 编译时加载pam模块,该模块用于认证密码登录

                --with-ssl-dir=/usr/local/ssl 编译时指定openSSL的引用位置,即Openssl 1.0.2j的安装路径

                --without-hardening 不检查openssl的头文件
     --with-md5-passwords    Enable use of MD5 passwords   

                    

       4. 编译,安装

       [root@ssh74 openssh-7.4p1]# make && make install

 

       /etc/ssh/ssh_config already exists, install will not overwrite

       /etc/ssh/sshd_config already exists, install will not overwrite

       /etc/ssh/moduli already exists, install will not overwrite

       ssh-keygen: generating new host keys: ECDSA ED25519

       /usr/sbin/sshd -t -f /etc/ssh/sshd_config

       /etc/ssh/sshd_config line 81: Unsupported option GSSAPIAuthentication

       /etc/ssh/sshd_config line 83: Unsupported option GSSAPICleanupCredentials

      

       5. 注释GSSAPI,启用root登录

              sed -i '/GSSAPIAuthentication yes/s/GSSAPIAuthentication yes/#GSSAPIAuthentication yes/' /etc/ssh/sshd_config

              sed -i '/GSSAPICleanupCredentials yes/s/GSSAPICleanupCredentials yes/#GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config

              sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config

 

       6. 重启sshd

              /etc/init.d/sshd restart

      

       7. 版本验证

       [root@wdcp ssh]# ssh -V

       OpenSSH_7.4p1, OpenSSL 1.0.2j  26 Sep 2016

阅读(3072) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~