栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Centos7升级openssl1.1.1l及openssh8.7

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Centos7升级openssl1.1.1l及openssh8.7

背景

实际项目基于centos系统部署业务,涉及对外提供服务时,可能会不可避免的遇到漏洞扫描的情况,centos7系统本身自带的openssh服务版本过低,就会暴露很多漏洞;openssl为开放源代码的基础软件库包,系统很多基础软件都会引用openssl库包进行安全通信,openssh服务也不例外,因此centos7本身自带openssl服务版本过低,openssh也会暴露出openssl相关漏洞,所以要升级centos系统openssl及openssh服务修复漏洞。

修复原则

由于openssl是非常基础的软件库包,强行升级替换操作系统openssl可能会导致其他服务出现异常情况;本身我们只是要解决openssh服务暴露的openssl的漏洞,并不一定要升级操作系统自带的openssl;为了降低对系统的入侵性,经过权衡,选择编译安装方式安装一个新版本,原openssl不卸载;openssh服务也选择编译安装,编译安装时引用新的openssl包。

版本信息

操作系统:Centos7.3.1611 安装GNOME桌面
openssl:openssl-1.1.1l.tar.gz
openssh:openssh-8.7p1.tar.gz

编译安装openssl 1.下载openssl源码包
https://www.openssl.org/source/


以openssl-1.1.1l.tar.gz为例升级,上传服务器

2.安装基础依赖包
yum install libmpc cpp kernel-headers glibc-headers glibc-devel gcc -y

3.编译安装
tar -zxvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l/
./config --prefix=/usr/local/openssl1.1.1l --openssldir=/usr/local/openssl1.1.1l  shared -fPIC
make&&make install

编译安装选项说明:
–prefix:指定openssl的安装目录,bin、lib、include等目录
–openssldir:指定openssl文件的安装目录,certs、man、private等目录及配置文件等
shared:除了静态库以外,让openssl编译生成openssl动态库
-fPIC:将openssl动态库编译成位置无关(position-independent)的代码

库文件软链到系统库目录中

ln -s /usr/local/openssl1.1.1l/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl1.1.1l/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

运行命令检测是否功能是否正常

编译安装openssh

注:由于ssh升级过程中远程链接中断大概率会导致服务器无法通过ssh连接,建议在升级前开启telnet登录权限,防止因升级因素导致无法连接ssh连接服务器的问题发生。

1.下载openssh源码包

此处选择阿里云国内镜像站下载

https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

2.安装基础依赖包
yum install zlib-devel pam-devel
3.编译安装
tar -zxvf openssh-8.7p1.tar.gz
cd openssh8.7p1/
./configure --prefix=/usr/local/openssh8.7 --sysconfdir=/etc/ssh8.7/ --with-md5-passwords --mandir=/usr/share/man --with-zlib --with-pam --with-ssl-dir=/usr/local/openssl1.1.1l/
make&&make install

执行命令查看编译安装是否成功

4.替换系统ssh相关命令

备份系统原ssh相关命令

mkdir /usr/bin/sshbak6.6/
mkdir /usr/sbin/sshbak6.6/
mkdir /usr/libexec/opensshbak6.6/
mv /usr/libexec/openssh/sftp-server  /usr/libexec/opensshbak6.6/
mv /usr/bin/ssh-copy-id /usr/bin/sshbak6.6/
mv /usr/bin/ssh-add /usr/bin/sshbak6.6/
mv /usr/bin/ssh-agent /usr/bin/sshbak6.6/
mv /usr/bin/ssh-keygen /usr/bin/sshbak6.6/
mv /usr/bin/ssh-keyscan /usr/bin/sshbak6.6/
mv /usr/bin/scp /usr/bin/sshbak6.6/
mv /usr/bin/sftp /usr/bin/sshbak6.6/
mv /usr/bin/ssh /usr/bin/sshbak6.6/
mv /usr/sbin/sshd /usr/sbin/sshbak6.6/

替换ssh命令与常用工具

cd openssh8.7p1/  ##编译包解压的目录
cp -p sftp-server  /usr/libexec/openssh/
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id

cd /usr/local/openssh8.7/
cp -p /usr/local/openssh8.7/bin/* /usr/bin/
cp -p /usr/local/openssh8.7/sbin/* /usr/sbin/
5.设置权限
chmod -R 755 /usr/local/openssh8.7/
chmod -R 755 /usr/bin/ssh*
chmod -R 755 /usr/bin/scp
chmod -R 755 /usr/bin/sftp
chmod -R 755 /usr/sbin/ssh*
6.修改配置文件允许root登陆与密码验证登陆
vi /etc/ssh8.7/sshd_config 

添加配置

PasswordAuthentication yes
PermitRootLogin yes
7.系统服务修改
mv /usr/lib/systemd/system/sshd.service /usr/sbin/sshbak6.6
vi /usr/lib/systemd/system/sshd.service

/usr/lib/systemd/system/sshd.service文件添加如下配置

[Unit]
Description=OpenSSH server daemon
documentation=man:sshd(8) man:sshd_config(5)
After=network.target
[Service]
ExecStart=/usr/sbin/sshd
[Install]
WantedBy=multi-user.target

重新加载

systemctl daemon-reload 

重启ssh服务测试

systemctl restart sshd
systemctl status sshd


查看版本信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号