离线源码升级openssh7.4到openssh7.9详解

背景

公司有几台linux服务器,漏洞扫描时 OpenSSH 用户枚举漏洞(CVE-2018-15919) 需要把openssh升级到7.9。
我之前已经做过从openssh5.X版本到7.4版本的升级。所以很多工作不需要重复做。只需要升级openssh即可。

完全离线安装,系统centos7和redhadt5.0

升级条件

如果你现在已经是7.4版本的理论上,可以直接升级openssh即可。不需要升级zlib和openssl。但不排除例外,安装前查看一下版本。

  1. OpenSSL版本:目前OpenSSH7.9不支持OpenSSH1.1.x以上。否则编译的时候会报错。

  2. Zlib1.1.4或1.2.1.2或更高版本

  3. gcc:因为编译需要gcc

  4. openssl-devel:编译时需要

rpm -qa | grep ssh
rpm -qa | grep ssl
rpm -qa | grep zlib

具体操作步骤

1.1 卸载及备份

# 备份当前openssh
 mv /etc/ssh /etc/ssh.old
# 卸载当前7.4版本的openssh
make uninstall
我的是源码安装,直接卸载就好。

1.2 安装前环境配置

# openssh安装前环境配置 (要保证这里的命令都能执行正确)
# install  -v -m700 -d /var/lib/sshd
# chown  -v root:sys /var/lib/sshd
# groupadd -g 51 sshd
# useradd  -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 51 sshd

1.3 标准源码编译安装流程

下载页面:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

tar -zxvf openssh-7.9p1.tar.gz
进入解压包执行,标准安装
./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
 make
 make install

建议每一步执行完都 echo $?确认下返回值是否为0,如果出错了,就不要往下走了,找出错误。

1.4 安装后配置

# openssh安装后环境配置
# install -v -m755    contrib/ssh-copy-id /usr/bin
# install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-7.9p1
# install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1

1.5 配置启动项

# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
# chmod +x /etc/init.d/sshd
# chkconfig  --add  sshd
# chkconfig  sshd  on
# chkconfig  --list  sshd
#注意:ssh连接会因重启openssh断开

1.6 结果验证

ssh -V

1.7 可选配置

# 启动openssh服务
# echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
# 配置允许root用户通过ssh登录
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config 
注:客户要求禁止root登录,无需修改。7.4默认禁止root登录。

后记

以上过程基本可以实现完全离线状态升级7.4到7.9。对于每个人来说环境不同,可能在编译安装的过程中会报错。务必找到问题解决掉。其他几步,即使没有完全理解意思,可以照着做,不会有坏的影响。

你可能感兴趣的:(LINUX)