<返回更多

CentOS 7升级OpenSSH

2019-10-24    
加入收藏
CentOS 7升级OpenSSH

 

导读

为什么需要升级OpenSSH?

OpenSSH 7.4以下版本存在严重漏洞:

  1. OpenSSH 远程权限提升漏洞(CVE-2016-10010)
  2. OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)
  3. Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)
  4. 若当前的OpenSSL>=1.0.1可以不用升级OpenSSL

升级方式

  1. 本次我们选择升级到openssh-8.1p1
  2. 整个的升级操作是server和client都要升级
  3. 本次升级的方式采用编译安装

升级准备

1.准备编译环境

yum install pam-devel zlib-devel openssl openssl-devel wget gcc -y

2.升级过程中,SSH服务不可用,因此需要安装及配置telnet

yum -y install telnet-server* telnet

3.配置telnet server服务

#允许root用户通过telnet登录
mv /etc/securetty /etc/securetty.old 
#启动telnet服务 
systemctl start telnet.socket
#使telnet服务开机启动,防止意外重启
systemctl enable telnet.socket

4.服务器防火墙开放23端口

5.测试telnet能否正常登入系统

telnet xxx.xxx.xxx.xxx

开始安装

1.下载源码软件包

wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz

2.解压源码包并执行编译安装

#解压源码包
tar zxvf openssh-8.1p1.tar.gz
cd openssh-8.1p1
#开始编译安装
./configure
make
make install

安装完毕之后sshd将会安装到/usr/local/sbin/目录下。而ssh、ssh-keygen等命令都会安装到/usr/local/bin目录下。

操作系统的PATH路径是优先选择/usr/local/的,所以普通命令都可以使用到最新的,但是server端的sshd我们还需要做额外的配置。

3.修改sshd启动脚本

#/usr/lib/systemd/system/sshd-keygen.service
将ExecStart=/usr/sbin/sshd-keygen
替换为:
ExecStart=/usr/local/bin/sshd-keygen
#/usr/lib/systemd/system/sshd.service
将ExecStart=/usr/sbin/sshd $OPTIONS
替换为:
ExecStart=/usr/local/sbin/sshd $OPTIONS
#/usr/lib/systemd/system/sshd@.service
将ExecStart=-/usr/sbin/sshd -i $OPTIONS
替换为:
ExecStart=-/usr/local/sbin/sshd -i $OPTIONSka

快速替换脚本:

sed -i 's?ExecStart=/usr/sbin/sshd-keygen $OPTIONS?ExecStart=/usr/local/sbin/sshd-keygen $OPTIONS?g' /usr/lib/systemd/system/sshd-keygen.service
sed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd-keygen.service
sed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd@.service

安装完成

安装完成后,重启SSH相关服务即可

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>