淘宝客网站可以做百度推广,撰写网站的建设方案,苏州建设网站公司在什么地方,太原网站制作多少钱原文链接#xff1a; CentOS7 OpenSSL升级1.1.1w#xff1b;OpenSSH 升级 9.5p1 保姆级教程 openssl从3.1.0升级到3.1.1遇到的问题 注意操作时需要联网请参考如下链接 内网服务器联网安装依赖参见我的另一篇文章
一、 前言
OpenSSH 的加密功能需要用到OpenSSL#xff0c;所…原文链接 CentOS7 OpenSSL升级1.1.1wOpenSSH 升级 9.5p1 保姆级教程 openssl从3.1.0升级到3.1.1遇到的问题 注意操作时需要联网请参考如下链接 内网服务器联网安装依赖参见我的另一篇文章
一、 前言
OpenSSH 的加密功能需要用到OpenSSL所以在升级OpenSSH的时候大部分情况是需要将OpenSSL一起升级的。 这里我们可以先升级OpenSSL到OpenSSL 1.1.1w 11 Sep 2023 然后再升级OpenSSH 到OpenSSH_9.5p1, OpenSSL 1.1.1w 11 Sep 2023 当然也可以从第三步开始操作如果你的OpenSSL 版本太低会遇到报错 configure: error: OpenSSL 1.1.1 required此时你需要跳到文末升级OpenSSL 再返回继续操作 1.1 注意点 在升级之前先将需要的包上传到服务器以免升级失败后导致上传文件失败。这里我用的sftp上传sftp的核心也需要用到SSH并安装telnet-server服务保证SSH升级失败后可以继续远程连接。
需要有初始yum源要不然安装这两个服务众多的依赖包将会是梦魇。
原始版本信息如下。
二、升级OpenSSL
2.1 安装依赖
yum -y install gcc*2.2备份、卸载原有OpenSSL 1、 查找openssl 相关目录然后备份
[rootvm206 etc]# whereis opensslopenssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz[rootvm206 etc]# mv /usr/bin/openssl /usr/bin/openssl.old[rootvm206 etc]# mv /usr/lib64/openssl /usr/lib64/openssl.old2、 卸载 openssl (这一步看个人需要我有洁癖所以我卸载了)
yum remove openssl2.3安装openssl
tar -xzvf openssl-1.1.1w.tar.gzcd openssl-1.1.1w/./config --prefix/usrmake make install这里我的目录选择了/usr 是因为系统最初始的openssl的目录就是/usr 这样可以省去的软连接、更新链接库的问题 2.4验证
[rootvm206 openssl-1.1.1w]# whereis opensslopenssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1[rootvm206 openssl-1.1.1w]# openssl versionOpenSSL 1.1.1w 11 Sep 2023可以看到我这边的目录和老版本的openssl的目录保持了一致唯一不同的是多了一个/usr/include/openssl 库目录 如果不加prefix ,openssl的默认路径如下 Bin /usr/local/bin/openssl include库 /usr/local/include/openssl lib库/usr/local/lib64/ engine库/usr/lib64/openssl/engines 三、 升级OpenSSH 内网中yum需要代理请看本文开头的蓝色加粗超链接 3.1 安装telnet-server
yum install telnet* -ysystemctl start telnet.socketsystemctl enable telnet.socketmv /etc/securetty /etc/securetty.bak临时关闭安全登录否则无法进行远程telnet连接 有防火墙记得关闭防火墙并关闭SELinux 防火墙: firewall-cmd --state关闭防火墙:
systemctl stop firewalld.service测试telnet远程登录telnet登录成功才进行接下来的操作防止sshd服务被搞坏了远程连不上服务器
telnet 172.16.1.182Type help to learn how to use Xshell prompt.
[D:\~]$ telnet 172.16.1.182Connecting to 172.16.1.182:23...
Connection established.
To escape to local shell, press CtrlAlt].Kernel 5.15.1-1.el7.elrepo.x86_64 on an x86_64
0003 login: root
Password:
Last login: Wed Dec 13 09:46:44 from 172.10.110.247
[root0003 ~]# 如上已经可以通过telnet远程连接了这下可以放心大胆的操作了。 接下来的操作用telnet远程不要用ssh远程防止升级OpenSSH9.5p1时原ssh文件卸载不干净
3.2 安装依赖包
yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools3.3 备份 通过whereis ssh sshd找出bin文件、源文件然后备份。 man手册不需要备份。 mv /etc/ssh /etc/ssh.bakmv /usr/bin/ssh /usr/bin/ssh.bakmv /usr/sbin/sshd /usr/sbin/sshd.bakmv /etc/pam.d/sshd /etc/pam.d/sshd.old备份pam验证文件 3.4卸载旧版OpenSSH
yum remove openssh3.5安装新版OpenSSH
tar -xzvf openssh-9.5p1.tar.gzcd openssh-9.5p1./configure --prefix/usr --sysconfdir/etc/ssh --with-pam --with-ssl-dir/usr/local/lib64/其中–prefix --sysconfdir 这两个参数我仍然采用了系统之前的默认路径避免路径混乱导致的问题 如果报错 configure: error: OpenSSL 1.1.1 required请看文末的问题 makemake installcd /etc/pam.d/mv sshd.old sshd恢复ssh pam认证 cd openssh-9.5p1/cp contrib/redhat/sshd.init /etc/init.d/sshdchkconfig --add sshdsystemctl enable sshdsystemctl start sshd可以看到已经升级成功 [root0003 ~]# ssh -V
OpenSSH_9.5p1, OpenSSL 3.1.0 14 Mar 2023
[root0003 ~]# 3.6修改/etc/ssh/sshd_config 配置文件 文件修改如下然后重启sshd服务即可 登录成功界面 问题
configure: error: OpenSSL 1.1.1 required原因 原因是我上一次修复BUG时把openssl版本直接从1.1.1t升级到了3.1.0需要的lib类库也需要从libssl.so.1.1更新到libssl.so.3这一次同样是3版本我以为不用更新了所以出现了上面的错误 解决办法 进入安装好的/usr/local/openssl311/lib64目录下openssl311是自定义的选择自己的安装目录将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下选择覆盖 升级过程 下载 内网中wget需要代理请看本文开头的蓝色加粗超链接 wget https://www.openssl.org/source/openssl-3.1.0.tar.gz --no-check-certificate解压
tar -xzvf openssl-3.1.0.tar.gz进入解压后目录
cd openssl-3.1.0配置安装目录
./config --prefix/usr/local/openssl310注意–prefix/usr/local/openssl311如果–prefix/usr/local/openssl覆盖安装之前版本会失败我已踩坑 这里安装目录和之前目录保持不同安装完成再去删除之前的 /usr/local/openssl目录不删除就当废弃文件放在那也行 我在升级另一台服务器又遇到这个开头的错Can’t locate IPC/Cmd.pm in 参考 编译升级OpenSSL报错:Can‘t locate IPC/Cmd.pm 解决一个问题----cpan配置(proxymirror) cpan好像是一个脚本工具类似于shell 即先安装cpan初始化cpan配置时选手动配置一直回车使用默认配置再重新进入cpan命令行为其配置代理 再用cpan安装IPC/Cmd.pm 编译安装
make make install进入安装好的/usr/local/openssl311/lib64目录下openssl311是自定义的选择自己的安装目录
cd /usr/local/openssl310/lib64将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下选择覆盖
cp libssl.so.3 /usr/lib64
cp libcrypto.so.3 /usr/lib64本地查看是否成功
/usr/local/openssl310/bin/openssl version -a出现问题解决后可正常显示新版本或无问题继续下一步 软链接进入/usr/bin目录查询openssl的软链接如果指定的是旧版本使用命令取消旧软链接
unlink /usr/bin/openssl创建新软链接
ln -s /usr/local/openssl310/bin/openssl /usr/bin/openssl刷新命令库
ldconfig在任一目录直接验证可查看到新版本
openssl version -a[root0003 ~]# openssl version -a
OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)
built on: Tue Dec 12 08:24:05 2023 UTC
platform: linux-x86_64
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: /usr/local/openssl310/ssl
ENGINESDIR: /usr/local/openssl310/lib64/engines-3
MODULESDIR: /usr/local/openssl310/lib64/ossl-modules
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap0xfffa32035f8bffff:0x800d19e4fbb
[root0003 ~]#