CentOS 7升级OpenSSH


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 -y2.升级过程中,SSH服务不可用,因此需要安装及配置telnet
yum -y install telnet-server* telnet3.配置telnet server服务
#允许root用户通过telnet登录mv /etc/securetty /etc/securetty.old #启动telnet服务 systemctl start telnet.socket#使telnet服务开机启动,防止意外重启systemctl enable telnet.socket4.服务器防火墙开放23端口
5.测试telnet能否正常登入系统
telnet xxx.xxx.xxx.xxx开始安装1.下载源码软件包
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz2.解压源码包并执行编译安装
【CentOS 7升级OpenSSH】#解压源码包tar zxvf openssh-8.1p1.tar.gzcd openssh-8.1p1#开始编译安装./configuremakemake 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.servicesed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd-keygen.servicesed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd@.service安装完成安装完成后,重启SSH相关服务即可




    推荐阅读