• 升级openssh漏洞


    升级openssl和openssh

    最近接收到客户的漏洞提醒,openssl和openssh的漏洞,解决办法就只有升级。

    升级前环境

    ~]# ssh -V
    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    ~]# rpm -qa | grep openssl
    openssl-1.0.1e-15.el6.x86_64
    ~]# uname -r
    2.6.32-431.el6.x86_64
    ~]# rpm -qa |grep zlib
    zlib-1.2.3-29.el6.x86_64
    zlib-devel-1.2.3-29.el6.x86_64
    

    升级前后:

    升级前 升级后
    Openssl Openssl_1.0.1e-fips openssl-1.0.2j
    Openssh Openssh_5.3p1 Openssh-6.9p1

    升级前准备

    为了防止升级openssh过程中出现问题,ssh连接断开,需要保证连接不能断开,此处使用telnet连接,也可安装别的dropbear等
    telnet只允许普通用户登陆

    ~]# yum install telnet_server telnet -y
    ~]# vim /etc/xinetd.d/telnet
    将disable项由yes改成no
    
    ~]# service xinetd restart
    重启后即可连接
    

    操作过程

    一、安装zlib

    源码安装openssh、openssl,为了避免zlib库文件版本过低,同时编译安装zlib库

    ~]# tar xf zlib-1.2.7.tar.gz
    ~]# cd zlib-1.2.7
    ~]# ./configure --shared
    ...
    Checking for return value of vsnprintf()... Yes.
    Checking for attribute(visibility) support... Yes.
    **Looking for a four-byte integer type... Found.** 
    //这个是由于zlib并非使用的标准autotools,没有考虑交叉编译的情况,这个错误是执行测试程序导致的,用于检测32bit整型是int还是long还是别的,该错误无关紧要,可以忽略
    
    
    ~]# make && make test
    ~]# make install
    

    二、安装openssl

    由于openssh依赖于openssl库,所以在安装openssh前要先安装openssl库

    ~]# tar xf openssl-1.0.2j.tar.gz
    ~]# cd openssl-1.0.2j
    ~]# ./config shared //默认安装路径(/usr/local/ssl)
    ~]# make && make test  //测试没报错,继续往下执行
    ~]# make install
    
    备份及软链接命令:
    ~]# mv /usr/bin/openssl{,_bak}
    ~]# mv /usr/include/openssl{,_bak}
    ~]# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ~]# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    
    搜索出可共享的动态链接库,进而创建出动态装入程序(ld.so)所需的连接和缓存文件,让刚安装的openssl动态链接库为系统所共享。
    ~]# sed -i '1 i /usr/local/ssl/lib' /etc/ld.so.conf  //在文件行首添加新安装的openssl
    ~]# ldconfig //加载
    
    
    查看版本:
    ~]# openssl version -a
    **OpenSSL 1.0.2j  26 Sep 2016**
    built on: reproducible build, date unspecified
    platform: linux-x86_64
    options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
    compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
    OPENSSLDIR: "/usr/local/ssl"
    

    三、安装openssh

    更新openssh前,为了防止ssh连接断开,最好先telnet进服务器,防止意外发生

    ~]# mkdir /usr/local/myssh/ssh -p  //安装在自己新建的目录里
    ~]# tar xf openssh-7.4p1.tar.gz
    ~]# cd openssh-7.4p1
    ~]# ./configure --prefix=/usr/local/myssh --sysconfdir=/usr/local/myssh/ssh --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
    
    ~]# make && make install
    
    
    备份及软链接命令:
    ~]# mv /etc/init.d/sshd{,_bak}
    ~]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd   //拷贝启动脚本
    ~]# chmod u+x /etc/init.d/sshd
    
    ~]# mv /usr/sbin/sshd{,_bak}
    ~]# ln -s /usr/local/myssh/sbin/sshd /usr/sbin/sshd //sshd命令
    
    ~]# mv /usr/bin/ssh-keygen{,_bak}
    ~]# ln -s /usr/local/myssh/bin/ssh-keygen /usr/bin/ssh-keygen //老的ssh-keygen默认没有-A参数,如果不链接,就会有提示信息“ssh-keygen: illegal option -- A”
    
    ~]# mv /usr/bin/ssh{,_bak}
    ~]# mv /usr/local/myssh/
    
    
    查看版本:
    ~]# ssh -V
    OpenSSH_7.4p1, OpenSSL 1.0.2j  26 Sep 2016
    
    修改配置文件,并检验升级是否成功
    ~]# vim /usr/local/myssh/ssh/sshd_config 
    

    修改如下配置项:

    • PermitRootLogin yes //允许root用户登陆
  • 相关阅读:
    Flink读取Kafka数据,进行汇总
    Flink集成到CDH上,并运行一个例子
    CDH6.2安装配置第三篇:前台页面配置讲解
    LINUX之ntp时间同步服务配置
    Dubbo+Zookeeper(一)Zookeeper初识
    SpringCloud(五)Zuul网关与分布式配置中心
    SpringCloud(四)Hystrix熔断器
    SpringCloud(三)Ribbon与Feign
    SpringCloud(二)服务注册与发现
    多线程与高并发(六) Lock
  • 原文地址:https://www.cnblogs.com/dance-walter/p/9047041.html
Copyright © 2020-2023  润新知