zoukankan      html  css  js  c++  java
  • Linux系统升级更新openssh 7.3p1

     放在最前面:鉴于网上爬虫猖獗,博客被盗时有发生,这里需要来个链接,大家请认准来自博客园的Scoter:http://www.cnblogs.com/scoter2008,本文将持续更新

    最近绿盟给扫描出了几个漏洞,都是关于openssh的,于是仔细看了一下,即使是最新版的CentOS 7.2也还在用openssh 6.6.1p1,yum update更新无济于事,那么只有我们自己动手了

    CentOS 7.2更新过程

    1、查看一下openssh的版本信息

    [root@localhost ~]# ssh -V
    OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    

    2、备份文件,备份一下/etc/ssh/sshd_config文件,安装完成后可以参考

    [root@localhost ssh]# mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    

    3、升级的思路是将新版openssh制作成rpm包,然后安装更新(这是尝试了几种方法后,感觉最好的一种),这里先安装编译所需工具

    yum groupinstall -y Development tools
    yum install -y pam-devel rpm-build rpmdevtools zlib-devel krb5-devel tcp_wrappers tcp_wrappers-devel tcp_wrappers-libs libX11-devel xmkmf libXt-devel wget openssl openssl-devel
    

     4、配置RPM编译环境

    cd ~
    mkdir rpmbuild
    cd rpmbuild
    mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
    

    5、生成openssh的RPM安装包

    5.1、下载源码包

    cd ~/rpmbuild/SOURCES/
    wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz 
    wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
    

    5.2、配置SPEC文件

    cd ~/rpmbuild/SPECS/
    tar zxf ../SOURCES/openssh-7.3p1.tar.gz openssh-7.3p1/contrib/redhat/openssh.spec
    mv openssh-7.3p1/contrib/redhat/openssh.spec openssh-7.3p1.spec
    rm -fr openssh-7.3p1
    sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh-7.3p1.spec
    sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh-7.3p1.spec
    sed -i -e "s/BuildPreReq/BuildRequires/g" openssh-7.3p1.spec
    

    5.3、编译生成RPM

    cd ~/rpmbuild/SPECS/
    rpmbuild -bb openssh-7.3p1.spec
    

    5.4、查看生成包

    cd ~/rpmbuild/RPMS/x86_64
    ls
    

    5.5、安装生成的RPM包

    yum install openssh-7.3p1-1.x86_64.rpm openssh-clients-7.3p1-1.x86_64.rpm openssh-server-7.3p1-1.x86_64.rpm
    

    6、修改配置文件,可以和先前备份的文件对比,按顺序来,不然行号会对不上(这个修改按你的需求来,这里是参照旧的sshd_config.bak进行的设定)

    cp /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config
    上面这步不是必须,安装RPM包的时候会有提示,如果没有生成这个sshd_config.rpmnew文件,可以跳过上面这步
    sed -i "37aSyslogFacility AUTHPRIV" /etc/ssh/sshd_config
    sed -i "44aPermitRootLogin yes" /etc/ssh/sshd_config
    sed -i "77aChallengeResponseAuthentication no" /etc/ssh/sshd_config
    sed -i "88aGSSAPICleanupCredentials no" /etc/ssh/sshd_config
    sed -i "112aUsePrivilegeSeparation sandbox" /etc/ssh/sshd_config
    

    7、更改密钥权限,所有密钥权限必须为600,密钥格式为ssh_host_XXX_key,全部在/etc/ssh目录下

    cd /etc/ssh
    chmod 600 ssh_host_XXX_key
    

    8、重启sshd服务

    /etc/init.d/sshd restart
    

    9、尝试用CRT或Xshell连接,能连上就没问题了

    10、最后检查一下开机自启,因为没有动过sshd.service自启脚本,所有应该没有问题

    11、看一下更新后的成果

    [root@localhost ~]# ssh -V
    OpenSSH_7.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    

    Ubuntu 14.04更新过程

    因为觉得sudo用着麻烦,直接修改了sshd_config文件,直接用root用户登录了系统,以下操作都是在root用户下进行的

    因为Ubuntu刚接触不久,玩的不怎么6,这里采用编译安装,如果有更简单的方法,敬请大神告知

    1、查看openssh的版本

    root@ubuntu:~# ssh -V
    OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7, OpenSSL 1.0.1f 6 Jan 2014
    

    2、安装基础编译环境

    apt-get install build-essential
    

    3、更新openssl,这个需要更新,不更新在openssh的configure阶段会提示找不到头文件

    apt-get install openssl
    

    4、卸掉旧的openssh

    apt-get remove openssh-*
    他会列一堆东西出来,但实际只会移除4个包
    openssh-server
    openssh-client
    openssh-sftp
    openssh-import-id

    5、编译安装zlib库,安装包建议用浏览器下载好再rz到服务器,wget很慢

    wget http://zlib.net/zlib-1.2.8.tar.gz
    tar zxf zlib-1.2.8.tar.gz
    cd zlib-1.2.8
    ./configure
    make
    make install
    

    6、更新ssl库

    apt-get install libssl-dev
    

    7、编译安装openssh(主角登场,此处应该有掌声)

    wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
    tar zxf openssh-7.3p1.tar.gz
    cd  openssh-7.3p1
    ./configure
    make
    make install
    

    8、安装完成后会提示你用他给你的命令启动服务,但是请先不要启动,我们需要改一下配置

    ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 
    上面是创建了新的host key,下面是服务的测试启动命令
    /usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config
    

    9、更改配置,新安装的openssh需要指定sshd_config路径,这个新路径和旧路径不一样,所以你可以对比两个配置文件,按你的需要修改一下配置(其实不用更改什么,默认也可以)

    vimdiff /etc/ssh/sshd_config /usr/local/etc/sshd_config
    

    10、启动sshd服务,觉得麻烦,自己做软链接

    /usr/local/sbin/sshd -f /usr/local/etc/sshd_config
    

    11、尝试登录并检查自启情况

    vim /etc/rc.local
    在exit 0之前加入以下内容
    /usr/local/sbin/sshd -f /usr/local/etc/sshd_config

    服务就能自启,再来看看更新后的openssh版本吧

    ccyy@ubuntu:~$ ssh -V
    OpenSSH_7.3p1, OpenSSL 1.0.1f 6 Jan 2014
    

    其他的Linux系统参考着做吧

  • 相关阅读:
    获取Unity和UGUUI内置组件的属性名
    Sqlite管理工具
    C#对象属性浅拷贝和深拷贝
    fbx查看软件
    如何区分Unity国内版和国际版
    Unity2019及Unity2020打包android的环境配置
    提高Unity编译dll的速度
    SpringBoot使用swagger
    SpringBoot 使用 Interceptor 拦截器
    SpringBoot 使用 Filter 过滤器
  • 原文地址:https://www.cnblogs.com/scoter2008/p/6056961.html
Copyright © 2011-2022 走看看