Linux环境下openssh升级

    xiaoxiao2022-07-04  138

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

    OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。该工具 是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。sshd是 其中的一个独立守护进程。OpenSSH 7.2p2及之前版本的sshd中的session.c文件中的‘do_setup_env’函数存在安全漏洞。 当程序启用UseLogin功能并且PAM被配置成读取用户主目录中的.pam_environment文件时,本地攻击者可借助/bin/login 程序的特制的环境变量利用该漏洞获取权限;sshd中的session.c文件中存在CRLF注入漏洞。远程攻击者可借助特制的 X11转发数据利用该漏洞绕过既定的shell-command限制。

    准备: 因为是线上环境,避免升级出现错误导致ssh服务挂掉,会导致一系列的麻烦事,所以提前安装telnet服务

    apt-get install openbsd-inetd telnetd telnet /etc/init.d/openbsd-inetd restart # 启动服务 netstat -anpt|grep 23 # 查看telnet服务的默认端口是否启动 telnet ip # 测试是否成功登陆 我选择源码编译,下载安装包并上传

    openssl-1.0.2o.tar.gz # 官方下载地址: https://www.openssl.org/source/openssh-7.7p1.tar.gz # 官方下载地址: https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/zlib-1.2.11.tar.gz # 官方下载地址: http://www.zlib.net/ 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 make install cp zutil.h /usr/local/include cp zutil.c /usr/local/include 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/include/openssl

    将openssl 的lib 库添加到系统

    echo “/usr/local/ssl/lib” > /etc/ld.so.conf.d/openssl.conf

    使新添加的lib 被系统找到

    ldconfig

    查看openssl版本

    openssl version -a

    至此opensll 已经成功升级到1.0.2o 重点:在这里分享一个遇到的的报错大坑,导致之后安装openssh的时候make install一直报错如下:

    OpenSSL version mismatch. Built against 1000105f, you have 10001060 查了百度,google都没有找到解决方案,后来突然看到/etc/ld.so.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-server openssh-client 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 到目前所有升级就已经完成了

    修改默认配置文件 根据之前配置修改,保证配置相同

    也可使用原来的配置文件 cd /etc/ssh mv sshd_config sshd_config.default cp ../ssh.old/sshd_config ./

    使用原来的/etc/init.d/ssh

    mv /etc/init.d/ssh.old /etc/init.d/ssh

    取消注销指定服务

    systemctl unmask ssh

    重启服务

    systemctl restart ssh

     

    更多LaTex的语法请参考[这儿] [3]。### UML图:可以生染序列图: 序列张三 - >李四:嘿,小四儿,写博客了没注意李四的权利:李四愣了一下,说:李四 - >张三:?忙得吐血,哪有时间写“或者流程图: flow st => start:开始e =>端:结束OP =>操作:我的操作COND =>条件:确认?ST-> OP-> COND COND(是) - >电子COND(无) - >运算 - 关于* 序列图 *语法,参考[ 这儿] [4], - 关于流程图语法,参考[这儿] [5 ]。

     

    浏览器兼容1.目前,本编辑器对铬浏览器支持最为完整。建议大家使用较新版本的浏览器0.3.IE9以下不支持4.IE9,10,11存在以下问题1.不支持离线功能1 .IE9不支持文件导入导出1.IE10不支持拖载文件导入——— [1]:http://math.stackexchange.com/ [2]:https:// github .com / jmcmanus / pagedown-extra“Pagedown Extra”[3]:http://meta.math.stackexchange.com/questions/5020 / mathjax-basic-tutorial-and-quick-reference [4]:HTTP:/ / bramp .github.io / js-sequence-图/ [5]:http://adrai.github.io/flowchart.js/ [6]:https://github.com/benweet/stackedit

    最新回复(0)