CentOS 5.8 升级openssh至6.7

一、简介

最近公司一些生产系统服务器被机房扫描出openssh工具有漏洞,于是对线上的一些服务器中的openssh进行的升级,现将具体的过程写成博文,希望对大家有所帮助……

由于CentOS 5 官方所提供的yum源中最新版本的openssh也相对很老了,所以就只有两种办法了:

1、自制RPM包进行升级;

本来我最先考虑的是使用这种方法,因为在生产环境中缺乏一些编译所需要的软件包,如果都一一安装的话又会产生未知的安全隐患,但是当把RPM制作完成后,在测试机上测试的时候发现最新版本的openssh安装是对系统环境中glibc,openssl等的依赖关系过于复杂,所以最终还是放弃了。

2、源码编译安装

经过我在测试环境中实验,其实编译过程中需要安装的软件包也不是很多,而且过程简化了好多,本着“偷懒”的心理,就果断采取这种简便的方法了。

博文的实验过程是在办公区的内网测试机上进行的,公司生产系统中的一些东西不方便透漏,不过具体做法都是一样的。

二、实验环境及所使用到的软件包的版本号:

操作系统:    CentOS 5.8 (x86_64)

使用到的软件包的版本

dropbear-2014.66.tar.bz2

https://matt.ucc.asn.au/dropbear/releases/dropbear-2014.66.tar.bz2

openssl-1.0.1j.tar.gz

https://www.openssl.org/source/openssl-1.0.1j.tar.gz

openssh-6.7p1.tar.gz

http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.7p1.tar.gz

三、实验过程:

1、安装Dropbear代替OpenSSH

安装dropbear只是为了在升级过程中sshd启动不起来时,依然可以登录系统。当然可以用其他工具代替。

首先安装这次编译全过程中所需要的软件包:

[[email protected]_102 ~]# yum -y install gcc zlib zlib-devel make pam pam-devel
[[email protected]_102 ~]# tar xf dropbear-2014.66.tar.bz2 
[[email protected]_102 ~]# cd dropbear-2014.66
[[email protected]_102 dropbear-2014.66]# mkdir /opt/dropbear
[[email protected]_102 dropbear-2014.66]# ./configure --prefix=/opt/dropbear/

[[email protected]_102 dropbear-2014.66]# make && make install
[[email protected]_102 dropbear-2014.66]# mkdir /etc/dropbear
[[email protected]_102 dropbear-2014.66]# cd 
[[email protected]_102 ~]# /opt/dropbear/bin/dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgK0lMSpdfF7DGBwn0LehoTcpMX8D1zGPKvxJHkeFpE8cRNYC67q9v1q12wqRvir7sHwp7YlNOeTTqx45cOCiykeDV1IzhBvBGOj0TW8N8hU6/z66S0QQdDTWhsgLqhcH5Gvtc79YaxM/il6l8KHmgFEKWaC+vcomuuKt1UqTdSZUxyUygEhrjT7s20UGqgHDcJg/C0YTPwIvPfbDiHfG8WczvsAfrXB41Q8U9vTVBZI72KzVVDcOKOBhXZQY0n0zzQOZ7JKCayeIipOKwZ0k26udn6L2ljoefhEeBVPo8SAvWBr2dW6JtimSROqRqyV1S3Wwc+xDsH+YrpYgbFqv9 [email protected]_102
Fingerprint: md5 0a:61:e8:61:0c:4d:56:8b:74:29:06:b7:c4:37:b6:d3
[[email protected]_102 ~]# /opt/dropbear/sbin/dropbear -p 1213
[[email protected]_102 ~]# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1900/portmap        
tcp        0      0 0.0.0.0:848                 0.0.0.0:*                   LISTEN      1938/rpc.statd      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2546/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2231/sendmail       
tcp        0      0 0.0.0.0:1213                0.0.0.0:*                   LISTEN      6712/dropbear       
tcp        0      0 :::22                       :::*                        LISTEN      2546/sshd           
tcp        0      0 :::1213                     :::*                        LISTEN      6712/dropbear       
udp        0      0 0.0.0.0:36031               0.0.0.0:*                               2311/avahi-daemon   
udp        0      0 0.0.0.0:842                 0.0.0.0:*                               1938/rpc.statd      
udp        0      0 0.0.0.0:845                 0.0.0.0:*                               1938/rpc.statd      
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2311/avahi-daemon   
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1900/portmap        
udp        0      0 :::59807                    :::*                                    2311/avahi-daemon   
udp        0      0 :::5353                     :::*                                    2311/avahi-daemon

这里可以看的出,dropbear已经侦听在TCP的1213端口了,需要注意的是:如果你的Linux主机定义了iptables的话,在更新openssh之前一定要先在防火墙中开放该端口。

然后我们可以在其它主机上通过ssh的方式连接1213端口实验一下。

[[email protected]_253 ~]# ssh -p1213 192.168.0.102
[email protected]‘s password: 
[[email protected]_102 ~]#

剩下的工作就可以全部使用这个会话中完成了。

3、升级openssl至1.0.1j

首先查看一下当前的opensl的版本信息

[[email protected]_102 ~]# openssl version 
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

这里跟大家解释一个事情,之前在网上看到有很多博客说直接使用rpm或者yum的方式强制卸载掉openssl,但是这种做法是万万不可取的,因为Linux环境下很多很多的软件包对openssl有依赖关系,我第一次试验的时候就出现这种情况,当时手欠执行了一条命令:

rpm -e `rpm -qa | grep openssl` --allmatches --nodeps

然后悄无声息的被卸载掉几百个软件包,然后就没有然后了。

如果大家想看的话可以试下下面的操作:

[[email protected]_102 ~]# yum remove openssl     #切记这里不要加-y选项
Transaction Summary
=========================================================================================
Remove      263 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)
Is this ok [y/N]: n
Exiting on user Command
Complete!

最后一定要选择n

那现在既然不能直接卸载,那我们就强制将openssl的程序文件覆盖掉就好了,如果你不清楚openssl的安装位置的话,我们使用whereis查看一下:

[[email protected]_102 ~]# whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/share/man/man1/openssl.1ssl.gz
### 这里可以看的出openssl安装在/usr目录下,下面我们可以开始编译安装了:
[[email protected]_102 ~]# tar xf openssl-1.0.1j.tar.gz 
[[email protected]_102 ~]# cd openssl-1.0.1j
[[email protected]_102 openssl-1.0.1j]# ./config --prefix=/usr/ shared
### 与其他程序的源码包不同的是,openssl生成makefile的shell脚本是config这个文件
[[email protected]_102 openssl-1.0.1j]# make
[[email protected]_102 openssl-1.0.1j]# make test
[[email protected]_102 openssl-1.0.1j]# make install
### 编译完成,我们再看下openssl的版本号:
[[email protected]_102 openssl-1.0.1j]# openssl version
OpenSSL 1.0.1j 15 Oct 2014

4、升级openssh至6.7

首先先备份一下原本openssh的配置文件:

[[email protected]_102 ~]# mv /etc/ssh/ /etc/ssh.bak
[[email protected]_102 ~]# rpm -qa | grep openssh
openssh-clients-4.3p2-82.el5
openssh-4.3p2-82.el5
openssh-server-4.3p2-82.el5
[[email protected]_102 ~]# rpm -e --nodeps `rpm -qa | grep openssh`    ### 卸载原本的openssh
[[email protected]_102 ~]# rpm -qa | grep openssh
[[email protected]_102 ~]# 
[[email protected]_102 ~]# tar xf openssh-6.7p1.tar.gz 
[[email protected]_102 ~]# cd openssh-6.7p1
[[email protected]_102 openssh-6.7p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
[[email protected]_102 openssh-6.7p1]# make && make install 
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
[[email protected]_102 openssh-6.7p1]# ssh -V 
OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014
### 这里可以看的出来我们已经完成了openssh版本更新
[[email protected]_102 openssh-6.7p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd     
### 为openssh提供启动脚本
[[email protected]_102 openssh-6.7p1]# /etc/init.d/sshd restart 
Stopping sshd:                                             [FAILED]
Starting sshd:                                             [  OK  ]
[[email protected]_102 openssh-6.7p1]# chkconfig --add sshd
### 将sshd添加进服务列表
[[email protected]_102 openssh-6.7p1]# chkconfig --list sshd
sshd           0:off1:off2:on3:on4:on5:on6:off
### 设置sshd为开机自启

这时我们可以从别的主机通过22端口连接到升级openssh后的主机了:

[[email protected]_253 ~]# ssh 192.168.0.102
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
f2:a7:d4:9d:5b:fb:d9:e7:f0:a5:84:95:65:97:21:c5.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:20
RSA host key for 192.168.0.102 has changed and you have requested strict checking.
Host key verification failed.
[[email protected]_253 ~]# vi /root/.ssh/known_hosts
### 在这个文件中将包含“192.168.0.102”这个IP地址的一行删除掉,保存。
[[email protected]_253 ~]# ssh 192.168.0.102
The authenticity of host ‘192.168.0.102 (192.168.0.102)‘ can‘t be established.
RSA key fingerprint is f2:a7:d4:9d:5b:fb:d9:e7:f0:a5:84:95:65:97:21:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.102‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
Last login: Fri Jan  9 21:46:03 2015 from 192.168.0.253
[[email protected]_102 ~]#

之前安装的dropbear到此已经完成了她的使命,可以将该进程kill掉,然后将程序删除了:

[[email protected]_102 ~]# killall dropbear
[[email protected]_102 ~]# rm -rf /etc/dropbear/ /opt/dropbear/
[[email protected]_102 ~]# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1900/portmap        
tcp        0      0 0.0.0.0:848                 0.0.0.0:*                   LISTEN      1938/rpc.statd      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      21792/sshd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2231/sendmail       
tcp        0      0 :::22                       :::*                        LISTEN      21792/sshd          
udp        0      0 0.0.0.0:36031               0.0.0.0:*                               2311/avahi-daemon   
udp        0      0 0.0.0.0:842                 0.0.0.0:*                               1938/rpc.statd      
udp        0      0 0.0.0.0:845                 0.0.0.0:*                               1938/rpc.statd      
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2311/avahi-daemon   
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1900/portmap        
udp        0      0 :::59807                    :::*                                    2311/avahi-daemon   
udp        0      0 :::5353                     :::*                                    2311/avahi-daemon
时间: 2024-07-28 20:52:11

CentOS 5.8 升级openssh至6.7的相关文章

CentOS 6.6升级OpenSSH到最新版本7.5.p1

本文主要简单记录CentOS 6.6下OpenSSH升级步骤,安装编译所需工具包 yum install gcc pam-devel zlib-devel 一.升级原因7.4以下openssh版本存在严重漏洞:1.OpenSSH 远程权限提升漏洞(CVE-2016-10010)  2.OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)  3.Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)  OpenSSL>=1.0.1可以不用升级OpenS

Centos 6.5升级openssh漏洞

CentOS 6.5下openssh升级 在有的企业中每年都会安全扫描,因为实现远程连接比较重要,如果openssh版本过低,就要对其升级,本文主要讲述openssh升级的步骤. openssh升级主要有三步: (1) 安装新版本的openssl (2) 安装新版本的openssh 如果是生产环境,并且存在备机,建议从备机开始升级,备机升级完了再升级主机. 详细的过程如下: 1.1  安装zlib Zlib下载地址: http://www.greenxiazai.com/soft/101492.

CentOS 6.9 升级OpenSSH版本 关闭ssh服务后门

最近用低版本的OpenSSH(5.9p1版本) 的漏洞给系统留了个后门 , 可以劫持root密码或者给root开启后门密码 ,  如果公司还在用CentOS6的系统 , 那肯定存在漏洞隐患  建议升级OpenSSH , 升级OpenSSH的操作并不复杂 ,但如果是线上环境 ,那么就需要谨慎操作  特别需要注意的是  如果是通过ssh远程连接服务器后进行的版本升级操作 ,万一升级失败了,则ssh就远程登录不上去了 当然 ,如果服务器安装了iDRAC远程管理卡就好说了,如果没有iDRAC远程管理卡,

Centos 6.6 升级openSSH 远程访问版本(5.3升级7.0源码安装版)

由于服务器Openssh 版本过低,存在不安全因素,所以最近想把服务器都进行升级: 查看当前系统版本为6.6,openssh为5.3版本,此版本启用默认是开启了root远程功能的,因此我能直接通过ROOT进行远程访问. 话不多说,直接上传下载的OPENSSL7.0版本压缩包,需要的可以到http://www.openssh.com官网下载 上传后解压,tar zxf openssh-7.0p1.ta.gz ,然后进cd openssh-7.01p1 目录. ./configure --prefi

CentOS 6.5 升级 openssh

最近有空复习了一下Linux,在虚拟机上安装了个CentOS6.5,顺便升级一下系统自带的openssh,任何系统操作都有风险,正式环境请做好备份工作.废话少说,直接贴代码. 1.准备工作,相应的包自己到官方下载,另外需要下载依赖包openssl以及zlib包. openssh下载地址:http://www.openssh.com/portable.html#http openssl下载地址:http://www.openssl.org/source/ zlib下载地址:http://zlib.

CentOS 6.4openssh升级到6.7操作步骤

CentOS 6.4升级openssh至6.7p1 一.环境描述 1)操作系统:CentOS 6.4 64位 2)Openssl版本:1.0.1e-15.el6,由于升级到openssh_6.7p1,需要OpenSSL的版本在0.9.8f以上,所以这里就不用升级openssl了.直接升级openssh就行了. 3)Openssh升级前版本:openssh-5.3p1-94.el6:Openssh升级后版本:openssh_6.7p1(源码安装) 4)连接工具xshell 4.要预防超时断开连接.

centos 升级openSSH

1.下载相关依赖包 [[email protected] ~]# yum install -y gcc openssl-devel pam-devel rpm-build 2.下载安装包 wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.8p1.tar.gz 没网路的话,需要自己上传openssh-7.8p1.tar.gz 到centos 中. 3.卸载原Openssh [[email protected]Log

升级OpenSSH及其OpenSSL的正确姿势

需求说明 在本小节中,让我花点篇幅绕个弯子解释下文章标题是什么意思,以及这篇文章到底讲的是什么,这将有助于理解本文的内容. 有时,可能由于审计需要或修复漏洞的需要,我们可能会遇到这么一个需求:升级操作系统的openssl. 那,怎么升级操作系统的openssl呢?那很简单,一条命令搞定: [[email protected] ~]# yum update openssl -y 没错,这的确可以升级操作系统的openssl.这只是小版本的升级,比如将openssl从1.0.1e-43版本升级到1.

CentOS 6.5 升级内核到 3.10.28

网上有不少升级CentOS内核的文章 ,如< CentOS 6.5 升级内核到 3.10.28> ,大部分都是下载源码编译,有点麻烦. 在yum的ELRepo源中,有 m ain l ine(3.13.1). l ong- t erm(3.10.28)这2个内核版本,考虑到long-term更稳定,会长期更新,所以选择这个版本. 1.导入public key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装ELRep