欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rpm包方式升级OpenSSL8.0版本

程序员文章站 2022-07-08 16:44:57
...

    centos7.x默认采用的是OpenSSH_7.4p1这个版本,但是有些漏洞扫描设备扫描出OpenSSH_7.4p1版太低,不安全类似的问题,解决方式呢,就是升级OpenSSL更高版本,考虑到 不是一两台服务器,使用源码包方式安装太费劲了,建议使用rpm包导入后直接安装。

建议先安装telnet服务 到最后不至于连服务器都连不上了!!

1、安装rpm-build和openssh依赖包

yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y

2、创建目录

mkdir -p /root/rpmbuild/{SOURCES,SPECS}
cd /root/rpmbuild/SOURCES

3、按照需求上外网下载对应版本
下载源

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz

4、解压包和其他操作 负责粘贴即可

tar zxvf openssh-8.0p1.tar.gz openssh-8.0p1/contrib/redhat/openssh.spec
openssh-8.0p1/contrib/redhat/openssh.spec
cp openssh-8.0p1/contrib/redhat/openssh.spec ../SPECS/
chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec
cp /root/rpmbuild/SPECS/openssh.spec /root/rpmbuild/SPECS/openssh.spec_def

5、修改openssh.spec文件

sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec

sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec

6、生成rpm包

cd /root/rpmbuild/SPECS/
rpmbuild -ba openssh.spec

//生成时报错

error: Failed build dependencies:
openssl-devel < 1.1 is needed by openssh-8.0p1-1.el7.x86_64

//解决方法:

[[email protected] SPECS]# pwd
/root/rpmbuild/SPECS
[[email protected] SPECS]# vi openssh.spec

#BuildRequires: openssl-devel < 1.1  //定位到这行 注释掉即可!

编译完成后,会产生4个rpm包,放在/root/rpmbuild/RPMS/x86_64目录下。在服务器上,创建一个openssh文件夹,把这四个包拷贝过来,执行yun -y install ./* 即可。

7、安装测试

[[email protected] x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[[email protected] x86_64]# yum -y install *
[[email protected] x86_64]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2k-fips  26 Jan 2017

//权限设置

cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key

//openssh8.0版本默认root不可用远程登入,编辑配置文件配置允许root远程登入

vi /etc/ssh/sshd_config
..... //添加或者更改为下面内容即可!
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes
.....
[[email protected] ~]# sshd -t
[[email protected] ~]# systemctl restart sshd

//最后一步 openssh会受selinux的限制 所以要关闭selinux

sed -i  s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce 

最后测试连接的时候一定要多打开几个窗口 以防万一root用户登不上,或者安装telnet服务,别把自己害了,给多留点后路!!

最后送上 openssh8.0的rpm包,上面构建openssh8.0没有成功的小伙伴可直接下载rpm包,导入后yun -y install ./* 即可。rpm包提取码:1111