zoukankan      html  css  js  c++  java
  • ubuntu下openssh升级

    因客户漏扫扫描出来openssh及openssl存在漏洞,现升级为官方最新版 

    这里选择编译安装 去官网下载:

    openssl-1.0.2o.tar.gz  
    openssh7.7.1
    zlib-1.2.1
    
    wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
    wget https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
    wget http://www.zlib.net/zlib-1.2.11.tar.gz
    

     1.安装zlib

    tar xf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure --prefix=/usr/local/zlib
    make
    make install
    #这里有一个报错: # 报错: c_zlib.c:25:19: fatal error: zlib.h: No such file or directory # zlib标准安装指导: # /usr/local/src/zlib-1.2.11 # 构建静态库 ./configure make test make install # 构建共享库 make clean ./configure --shared make test

    2.升级openssl

    tar xf openssl-1.0.2o.tar.gz
    cd openssl-1.0.2o 
    ./config shared zlib            #一定要加上shared 参数,要不在安装openssh的时候就无法找到 
    make 
    make install 
    # 备份原来的openssl 
    mv /usr/bin/openssl /usr/bin/openssl.bak 
    mv /usr/include/openssl /usr/include/openssl.bak 
     
    # 因为源码安装默认安装的位置是 /usr/local/ssl 需要将创建软链接到系统位置 
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl 
    ln -s /usr/local/ssl/include/openssl /usr/i

    提示:在这里分享一个遇到的的报错大坑,导致之后安装openssh的时候make install一直报错如下: 

    OpenSSL version mismatch. Built against 1000105f, you have 10001060
    

      /etc/ld.so.conf里面是这样写的(不知道什么原因):

    cat /etc/id.so.conf
     include id.so.conf.d/*conf

    之前添加lib库的命令是这样的: echo "/usr/local/ssl/lib/" >> /etc/ld.so.conf

    后来修改为:echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl.conf

    3.升级openssh

    # 到目前为上发现在的openssh的漏洞都是openssh7.4以前的版本。我们当前升级的是openssh7.7p1
     
    # 备份原openssh文件
    mv /etc/init.d/ssh /etc/init.d/ssh.old
    cp -r /etc/ssh /etc/ssh.old
     
    # 卸载原openssh
    apt-get remove openssh-client openssh-server
    tar xf openssh-7.7p1.tar.gz
    cd openssh-7.7p1 
    ./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 #需要指定openssl的安装路径 
     
    ---------------------------------报错-------------------------------------------
    # 报错  checking whether OpenSSL's PRNG is internally seeded... yes
    #       configure: error: PAM headers not found
    # 解决:ubuntu: apt-get install libpam0g-dev   centos: yum -y install pam-devel
    --------------------------------------------------------------------------------
     
    make 
    make install 
    ---------------------------------报错-------------------------------------------------------------------
    # 报错: Privilege separation user sshd does not exist
    vim /etc/passwd
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 
    # 注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
    # /etc/passwd文件是Linux/UNIX安全的关键文件之一.该文件用于用户登录时校验 用户的口令,当然应当仅对root可写.
    ---------------------------------------------------------------------------------------------------------
     
    #可查看当前SSH的版本。
    ssh -V

    #root@oezn121j8Z:~# ssh -V
    #OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018

     到此升级工作完成 

     如果重启没有  

    /etc/init.d/ssh
    则执行
    mv /etc/init.d/ssh.old
    /etc/init.d/ssh 
  • 相关阅读:
    c# WinForm 文本输入对话框
    C# 打印 长字符串自动换行
    Jquery通过AJAX从后台获取数据显示在表格上(复选)
    jquery通过AJAX从后台获取信息并显示在表格上的类
    迟来的总结与规划
    Tools
    HTML+CSS 学习清单
    JQuery 入门学习列表
    Git(Mac OSX下)
    dom 元素占据高度
  • 原文地址:https://www.cnblogs.com/zhaojingyu/p/9271528.html
Copyright © 2011-2022 走看看