背景

       三级等保评测中对主机进行漏洞扫描发现linux主机存在高危漏洞,查看发现是OpenSSH版本过低导致,于是对主机系统OpenSSH软件版本进行升级。


查看系统版本 ssh版本








#查看系统版本cat  /etc/redhat-release CentOS Linux release 7.5.1804 (Core) #查看ssh 版本ssh -VOpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

更新并安装所需要的依赖


yum install -y make  gcc gcc-c++  openssl-devel zlib zlib-devel pam-devel

下载 解压 openssh8.4压缩包





cd /optwget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gztar  -zxvf openssh-8.4p1.tar.gz

测试及编译源码




cd openssh-8.4p1./configure  --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam  --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening

CentOS 7.x 升级OpenSSH_系统版本

删除/etc/ssh/下的密钥对(只删除密钥对即可,重启会重新生成)


rm -rf /etc/ssh/ssh_host_*

make安装


 make && make install

修改配置文件并且去掉注释





vim /etc/ssh/sshd_config  PermitRootLogin yes   PasswordAuthentication yes

将源码安装包中 opensshd.init 文件复制到 /etc/init.d/ 目录下并添加可执行权限




cp  /opt/openssh-8.4p1/opensshd.init /etc/init.d/sshd.initchmod  u+x /etc/init.d/sshd.init

启动ssh服务


/etc/init.d/sshd.init start

备份原有sshd.service文件


mv  /usr/lib/systemd/system/sshd.service   /opt

添加sshd.service 文件























vim /usr/lib/systemd/system sshd.service
# Automatically generated by systemd-sysv-generator
[Unit]Documentation=man:systemd-sysv-generator(8)SourcePath=/etc/rc.d/init.d/sshd.initDescription=SYSV: OpenSSH server daemon
[Service]Type=forkingRestart=noTimeoutSec=5minIgnoreSIGPIPE=noKillMode=processGuessMainPID=noRemainAfterExit=noPIDFile=/var/run/sshd.pidExecStart=/etc/rc.d/init.d/sshd.init startExecStop=/etc/rc.d/init.d/sshd.init stopExecReload=/etc/rc.d/init.d/sshd.init reload

重载配置


systemctl daemon-reload

重启ssh服务


systemctl  restart sshd

CentOS 7.x 升级OpenSSH_软件版本_02

查看当前ssh版本




ssh -Vtelnet 127.0.0.1 22

CentOS 7.x 升级OpenSSH_linux_03

 

升级有风险操作需谨慎(使用telnet 兜底)可选操作


安装xinted

      xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。telnet服务就是通过xinetd服务来管理的,所以在安装telnet服务之前需要先安装xinetd服务。


yum install -y xinetd

yum 安装telnet-server telnet-client


yum install   telnet-server telnet

查看软件版本




rpm -qa telnet-server telnet-server-0.17-66.el7.x86_64

配置telnet 文件

若此文件不存在,则创建这个文件。将其中disable=yes改为disable=no或注释掉。













vi /etc/xinetd.d/telnetservice telnet{        flags           = REUSE        socket_type     = stream        wait            = no        user            = root        server          = /usr/sbin/in.telnetd        log_on_failure  += USERID        disable         = yes        }

重启服务




systemctl    restart  xinetdsystemctl restart telnet.socket

telnet 默认的情况之下不允许 root 以 telnet 进入 Linux 主机,创建普通用户登录系统切换root。

telnet 测试


telnet 192.168.99.147

CentOS 7.x 升级OpenSSH_系统版本_04

   

    升级SSH 存在中断风险,如果SSH 升级失败将会导致终端无法登录,建议在使用本地虚拟机进行测试后对线上生产环境进行升级操作!!!

CentOS 7.x 升级OpenSSH_linux_05

CentOS 7.x 升级OpenSSH_密钥对_06