OpenSSH升级指南

1

OpenSSH简介

OpenSSH 是SSH(Secure Shell)协议免费开源的实现。SSH协议族可用来远程控制主机或在计算机间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、ftp、Rlogin都是极为不安全的,它们使用明文传输数据,甚至是使用明文传送密码,攻击者可通过嗅探等中间人攻击的方式获取传输的数据。为了保证通信安全,在1999年10月OpenSSH第一次在OpenBSD2.6里出现,它提供了服务端后台程序和客户端工具,结合OpenSSL协议实现端到端的加密传输,保证通信信道的安全,并由此来代替原来的服务。

OpenSSH使用SSH协议透过计算机网络加密通讯的实现。它是一种开放源代码的方案用以取代由SSH Communications Security所提供的商用版本。目前OpenBSD的子计划便是OpenSSH。

OpenSSH常被误认为与OpenSSL有关联,但实际上这两个计划各有不同的目的和不同的发展团队,名称相近只是由于两者有着同样的软件发展目标──提供开放源代码的加密通讯软件。

在OpenSSH服务里,sshd是一个典型的独立守护进程服务(standalone daemon),但也可以根据需求通过网络来守护进程(Internet Daemon)-inetd或Ineternet Daemon's more modern-xinted加载。OpenSSH服务可以通过/etc/ssh/sshd_config配置文件对远程主机的访问策略进行配置,如PermitRootLogin限制root用户远程访问等。

SEE MORE →

2升级准备

2.1 升级方式

考虑到OpenSSH升级采用远程连接方式升级,因需要对ssh卸载和安装,为保证升级正常,将采telnet 连接来进行升级操作,依次进行OpenSSH原配置文件备份、旧版本OpenSSH删除、安装新版本OpenSSH。

2.2 升级所需要的安装包

telnet服务所需的安装包:

telnet-server-0.17-39.el5.x86_64.rpm OpenSSH

升级所需安装包:

openssh-7.4p1.tar.gz

zlib-1.2.8.tar.gz

openssl-1.0.1h.tar.gz

2.3 安装包链接地址

http://www.zlib.net/

http://www.openssl.org/

http://www.openssh.org/

2.4 升级流程

1、上传安装包到服务器上

2、 安装telnet服务,并使其运行正常;

3、 备份OpenSSH配置文件

4、 卸载OpenSSH 旧版本

5、 安装OpenSSH 新版本,并测试正常

6、 卸载telnet服务,删除安装包及备份文件

3升级过程

3.1 上传安装包至服务器

将zlib 、OpenSSH 、OpenSSL依赖包从本地上传至服务器,用于安装。

telnet包用于远程连接。

3.2 安装telnet并测试

rpm -qa | grep telnet 查看是否已经安装了telnet

rpm -qa | grep xinetd 查看是否已经安装了xinetd服务,因为telnet是挂在xinetd下的

如果两者都没安装,执行以下命令安装:

yum install xinetd telnet telnet-server –y

chkconfig telnet on 设置开机启动,避免升级过程中服务器意外重启后无法远程登录系统

vi /etc/xinetd.d/telnet 修改配置文件将”disable= yes”改成” disable=no”

service xinetd restart 重启xinetd服务

iptables防火墙会阻止telnet,所以需要在iptables允许,用如下命令

当你启动telnet服务后,你可以用netstat –tunlp命令来查看telnet服务所使用的端口,可以发现有23。使用下面命令开启这些端口:

iptables -I INPUT -p tcp --dport 23 -jACCEPT

iptables -I INPUT -p udp --dport 23 -jACCEPT

service iptables save //保存

service iptables restart //重启防火墙

测试登录 telnet ip port (使用非root账户)

3.3 重要文件备份

防止升级失败导致文件丢失,请将重要文件和ssh配置文件备份

ssh配置文件备份:

sudo cp -r /etc/ssh/ /etc/ssh_bak

sudo cp /etc/init.d/sshd /etc/init.d/sshd_bak

sudo cp /usr/sbin/sshd /usr/sbin/sshd_bak

3.4 卸载旧版本SSH

1.确认OpenSSH需要删除的rpm包

rpm -qa |grep ssh

2.使用rpm的方式删除

rpm -e openssh openssh-clients openssh-server openssh-askpass –nodeps

3.5 安装ssh新版本

3.5.1 安装zlib

1.解压

sudo tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

2.配置

./configure

3.编译安装

make

make install

3.5.2 安装openssl

1.解压

tar –xf openssl-1.0.1h.tar.gz

cd openssl-1.0.1h

2.配置

./config

3.编译安装

make

make install

4.设置软连接

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

5.查看新安装的openssl版本

openssl version –a

3.5.3 安装openssh

1.解压

tar –xf openssh-7.4p1.tar.gz

cd openssh-7.4p1

2.配置

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening

3.编译安装

make

make install

4.修改配置文件

(1)备份sshd文件

mv /etc/init.d/sshd /etc/init.d/sshd_old

(2)复制配置文件

cp sshd.init /etc/init.d/sshd

赋权

chmod u+x /etc/init.d/sshd

添加到开机启动项

chkconfig --add sshd

chkconfig sshd on

重启服务

service sshd restart

3.5.4 确认升级后的SSH版本可用时,停止telnet服务

1.确认版本

ssh –V 确认升级后的版本信息

2.修改配置文件

将vi /etc/xinetd.d/telnet文件中的disable = no修改为disable = yes

3.设置telnet开机不启动

chkconfig xinetd off

4.关闭telnet服务

/etc/init.d/xinetd stop

5.开启防火墙并设置开机自动启动

service iptables start

chkconfig iptables on

END

作者:绿盟科技安全服务部

本文分享自微信公众号 - 绿盟科技安全预警(nsfocus_secwarning)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Cisco ASA安全产品拒绝服务漏洞(CVE-2018-15454)处置建议

    近日,Cisco官方发布了Adaptive Security Appliance(ASA)软件及Firepower Threat Defense(FTD)软件拒...

    绿盟科技安全情报
  • OpenSSH扫描指南

    OpenSSH 是SSH(Secure Shell)协议免费开源的实现。SSH协议族可用来远程控制主机或在计算机间传送文件。而实现此功能的传统方式,如telne...

    绿盟科技安全情报
  • 【威胁通告】微软 SQL Server 远程代码执行漏洞(CVE-2020-0618)威胁通告

    2月12日,微软发布安全更新披露了Microsoft SQL Server Reporting Services 远程代码执行漏洞(CVE-2020-0618)...

    绿盟科技安全情报
  • go语言调度器源代码情景分析之四:函数调用栈

    栈是一种“后进先出”的数据结构,它相当于一个容器,当需要往容器里面添加元素时只能放在最上面的一个元素之上,需要取出元素时也只能从最上面开始取,通常我们称添加元素...

    阿波张
  • 【深度学习系列】漫谈RNN之序列建模(机器翻译篇)

    推送第四日,量化投资与机器学习公众号将为大家带来一个系列的 Deep Learning 原创研究。本次深度学习系列的撰稿人为 张泽旺 ,DM-Master,目前...

    量化投资与机器学习微信公众号
  • 代码审查那些事儿

    upsource是jetbrain公司出的一个团队协作的代码审查系统,可以配合idea实时显示评论.安装时免费的,但是团队的成员账号不能超过5个.如果超过则需要...

    suveng
  • Github项目推荐 | 图神经网络(GNN)相关资源大列表

    这是一个与图神经网络相关的资源集合,相关资源可以在底部点击【阅读原文】再点击对应链接跳转查看。

    AI研习社
  • Python王牌加速库2:深度学习下的障碍期权定价

    上一期推文中,我们使用了Numba和CuPy来运行蒙特卡罗模拟来确定亚式障碍期权的价格。

    量化投资与机器学习微信公众号
  • 数据库—索引

    适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引 oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引...

    一觉睡到小时候
  • MYSQL INDEX 是那么简单的吗?

    平时我们在使用INDEX的时候都是那么理所应当,而原理估计了解的人不是太多。今天来说说MYSQL 的索引的一些东西,或许你已经知道了,或许你还不知道,follo...

    AustinDatabases

扫码关注云+社区

领取腾讯云代金券