目录
引言
当前操作系统情况
第一步:下载SSH和SSL安装包
第二步:安装配置Telnet(防止ssh安装失败无法连接)
1、安装Telnet
2、运行Telnet服务
3、移除文件
4、使用Telnet远程连接
第三步:卸载旧版本SSH
第四步:安装依赖包
第五步:升级SSL
1、解压源码包
2、进入源码包执行config文件
3、编译安装
4、配置软连接
5、查看是否安装成功
第六步:升级SSH
1、解压源码包
2、进入源码包目录编译安装
3、复制配置文件
4、配置/etc/ssh/sshd_config文件(允许root账户远程登录)
5、添加SSH开机自启动
6、重启ssh服务,查看sshd运行状态
7、查看安装结果
8、删除telnet-server包
引言
最近接了一个安全服务加固项目,看了一眼大部分是基于SSH与SSL的CVE漏洞,根据修复建议就是升级更高的版本,或者打补丁,于是就对服务器的OpenSSH和OpenSSL进行了升级。(升级了一天,感觉自己就是敲键盘的猴子,手指头酸痛酸痛的😭),废话不多说,记录一下升级的步骤和遇到的坑,希望可以帮助到大家~
OpenSSH9.4P1要求OpenSSH版本最低为1.1
当前操作系统情况
!!!这一步非常重要!!!
先确定服务器操作系统的版本,因为不同版本的操作系统用到的命令存在很大的差异。比如centOS 6版本就需要手动安装很多组件,可以使用下面的命令确定操作系统版本以及OpenSSH与OpenSSL版本:
[root@xiaogu ~]# cat /etc/redhat-release //查看操作系统版本
CentOS Linux release 7.9.2009 (AltArch)
[root@xiaogu ~]# ssh -V //查看SSH和SSL版本
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
这里是本机的操作系统和当前的OpenSSH与OpenSSL版本:
操作系统版本:Centos Linux release 7.9.2009
SSH版本:OpenSSH 7.4p1 SSL版本:OpenSSL 1.0.2k
第一步:下载SSH和SSL安装包
这里下载有两种方式:
1、离线安装一般是自己现在官网上下载好安装包,传到服务器中(笔者安装方式)
2、通过wget下载
!!!离线安装!!!必须先传安装包,因为后面删除旧版本ssh和ssl就无法传文件了
我这里将SSH升级到最新版本9.4p1,SSL升级到1.1.1v,如下图,已将安装包传至服务器中
第二步:安装配置Telnet(防止ssh安装失败无法连接)
1、安装Telnet
一般Linux系统自带Telnet客户端,我们只需要安装服务端即可;另外的,Telnet运行需要依靠xinetd组件,这里我一起下载,命令如下:
[root@xiaogu ~]# yum install telnet-server.x86_64 xinetd.x86_64
2、运行Telnet服务
[root@xiaogu ~]# systemctl enable telnet.socket
[root@xiaogu ~]# systemctl start telnet.socket //启动telnet.socket
[root@xiaogu ~]# systemctl start xinetd //启动telnet.socket
[root@xiaogu ~]# systemctl status telnet.socket //查看telnet状态
● telnet.socket - Telnet Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; vendor preset: disabled)
Active: active (listening) since Wed 2023-08-30 16:41:59 EDT; 6min ago
Docs: man:telnetd(8)
Listen: [::]:23 (Stream)
Accepted: 0; Connected: 0
Aug 30 16:41:59 xiaogu systemd[1]: Listening on Telnet Server Activation Socket.
3、移除文件
Linux系统中默认不允许root账户telnet远程登录,这里需要移除配置文件,保证root账户能够远程登录。
[root@xiaogu ~]# mv /etc/securetty /etc/securetty.bak
4、使用Telnet远程连接
这里我们切换到Telnet协议进行远程连接,防止后面卸载就版本SSH断连。
第三步:卸载旧版本SSH
[root@xiaogu ~]# yum remove openssh -y //卸载旧版本SSH
[root@xiaogu ~]# rm -rf /etc/ssh/* //删除原SSH文件
第四步:安装依赖包
[root@xiaogu ~]# yum -y install zlib* pam-* gcc make
第五步:升级SSL
1、解压源码包
[root@xiaogu ~]# tar -zxvf openssl-1.1.1v.tar.gz
2、进入源码包执行config文件
[root@xiaogu ~]# cd /root/openssl-1.1.1v
[root@xiaogu openssl-1.1.1v]# ./config --prefix=/usr/local/openssl
//这里顺利安装后直接看3、编译安装
- 可能会遇到的报错信息1:
Operating system: aarch64-whatever-linux2
You need Perl 5.
这是由于未安装perl导致的,只需安装perl后,再重新运行config文件即可。
[root@xiaogu openssl-1.1.1v]# yum install perl* //安装Perl命令
[root@xiaogu openssl-1.1.1v]# ./config --prefix=/usr/local/openssl //安装Perl后再重新执行
- 可能会遇到的报错信息2:
Can't locate IPC/Cmd.pm in @IN。。。。。
[root@xiaogu openssl-1.1.1v]# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
[root@xiaogu openssl-1.1.1v]# ./config --prefix=/usr/local/openssl //重新执行
3、编译安装
[root@xiaogu openssl-1.1.1v]# make -j4 && make install
4、配置软连接
[root@xiaogu openssl-1.1.1v]# ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@xiaogu openssl-1.1.1v]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@xiaogu openssl-1.1.1v]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
可能遇到的报错信息:提示已存在。。。。
将参数换成-b即可文章来源:https://www.toymoban.com/news/detail-760374.html
5、查看是否安装成功
[root@xiaogu openssl-1.1.1v]# openssl version
OpenSSL 1.1.1v 1 Aug 2023 //出现类似这样的信息说明升级安装成功了
第六步:升级SSH
1、解压源码包
[root@xiaogu ~]# tar -zxvf openssh-9.4p1.tar.gz
2、进入源码包目录编译安装
[root@xiaogu openssh-9.4p1]# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam && make -j4&& make install
如果找不到openssl lib,执行:文章来源地址https://www.toymoban.com/news/detail-760374.html
[root@xiaogu openssh-9.4p1]# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords CCFLAGS="-I /usr/lib/openssl/openssl/include" LDFLAGS="-L /usr/lib/openssl/openssl/lib64" --with-pam && make && make install
3、复制配置文件
[root@xiaogu openssh-9.4p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
[root@xiaogu openssh-9.4p1]# chmod u+x /etc/init.d/sshd
4、配置/etc/ssh/sshd_config文件(允许root账户远程登录)
[root@xiaogu ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes //取消该行注释
PermitRootLogin yes //添加改行,允许root账户远程登录
5、添加SSH开机自启动
[root@xiaogu ~]# chkconfig --add sshd
[root@xiaogu ~]# chkconfig sshd on
6、重启ssh服务,查看sshd运行状态
[root@xiaogu ~]# systemctl restart sshd //重启sshd服务
[root@xiaogu ~]# systemctl status sshd //查看sshd运行状态
● sshd.service - SYSV: OpenSSH server daemon
Loaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)
Active: active (running) since Wed 2023-08-30 19:39:40 EDT; 8s ago
Docs: man:systemd-sysv-generator(8)
Process: 31118 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)
Main PID: 31126 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─31126 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups
Aug 30 19:39:40 xiaogu systemd[1]: Starting SYSV: OpenSSH server daemon...
Aug 30 19:39:40 xiaogu sshd[31118]: /sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed: No such file or directory
Aug 30 19:39:40 xiaogu sshd[31126]: Server listening on 0.0.0.0 port 22.
Aug 30 19:39:40 xiaogu sshd[31126]: Server listening on :: port 22.
Aug 30 19:39:40 xiaogu sshd[31118]: Starting sshd:[ OK ]
Aug 30 19:39:40 xiaogu systemd[1]: Started SYSV: OpenSSH server daemon.
7、查看安装结果
[root@xiaogu ~]# ssh -V
OpenSSH_9.4p1, OpenSSL 1.1.1v 1 Aug 2023 //已升级安装完成
8、删除telnet-server包
[root@xiaogu ~]# yum remove telnet-server -y //只删除服务端,不删除客户端,方便以后安装
到了这里,关于CentOS7升级SSH最新版本(9.4p1)详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!