最近OpenSSL官方公布了OpenSSL的几个漏洞,而修复版本为OpenSSL-1.1.1k。而OpenSSL影响最直接的就SSH服务,但是由于SSH属于Linux基础组件又属于远程管理控制器,所以升级操作需要非常谨慎,很多同学不熟悉此类服务升级,所以下面详细进行讲解。至于OpenSSL升级,请参考《CentOS 7.4升级安装OpenSSL-1.1.1k》
在一般第三方服务组件进行升级可以直接使用yum进行升级,而SSL这样的基础组件是不能从最基础版本【默认:OpenSSH_7.4p1】直接升级到最新版本的。需要进行编译安装升级。操作如下:
1、下载地址
一样,由于官方网站有可能访问不到,所以我直接下载到CSDN了,方便大家下载,下载地址
2、基础环境
#Base install
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel wget vim unzip lrzsz
yum install -y pam* zlib*
#关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
#创建一个放源码的目录
mkdir -p /app/src
3、编译安装OpenSSH
cd /app/src
rz
tar xf openssh-8.3p1.tar.gz
#默认openssh用户是1000,所以修改一下权限
chown -R root.root openssh-8.3p1
cd openssh-8.3p1
解析来编译安装
#养成好习惯,先备份
cp -rf /etc/ssh /etc/ssh.bak_ray
#删除/etc/ssh/目录下面的所有文件
rm -rf /etc/ssh/*
#下面进行编译安装【一行代码】
#--with-openssl-includes和--with-ssl-dir参数的值编译安装升级OpenSSL后的安装路径,在《CentOS 7.4升级安装OpenSSL-1.1.1k》文中以讲解
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include/openssl --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam && make && make install
4、配置OpenSSH
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/bak_sshd.service
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
chkconfig
chkconfig sshd on
systemctl daemon-reload
grep "PermitRootLogin" /etc/ssh/sshd_config
grep "UseDNS" /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/#UseDNS no/UseDNS no/g' /etc/ssh/sshd_config
#最后一定一定要重启一次SSHD服务
service sshd restart
5、检查升级结果
ssh -V
可以看到OpenSSH和OpenSSL都已经升级完成了。至此整个OpenSSL漏洞影响的SSH升级完成
注意:SSH是属于基础远程控制器,操作请一定要谨慎