精华内容
下载资源
问答
  • openssh升级

    千次阅读 2020-12-14 10:55:05
    在实际生产环境中可能会进行安全扫描,如果你的机器openssh版本太低那么就会存在漏洞,而处理方法也很简单就是将openssh升级。由于openssh依赖于openssl所以升级openssh的同时需要一并升级openssl,目前这里升级的...

    升级前配置及说明

    在实际生产环境中可能会进行安全扫描,如果你的机器openssh版本太低那么就会存在漏洞,而处理方法也很简单就是将openssh升级。由于openssh依赖于openssl所以升级openssh的同时需要一并升级openssl,目前这里升级的版本为openssh-8.0p1openssl-1.0.2r.在升级的时候由于是通过源码编译的方式进行升级的所以还需要一些其他的依赖包。这些依赖包为了减少因为依赖以及版本的问题将通过yum来进行安装,没有网络需要通过光盘创建一个本地yum仓库。并且由于openssh为系统基础服务,升级失败会对系统产生很大的影响会导致服务器服无法通过ssh协议登录,所以升级前需要将整个系统进行备份,以及安装开启telnet服务。还有需要注意的是为了避免其他问题,在升级的时候建议使用root用户的权限来执行操作。在远程连接的时候由于是开启了telnet的,所以可以通过telnet来连接进行操作。这样可以避免权限以及程序占用的问题。由于centos6和centos7存在一定区别,所以两个版本我都会给出对应的命令。

    因为每个服务器的环境可能存在一定差异所以如果是升级生产的服务器建议在测试服务器中测试一遍

    安装开启telnet

    这一步一定要做,如果openssh升级失败,那通过ssh协议就连不上服务器了,这时我们就可以通过telnet来连接服务器进行回滚操作。不然你哭都不知道去那里哭

    • 查看是否已经安装了telnet

      • rpm -qa | grep telnet
        rpm -qa | grep xinetd
        
      • 已安装结果:

      • 在这里插入图片描述

    • 如果没有安装则进行安装

      • yum -y install xinetd
        yum -y install telnet
        yum -y install telnet-server
        
    • 配置telnet

      • centos6修改配置文件

        • 修改配置文件/etc/xinetd.d/telnet 将里面的”disable= yes”改成” disable=no” ,修改后结果
        • 在这里插入图片描述
      • centos7修改配置文件

        • 在/etc/securetty文件末尾增加一些pts终端,直接加在末尾就可以了

          • pts/0
            pts/1
            pts/2
            pts/3
            
      • 配置开机自启动

      • #centos6
        chkconfig --add xinetd
        chkconfig --add telnet
        chkconfig xinetd on 
        chkconfig telnet on
        #centos7
        systemctl enable xinetd
        systemctl enable telnet.socket
        systemctl start xinetd
        systemctl start telnet.socket
        
      • 防火墙开启23号端口,当然也可以直接关闭防火墙 ,这里选择关闭防火墙

      • #开启23号端口
        iptables -I INPUT -p tcp --dport 23 -jACCEPT 
        iptables -I INPUT -p udp --dport 23 -jACCEPT 
        #保存 
        service iptables save
        #重启防火墙 
        service iptables restart 
        
        #关闭防火墙!
        #centos6
        service iptables stop
        #centos7
        systemctl stop firewalld.service
        #查看防火墙状态
        #centos6
        service iptables status
        #centos7
        firewall-cmd --state
        
    • 测试telnet

      • telnet ip
        #或直接用远程连接工具选择telnet协议以及23号端口连接
        

    测试成功后telnet安装完成

    系统备份

    为了避免openssh升级导致ssh不可用,所以建议在升级前对系统进行备份。备份的方式有很多种,这里采用最简单的直接将文件打包备份,如果有更好的可以使用自己的方式。注意:这里最好用root用户执行

    备份方式,如果有自己的备份方式就使用自己的,这里只是给出一种备份方案。并且这种备份方式在恢复的时候需要重启机器。

    备份前准备:

    #在备份前先去看看openssh是否为开机自启动的,如果不是设置为开机自启动
    #centos6
    chkconfig --list
    #centos7
    systemctl  list-unit-files |  grep enable | grep sshd
    
    # 设置开机自启动
    #centos6
    chkconfig --add sshd
    chkconfig sshd on 
    #centos7
    systemctl enable sshd
    
    #查看SElinux是否为强制状态,如果是则修改为非强制状态
    #获取SElinux状态:
    getenforce
    #如果结果为enforcing,则进行修改
    setenforce 0
    #或修改配置文件,永久生效。
    #配置文件位置:/etc/sysconfig/selinux 以及 /etc/selinux/config
    #内容修改为
    SELINUX=permissive
    

    备份:

    
    #先创建备份目录
    mkdir /back_up
    #将还原脚本restore.sh上传到/back_up中
    
    #执行打包备份命令
    tar -czpvf /back_up/backup.tgz /etc /usr 2>>/back_up/tar.errors.log 
    #可能会有点久
    

    这里还原脚本内容为:

    #!/bin/bash
    tar -xzpvf /back_up/backup.tgz -C /;
    restorecon -Rv /;
    reboot;
    

    安装依赖包

    这里包括升级需要的组件以及跟编译相关的

    yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
    yum install  -y pam* zlib*
    

    编译安装openssl和openssh

    这里需要使用有管理员权限的用户来执行,以及通过telnet连接来进行操作

    安装openssl

    1. openssl-1.0.2r.tar.gz上传到系统某个目录下面,这里上传到了/updatePackage下面

    2. 解压:tar xfz openssl-1.0.2r.tar.gz

    3. 备份会替换的文件

      mv /usr/bin/openssl /usr/bin/openssl_bak
      mv /usr/include/openssl /usr/include/openssl_bak
      
    4. 编译安装

      #进入openssl解压目录执行
       ./config shared && make && make install
       #执行完成后,查看是否编译安装成功
       echo $?
       #如果输出0表示没有问题
      
    5. 文件替换

      #为之前备份的2个文件或者目录做软链接 
      ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
      ln -s /usr/local/ssl/include/openssl /usr/include/openssl
      
    6. 加载配置

      echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
      /sbin/ldconfig
      
    7. 查看版本

      openssl version
      #如果版本为1.0.2r表示openssl升级成功
      

    安装openssh

    1. openssh-8.0p1.tar.gz上传到系统某个目录下面,这里上传到了/updatePackage下面

    2. 解压:tar xfz openssh-8.0p1.tar.gz

    3. 为了避免权限的问题可以在重新改一下权限:chown -R root.root /updatePackage/openssh-8.0p1

    4. 备份会替换的文件

      mv /etc/ssh /etc/ssh_back
      
    5. 执行编译安装

      ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install
       #执行完成后,查看是否编译安装成功
       echo $?
       #如果输出0表示没有问题
      
    6. 修改配置文件:/etc/ssh/sshd_config

      在配置文件中添加:PermitRootLogin yes(限定root用户通过ssh的登录方式,允许) 和 UseDNS no(ip反解,关闭),自己看情况是否需要这样做

      #查看修改后结果
      grep "^PermitRootLogin"  /etc/ssh/sshd_config
      grep  "UseDNS"  /etc/ssh/sshd_config
      #输出
      #PermitRootLogin yes
      #UseDNS no
      
    7. 文件替换

      cp -a /updatePackage/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
      cp -a /updatePackage/openssh-8.0p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
      chmod +x /etc/init.d/sshd
      
    8. 添加开机自启动

      #centos6
      chkconfig --add sshd
      chkconfig sshd on 
      #centos7
      systemctl enable sshd
      #centos7还得多做一步,把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务
      mv  /usr/lib/systemd/system/sshd.service  /back_up/
      
    9. 重启ssh

      #centos6
      service sshd restart
      #centos7
      systemctl restart sshd.service
      #看是否启动成功
      #启动成功后通过ssh -V查看版本结果应为:OpenSSH_8.0p1, OpenSSL 1.0.2r
      

    升级完成后处理

    成功

    升级完成后通过ssh来远程登录程序,没问题的话可以正常登录。然后有需要可以将telnet卸载,开机自启动删除,将23号端口的iptables规则删除。当然也可以不处理

    失败

    如果失败了,那么就将系统还原。

    #脚本添加运行权限,然后运行
    chmod +x /back_up/restore.sh
    nohup /back_up/restore.sh &
    

    注意:在运行这个脚本的时候备份文件必须要是/back_up/backup.tgz,如果备份的时候叫其他名称,请自行修改脚本。还有脚本不能运行为前台且跟终端相关进程,因为经测试发现在还原的时候ip会被冲掉。所以远程连接会断掉

    最后需要注意的是执行脚本会重启机器哦。

    展开全文
  • OpenSSH升级

    千次阅读 2021-03-06 14:14:58
    OpenSSH是SSH协议的免费开源...升级OpenSSH升级前首先需要升级OpenSSL。 本升级教程仅针对CentOS7 预处理防止升级过程中连接中断 #安装telnet服务 yum -y install telnet-server #启动telnet服务 systemctl start tel

    OpenSSH是SSH协议的免费开源实现,经常会曝出安全漏洞,由于CentOS7自带的OpenSSH版本(OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017)太低,有必要进行新服务器的OpenSSH版本升级。升级OpenSSH升级前首先需要升级OpenSSL
    本升级教程仅针对CentOS7

    预处理防止升级过程中连接中断

    #安装telnet服务
    yum -y install telnet-server
    #启动telnet服务
    systemctl start telnet.socket
    #开启防火墙23端口
    firewall-cmd --permanent --add-port=23/tcp --zone=public
    firewall-cmd --reload
    #windows打开cmd窗口,telnet即可登陆服务器
    telnet [服务器ip]
    #默认情况下,linux不允许root用户以telnet方式登录linux主机,移除securetty文件
    mv /etc/securetty{,.bak}
    之后就可以用root登录
    

    由于telnet是明文传输,不安全,所以升级完成后,必须停止该服务

    停止服务并卸载原有的OpenSSH

    ::: danger

    同时打开两个ssh窗口,并在其中的一个窗口中运行top命令,防止升级过程中会话中断无法连接服务器

    :::

    systemctl stop sshd
    #查看rpm安装的ssh
    rpm -qa | grep openssh
    #卸载rpm安装的ssh
    rpm -e openssh --nodeps && rpm -e openssh-clients --nodeps && rpm -e openssh-server --nodeps
    #查看rpm安装的ssh是否卸载
    rpm -qa | grep openssh         
    

    预操作

    #安装相关依赖
    yum install -y pam* zlib*
    #备份原ssh配置
    mv /etc/ssh /etc/ssh_bak
    

    安装OpenSSL(1.1.1g)

    mkdir ./sshupdate
    cd ./sshupdate
    wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
    tar -xzvf openssl-1.1.1g.tar.gz
    cd openssl-1.1.1g
    ./config --prefix=/usr/ --openssldir=/usr/ shared
    make && make install
    #完成后看下openssl版本
    openssl version
    OpenSSL 1.1.1g  21 Apr 2020
    

    安装OpenSSH(8.3p1)

    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
    tar -xzvf openssh-8.3p1.tar.gz
    cd openssh-8.3p1
    ./configure --with-zlib --with-ssl-dir --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
    make && make install
    cp contrib/redhat/sshd.init /etc/init.d/sshd
    #完成后看下ssh版本
    ssh -V
    OpenSSH_8.3p1, OpenSSL 1.1.1g  21 Apr 2020
    

    修改配置文件

    vim /etc/ssh/sshd_config
    查找#PermitRootLogin prohibit-password 改成 PermitRootLogin yes 并取消注释
    同时如果端口非22端口,需要更改为对应端口
    
    #关闭selinux
    sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    setenforce 0
    

    重启OpenSSH

    nohup service sshd restart
    nohup systemctl restart sshd
    #添加到自启动
    chkconfig --add sshd
    

    测试

    重开窗口连接对应服务器,如ssh跳转登录失败的,清空/root/.ssh/下面的文件即可。

    展开全文
  • openssh 升级

    2016-07-05 17:27:13
    CentOS 6.5升级openssh至7.2p2一、环境描述1)操作系统:CentOS 6.5 64位2)Openssh升级前版本:openssh-5.3p1-94.el6;Openssh升级后版本:openssh_7.2p2(源码安装)3)连接工具xshell 4。要预防超时断开连接。二...

    CentOS 6.5升级openssh至7.2p2


    一、环境描述

    1)操作系统:CentOS 6.5 64位

    2)Openssh升级前版本:openssh-5.3p1-94.el6;Openssh升级后版本:openssh_7.2p2(源码安装)

    3)连接工具xshell 4。要预防超时断开连接

     

    二、升级sshd到OpenSSH-7.2并删除老版本ssh

    1)升级前准备

    下载openssh-7.2p2.tar.gz


    http://ftp.hostserver.de/pub/OpenBSD/OpenSSH/portable/openssh-7.2p2.tar.gz



    备份ssh配置文件 :

    # mv /etc/ssh /etc/ssh.bak

    查看是否缺包

    # rpm -qa | egrep "gcc|make|perl|pam|pam-devel|zlib|zlib-devel|openssl|openssl-devel"

    如果有配置yum了的话可以直接yum安装这些包,这样既可以检验是否装了,没装的直接装上。

    yum -y install gcc* make perl pam pam-devel zlib zlib-devel openssl openssl-devel

    先卸载完旧版本的openssh   
    # rpm -e `rpm -qa | grep openssh`

    2)编译安装新版本openssh

    # tar zxf openssh-7.2p2.tar.gz && cd openssh-7.2p2

    如果需要伪装ssh显示的版本信息,先修改version.h文件:

    wpsC832.tmp

    # ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords   
    # make

    # make install

    3)查看是否升级到新版本

    wpsC843.tmp

    4)复制启动脚本到/etc/init.d

    # cp /root/openssh-7.2p2/contrib/redhat/sshd.init  /etc/init.d/sshd

    加入开机自启

    # chkconfig --add sshd

    wpsC853.tmp

    5)启动sshd,用start或reload。不要restart,restart 会直接断开连接,而并不会接着启动sshd服务,这时候要通过其他途径进入机器,然后启动sshd服务才行。

    wpsC854.tmp

    如果xshell4连接不上,修改配置使其可以用root账号远程登陆,使xshell4默认支持

    wpsC855.tmp

    PermitRootLogin yes

    wpsC857.tmp


    转载于:https://blog.51cto.com/03301216/1796028

    展开全文
  • Openssh升级

    2015-01-12 23:29:19
    Openssh升级一、实验环境操作系统:预装Red Hat EL6.4 64位桌面服务器IP:192.168.0.104二、前期准备①准备安装openssh-6.7p1.tar.gzopenssl-1.0.1j.tar.gz②利用dropbear进行备用,可参考dropbear的安装篇主要是...

    Openssh升级

    一、实验环境

    操作系统:预装Red Hat EL6.4 64桌面

    服务器IP192.168.0.104

     

    二、前期准备

    ①准备安装

            

    openssh-6.7p1.tar.gz

    openssl-1.0.1j.tar.gz

     

    ②利用dropbear进行备用,可参考dropbear的安装篇

    主要是利用dropbear进行ssh远程,因升级openssh过程中原ssh将无法使用

     

    ③预先安装gcc

    yum install –y gcc;

    三、升级OpenSSLopenssl-1.0.1j

    ①解压openssl-1.0.1j.tar.gz

    cd /tmp; tar -zxvf openssl-1.0.1j.tar.gz;

     

    ②删除旧版OpenSSL

    rpm -e `rpm -qa | grep openssl` --allmatches --nodeps;

     

    安装OpenSSL

    cd openssl-1.0.1j;

    ./config --prefix=/usr –shared;

    make;

    make test;

    make install;

     

    --shared选项, 否则openssh编译的时候会找不到新安装的openssllibrary, 会报错: openssl headerlibrary版本不匹配

     

    ④查看OpenSSL版本

    wKioL1Sz6KSwMw2tAAEsLkmo58c663.jpg

    四、升级sshdOpenSSH-6.7

    执行命令安装如下包:

    yum -y install gcc* make perl pam pam-devel;

     

    ②解压openssh-6.7p1.tar.gz

    cd /tmp;tar –zxvf openssh-6.7p1.tar.gz;

     

    删除旧版OpenSSH

    rpm -e `rpm -qa | grep openssh`  --allmatches--nodeps;

     

    ④安装OpenSSH

    cd openssh-6.7p1; ./configure --prefix=/usr --sysconfdir=/etc/ssh--with-pam --with-zlib --with-md5-passwords;

    make;make install

     

    查看OpenSSH版本

    wKioL1Sz6N6ilJyHAABDXnzgozs433.jpg

     

    ⑥设置开机启动

    拷贝启动脚本

    cp /tmp/openssh-6.7p1/contrib/redhat/sshd.init /etc/init.d/sshd;

    设置开机启动

    chkconfig –add sshd;

    五、删除dropbear

    rpm –e dropbear –allmatches

     

    六、可能会出现的问题

    libssl.so.10:cannot open sharedobjectfile:NO such file or directory

    libcrypto.so.10: cannot open sharedobjectfile:NO such file or directory

     

     

    解决办法:

    #cd /usr/lib64

    #ln –s libssl.so.1.0.0 libssl.so.10

    #ln –s libcrypto.so.1.0.0 libcrypto.so.10


    转载于:https://blog.51cto.com/lythjq/1602660

    展开全文
  • Openssh 升级

    2020-05-13 11:21:29
    环境: [root@localhost /]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)[root@localhost /]# ssh -V OpenSSH_7.4p1, ...1、安装telnet-server以及xinetd,防止升级失败无法连接远程服务器..
  • OpenSSH 升级

    千次阅读 2019-06-04 22:36:26
    1、下载7.4p1 ,链接如下 http://www.openssh.com/portable.html 2、安装依赖包 yum install -y gcc yum install -y zlib-devel yum install -y openssl-devel 3、安装软件包 ...cd openssh-7....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,017
精华内容 4,406
关键字:

openssh升级