zoukankan      html  css  js  c++  java
  • 【完美升级Openssh】redhat 6.8 x64升级SSH到OpenSSH_7.4p1

    需求:

    因openssh扫描存在漏洞,基于安全考虑,需要将openssh_7.1p1升级为openssh_7.4p1。

    操作如下:

    1.下载安装包:

    openssh的安装需要依赖zlib和openssl,因此要一并下载下来。

    注意:openssh最新版7.4p1依赖的openssl版本为1.0.2k,而不是其最新版1.1.0e(使用此版会升级失败)

    官网地址:

    http://www.zlib.net

    http://www.openssl.org

    http://www/openssl.org

    下载的安装包展示:

    openssh-7.4p1.tar.gz

    openssl-1.0.2k.tar.gz

    zlib-1.2.11.tar.gz

    2.查看系统当前安装的版本

    # ssh -V
    # rpm -qa zlib
    # openssl version
    

    3.配置本地yum源

    # vim /etc/fstab
    /mnt/rhel-server-6.8-x86_64-dvd.iso /media/RedHat-6.8-x86_64-DVD iso9660 loop   0   0
    
    # vim /etc/yum.repos.d/rhel-6.8-media.repo
    
    [RedHat-6.8-Media]
    name=Red Hat Enterprise Linux $releasever - $basearch -Media
    baseurl=file://media/RedHat-6.8-x86_64-DVD
    enabled=1
    gpgcheck=0
    gpgkey=file://media/RedHat-6.8-x86_64-DVD/RPM-GPG-KEY-redhat-release
    
    # mount /media/RedHat-6.8-x86_64-DVD
    

    4.安装telnet并启动telnet服务

    openssh升级过程中需要删除openssh,为了保证主机不失联,需要开启telnet连接通道。

    # yum安装telnet
    # yum -y install telnet-server*
    
    # 先关闭防火墙,否则telnet可能无法连接
    # service iptables stop
    # chkconfig iptables off
    
    # 编译/etc/xinetd.d/telnet,来启动telnet服务
    # vim /etc/xinetd.d/telnet
    disable值变更:  (yes ----> no)
    
    # 允许root用户通过telnet登录
    # mv /etc/securetty /etc/securetty.old 
      
    # 启动telnet服务
    # service xinetd start 
    
    # 设置telnet服务开机启动              
    # chkconfig xinetd on    
    
    # telnet登录验证                
    # telnet x.x.x.x
            
    

    5.安装编译工具包

    # yum  install gcc pam-devel zlib-devel -y
    

    6.升级zlib

    # tar -zxvf zlib-1.2.11.tar.gz
    # cd zlib-1.2.11
    # ./configure --prefix=/usr
    # make
    # 注意:此处需要卸载当前zlib(必须按顺序操作,lib64下涉及的模块丢失)
    # rpm -e --nodeps zlib
    # make install
    
    # 共享库文件注册到系统
    # echo '/usr/lib' >> /etc/ld.so.conf
    # 更新共享库cache
    # ldconfig                   
    

    7.升级openssl

    # 备份当前的openssl
    # mv  /usr/lib64/openssl /usr/lib64/openssl.old
    # mv  /usr/bin/openssl  /usr/bin/openssl.old
    # mv  /etc/pki/ca-trust/extracted/openssl  /etc/pki/ca-trust/extracted/openssl.old
    
    #如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库
    # cp  /usr/lib64/libcrypto.so.10  /usr/lib64/libcrypto.so.10.old
    # cp  /usr/lib64/libssl.so.10  /usr/lib64/libssl.so.10.old
    
    # 卸载但钱openssl
    # rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}
    
    # 安装openssl
    # tar -zxvf openssl-1.0.2k.tar.gz
    # cd openssl-1.0.2k
    # 必须加上--shared,否则编译时会因找不到新安装的openssl的类库而报错
    # ./config --prefix=/usr/local/ssl --openssldir=/etc/ssl --shared zlib  
    # make
    # make test                           
    # make install
    # 验证
    # openssl version -a     
    
    # 恢复共享库
    # mv  /usr/lib64/libcrypto.so.10.old  /usr/lib64/libcrypto.so.10
    # mv  /usr/lib64/libssl.so.10.old  /usr/lib64/libssl.so.10              
    

    8.升级openssh

    # 备份当前openssh
    # mv /etc/ssh /etc/ssh.old
    
    # 卸载当前openssh
    # 查看已安装的openssh
    # rpm -qa | grep openssh
    
    # 删除
    # rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}
    
    # openssh安装前环境配置 (要保证这里的命令都能执行正确)
    # install  -v -m700 -d /var/lib/sshd
    # chown  -v root:sys /var/lib/sshd
    # groupadd -g 51 sshd
    # useradd  -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 51 sshd
    
    # openssh_7.4p1源码安装
    # tar -zxvf openssh-7.4p1.tar.gz
    # cd openssh-7.4p1
    # 关联的检查配置项要特别注意
    # ./configure --prefix=/usr  --sysconfdir=/etc/ssh  --with-md5-passwords  --with-pam  --with-zlib --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/lib/sshd
    # make
    # make install
    
    # openssh安装后环境配置
    # install -v -m755    contrib/ssh-copy-id /usr/bin
    # install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1
    # install -v -m755 -d /usr/share/doc/openssh-7.4p1
    # install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.4p1
    
    #验证是否升级成功
    # ssh -V   
    
    # 启动openssh服务
    # echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
    # 配置允许root用户通过ssh登录
    # echo "PermitRootLogin yes" >> /etc/ssh/sshd_config  
    # cp -p contrib/redhat/sshd.init /etc/init.d/sshd
    # chmod +x /etc/init.d/sshd
    # chkconfig  --add  sshd
    # chkconfig  sshd  on
    # chkconfig  --list  sshd
    #注意:ssh连接会因重启openssh断开
    # service sshd restart
    # 此时需要通过telnet登入再执行sshd服务重启命令
    # telnet x.x.x.x
    # service sshd restart
    
    # 整理操作前备份
    # mv /etc/securetty.old /etc/securetty
    # chkconfig  xinetd off
    # service xinetd stop
    #如有必要,可重新开启防火墙
    # service iptables start
    # chkconfig iptables on
    
    # 如需要还原操作前的ssh配置信息,可直接删除升级后的配置信息(不想修复的,请忽略)
    # rm -rf /etc/ssh
    # mv /etc/ssh.old /etc/ssh
    
    # (如有必要)最后可以重新配置主机间的ssh互信
    

      

  • 相关阅读:
    KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
    KnockoutJS 3.X API 第五章 高级应用(3) 虚拟元素绑定
    KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定
    KnockoutJS 3.X API 第五章 高级应用(1) 创建自定义绑定
    KnockoutJS 3.X API 第四章(14) 绑定语法细节
    KnockoutJS 3.X API 第四章(13) template绑定
    KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
    KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
    KnockoutJS 3.X API 第四章 表单绑定(10) textInput、hasFocus、checked绑定
    KnockoutJS 3.X API 第四章 表单绑定(9) value绑定
  • 原文地址:https://www.cnblogs.com/share100/p/6862635.html
Copyright © 2011-2022 走看看