目录

引言

当前操作系统情况

第一步:下载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即可

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,执行:

[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 //只删除服务端,不删除客户端,方便以后安装

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。