服务器安全监测报告openssh有漏洞,需要升级openssh

因为升级过程中需要关闭openssh,因此有与服务器失去连接的危险,因此需要先安装telnet-server,将telnet 服务开启,确保telnet 能连接到服务器的情况下,才可以开始进行升级
先确认下服务器的版本,查看下linux 的发行版本
lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
从上面的代码看到,本系统是CentOS6.5
再看一下当前的openssh 的版本
[logonuser@localhost ~]$ ssh -V
OpenSSH_7.2p1, OpenSSL 1.0.2g 1 Mar 2016
可以看出当前的openssh 版本是 7.2,而官网上最新版本是7.9
下面开始准备开始升级
一 安装telnet
1 先查看telnet-server是否已经安装,默认情况下linux 是不安装telnet-server 的
[logonuser@localhost ~]$ rpm -qa telnet-server
telnet-server-0.17-48.el6.x86_64
如果没有输出,就是没有安装,上面是我安装后的输出
2 如果没有安装则进行安装telnet-server
[logonuser@localhost ~]# yum install telnet
3 修改配置文件将telnet 开启
[root@localhost logonuser]# vi /etc/xinetd.d/telnet
将配置文件中的 disable = yes 改成 disable = no,将服务开启
4 重启xinetd进程
[logonuser@locahost ~]#service xinetd restart
5 测试
telnet 默认是23端口,因此要看下23端口的情况
[root@localhost logonuser]# netstat -tnl |grep 23
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
上没看出23端口已经开始被启用,所以telnet 启动成功了
6 更换telnet 的默认端口号
由于安全原因机房将一些常用的端口号未对外开放,所以需要将默认的23端口改成1234端口
修改方法相对简单,只需要修改一下 /etc/services 配置文件
[logonuser@localhost ~]$ vi /etc/services
将文件中的
telnet 23/tcp
telnet 23/udp
改成
telnet 1234/tcp
telnet 1234/udp
修改后 重启xinetd 服务
service xinetd restart
至此,telnet-server 服务安装成功,用x-shell 客户端 可以连接成功,用户名和密码和ssh 的用户名密码一样,只是连接协议选择telnet 即可。
二 下载openssh安装文件
下载地址:https://www.openssh.com/portable.html ,在页面中选择 镜像 Taiwan (Taoyuan),
进入到 镜像下载地址:https://ftp.yzu.edu.tw/pub/OpenBSD/OpenSSH/portable/ 选择openssh-7.9p1.tar.gz
openssh 下载文件中带p1 的文件是linux 的安装文件
下载后上传至服务器,然后关闭ssh服务
service sshd stop
然后就开始解压并安装
tar zxvf openssh-7.9p1.tar.gz
cd openssh-7.9p1
./configure --with-ssl-dir=/usr/local/openssl_1_0_2g --prefix=/usr --sysconfdir=/etc/ssh
make
make install
安装过程中可能提示缺某个组件,一个一个安装即可。
遇到的坑:
(1)在configure时候错误提示:configure: error: Your OpenSSL headers do not match your library
因为在configure 时候 没有指定ssl 的目录,加上参数 --with-ssl-dir=/usr/local/openssl_1_0_2g 就可以了
(2)make install 安装后,会有提示:/usr/local/etc/ssh_config already exists, install will not overwrite
刚开始以为未安装成功,但这其实只是个提示,openssh 已经安装成功了
官方的解释:http://linux.topology.org/openssh.html

安装后查询下ssh 的版本
[logonuser@localhost ~]$ ssh -V
OpenSSH_7.9p1, OpenSSL 1.0.2g 1 Mar 2016
重启SSH服务
service sshd restart
可以看到版本已经更新成功了,此时用x-shell 客户端测试是否能连接上服务器,连接没问题,表示安装成功!
最后处于安全考虑,将telnet 服务关闭
[root@localhost logonuser]# vi /etc/xinetd.d/telnet
将 disable = no
改为 disable = yes
[root@localhost logonuser]# service xinetd restart
上面是将配置文件设置恢复为初始状态(telnet 服务不开启),重启后配置文件生效,然后也可以将服务彻底关闭
[root@localhost logonuser]# service xinetd stop
Stopping xinetd: [ OK ]
本文详细记录了在 CentOS 6.5 上安全升级 openssh 到 7.9 的过程,包括安装 telnet-server 作为备用连接方式,下载和安装 openssh 新版本,解决配置和依赖问题,以及最终验证升级成功和关闭 telnet 服务。

2354

被折叠的 条评论
为什么被折叠?



