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系统参考着做吧

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/scoter2008/p/6056961.html
Copyright © 2011-2022 走看看