||
将CentOS7 OpenSSH升级到8.4p1版本
随着信息安全要求越来越高,生产系统在正式上线前都会先进行漏洞扫描检查,而我们在使用CentOS操作系统时常常用的是默认SSH服务版本,漏洞扫描基本上是一扫一个准,所以本次就来谈谈SSH服务的升级。
升级前主机软件环境(图1):
操作系统版本:CentOS 7.3
OpenSSL版本:OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSH版本:OpenSSH_6.6.1p1
图1
升级后主机软件环境(图2):
操作系统版本:CentOS 7.3
OpenSSL版本:OpenSSL 1.1.1i 8 Dec 2020
OpenSSH版本:OpenSSH_8.4p1
图2
本次升级的OpenSSH和OpenSSL是目前官方最新版本,软件包信息如下。
openssl-1.1.1i.tar.gz 2020-12-08
软件包官方下载地址:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
https://ftp.openssl.org/source/
在升级OpenSSH和OpenSSL之前,需要先安装一些软件包(图3),这里提一句,升级在2019年的openssl-1.0.2r.tar OpenSSL包时不需要安装perl-core包,这是一个不同点。
[root@localhost ~]# yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
[root@localhost ~]# yum install -y pam* zlib*
[root@localhost ~]# yum install -y perl perl-core
图3
在升级OpenSSL前,我们将现有的openssl文件(图4)和openssl目录(图5)作了备份,以备不时之需。
[root@localhost ssh]# mv /usr/bin/openssl /usr/bin/openssl_bak
图4
[root@localhost ssh]# mv /usr/include/openssl /usr/include/openssl_bak
图5
然后将OpenSSH和OpenSSL两个升级包复制到系统中,放哪里都可以,能保证执行就可以了。
编译安装新版本的OpenSSL
先将OpenSSL软件包解压
[root@localhost ~]# tar -xvf openssl-1.1.1i.tar.gz
进入解压后的OpenSSL目录,进行配置、编译、编译测试和安装几个步骤,命令我是一条一条执行,每一条执行完成后使用“echo $?”验证返回值是否为“0”,执行成功。
[root@localhost openssl-1.1.1i]# ./config
[root@localhost openssl-1.1.1i]# make
[root@localhost openssl-1.1.1i]# make test
[root@localhost openssl-1.1.1i]# make install
OpenSSL安装完成后,建立OpenSSL的文件和目录软链接
[root@localhost openssl-1.1.1i]# ln -s /usr/local/bin/openssl /usr/bin/openssl
图6
[root@localhost openssl-1.1.1i]# ln -s /usr/local/include/openssl /usr/include/openssl
图7
然后执行以下2条命令加载新配置(图8)
[root@localhost openssl-1.1.1i]# echo "/usr/local/lib64" >> /etc/ld.so.conf
[root@localhost openssl-1.1.1i]# /sbin/ldconfig
图8
此时可查看OpenSSL安装后的版本,是否为1.1.1i(图9)
[root@localhost openssl-1.1.1i]# openssl version
图9
OpenSSL升级成功后,接下来就是升级安装OpenSSH了
升级安装之前,先将现有的ssh配置文件和目录删除。
[root@localhost ssh]# rm -rf /etc/ssh/*
解压openssh升级包。
[root@localhost ssh]# tar -xvf openssh-8.4p1.tar.gz
进入OpenSSH解压后的目录,进行配置(图10)、编译和安装
[root@localhost openssh-8.4p1]# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/include/openssl --with-ssl-dir=/usr/local/lib64 --with-zlib --with-md5-passwords --with-pam
图10
[root@localhost openssh-8.4p1]# make
[root@localhost openssh-8.4p1]# make install
从openssh-8.4p1解压的包中拷贝相关文件到目标位置(如果目标目录存在就覆盖)(图11)
[root@localhost openssh-8.4p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-8.4p1]# cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
[root@localhost openssh-8.4p1]# chmod +x /etc/init.d/sshd
[root@localhost openssh-8.4p1]# chkconfig --add sshd
[root@localhost openssh-8.4p1]# systemctl enable sshd
图11
把原先的systemd管理的sshd文件删除或者移走,不移走的话会影响重启sshd服务。
[root@localhost openssh-8.4p1]# mv /usr/lib/systemd/system/sshd.service ~
图12
设置sshd服务开机启动(图13)
[root@localhost openssh-8.4p1]# chkconfig sshd on
图13
查看OpenSSH升级后的版本,是否为8.4p1(图14)
[root@localhost openssh-8.4p1]# ssh –V
图14
现在OpenSSL和OpenSSH都已升级完成,我们需要连接测试,在这之前可先将selinux关闭,可使用“setenforce 0”来临时关闭selinux,也可采用修改配置文件参数永久关闭selinux(图15)。
[root@localhost selinux]# vi /etc/selinux/config
将“SELINUX=enforcing”修改为“SELINUX=disabled”。
图15
OpenSSH升级使用后,使用的sshd config默认配置,此配置是禁止root远程登陆的,只有先用普通帐号登陆后,再su切换到root帐号。若需要开启root远程登陆,可修改sshd_config配置文件,操作如下。
[root@localhost ssh]# vi /etc/ssh/sshd_config
增加一条配置(图16):PermitRootLogin yes
图16
成都宠物论坛|手机版|成都宠物网搜索|百度|谷歌|宠我网 ( 蜀ICP备07500266号 )
GMT+8, 2024-11-23 12:06 , Processed in 0.090691 second(s), 16 queries .
© 2007 By www.Petovo.com Some rights reserved