GVKun编程网logo

Centos6.7升级openssh版本(centos6.9升级openssh)

23

本文的目的是介绍Centos6.7升级openssh版本的详细情况,特别关注centos6.9升级openssh的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Cen

本文的目的是介绍Centos6.7升级openssh版本的详细情况,特别关注centos6.9升级openssh的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Centos6.7升级openssh版本的机会,同时也不会遗漏关于074-升级OPENSSH版本到7.5.p1、Centons7.6升级openssl和openssh、CentOS 5.8升级OpenSSH,OpenSSL到最新版、centos 6.5 升级openssh到7.5过程的知识。

本文目录一览:

Centos6.7升级openssh版本(centos6.9升级openssh)

Centos6.7升级openssh版本(centos6.9升级openssh)

实现前提
公司服务器需要进行安全测评,扫描漏洞的设备扫出了关于 openssh 漏洞,主要是因为 openssh的当前版本为5.3,版本低了,而yum最新的openssh也只是5.3,没办法只能到 rpm 官网找新的包,找到最新的是 6.4,然后通过 yum localinstall 升级了,但是安全部门反映还存在 openssh 漏洞,没办法只能去openssh官网找最新的release,安装版本是 7.7!
升级原因
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可以不用升级OpenSSL
升级前操
为避免升级过程中ssh异常,造成连接断开而无法继续操作服务器,故先留条后路,部署telnet;操作如下:
# yum -y install telnet-server* telnet
# vi /etc/xinetd.d/telnet (将其中disable字段的yes改为no以启用telnet服务)
# mv /etc/securetty /etc/securetty.old #允许root用户通过telnet登录
# service xinetd start
# chkconfig xinetd on
# 部署完毕后,用telnet测试登陆服务器;
升级操作
笔者将升级内容做成了脚本,在服务器上执行以下脚本,即可实现openssh的版本升级,脚本如下:
# cat upte_openssh.sh

#!/bin/bash
# by kazihuo.
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
mv /etc/ssh /etc/ssh.old 
mv /etc/init.d/sshd /etc/init.d/sshd.old
yum -y remove openssh openssh-server openssh-clients openssh-askpass
install -v -m700 -d /var/lib/sshd 
chown -v root:sys /var/lib/sshd 
groupadd -g 50 sshd 
useradd -c sshd PrivSep -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd
tar -axf openssh-7.7p1.tar.gz
cd openssh-7.7p1
yum -y install pam-devel gcc pam-devel zlib-devel
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
make && make install
install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 
install -v -m755 -d /usr/share/doc/openssh-7.7p1 
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.7p1 
ssh -V
echo X11Forwarding yes >> /etc/ssh/sshd_config 
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cp -p contrib/redhat/sshd.init /etc/init.d/sshd 
chmod +x /etc/init.d/sshd 
chkconfig --add sshd 
chkconfig sshd on 
service sshd restart

版本验证
# ssh -V
OpenSSH_7.7p1,OpenSSL 1.0.2k-fips 26 Jan 2017

哦……成功了耶!

074-升级OPENSSH版本到7.5.p1

074-升级OPENSSH版本到7.5.p1

背景

工作需求:系统漏洞需要升级,拿到需求到解决问题花了3个小时,中间走入误区,先用测试机的环境没有解决问题。直接生产机器操作,备份解决问题 。

本文主要简单记录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可以不用升级OpenSSL

二、安装telnet服务
1.安装软件
1 # yum -y install telnet-server* telnet

2.启用telnet服务
# vi /etc/xinetd.d/telnet 
将其中disable字段的yes改为no以启用telnet服务 
# mv /etc/securetty /etc/securetty.old    #允许root用户通过telnet登录 
# service xinetd start                    #启动telnet服务 
# chkconfig xinetd on                    #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统

3.测试telnet能否正常登入系统
三、升级OpenSSH
1.备份当前openssh
mv /etc/ssh /etc/ssh.old 
mv /etc/init.d/sshd /etc/init.d/sshd.old

2.卸载当前openssh
# rpm -qa | grep openssh 
openssh-clients-5.3p1-104.el6.x86_64 
openssh-server-5.3p1-104.el6.x86_64 
openssh-5.3p1-104.el6.x86_64 
openssh-askpass-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-clients-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-askpass-5.3p1-104.el6.x86_64 
# rpm -qa | grep openssh 
注意:卸载过程中如果出现以下错误 
[root@node1 openssh-7.5p1]# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64  
error reading information on service sshd: No such file or directory 
error: %preun(openssh-server-5.3p1-104.el6.x86_64) scriptlet failed, exit status 1 
解决方法: 
# rpm -e --noscripts openssh-server-5.3p1-104.el6.x86_64

3.openssh安装前环境配置
# install -v -m700 -d /var/lib/sshd 
# chown -v root:sys /var/lib/sshd 
当前系统sshd用户已经存在的话以下不用操作 
# groupadd -g 50 sshd 
# useradd -c ''sshd PrivSep'' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

4.解压openssh_7.5p1源码并编译安装
# tar -zxvf openssh-7.5p1.tar.gz 
# cd openssh-7.5p1 
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd 
# make 
# make install

5.openssh安装后环境配置
# 在openssh编译目录执行如下命令 
# install -v -m755    contrib/ssh-copy-id /usr/bin 
# install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1 
# install -v -m755 -d /usr/share/doc/openssh-7.5p1 
# install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1 
# ssh -V              #验证是否升级成功

6.启用OpenSSH服务
# 在openssh编译目录执行如下目录 
# echo ''X11Forwarding yes'' >> /etc/ssh/sshd_config 
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config  #允许root用户通过ssh登录 
# cp -p contrib/RedHat/sshd.init /etc/init.d/sshd 
# chmod +x /etc/init.d/sshd 
# chkconfig  --add  sshd 
# chkconfig  sshd  on 
# chkconfig  --list  sshd 
# service sshd restart

注意:如果升级操作一直是在ssh远程会话中进行的,上述sshd服务重启命令可能导致会话断开并无法使用ssh再行登入(即ssh未能成功重启),此时需要通过telnet登入再执行sshd服务重启命令。

7.重启系统验证没问题后关闭telnet服务
# mv /etc/securetty.old /etc/securetty 
# chkconfig  xinetd off 
# service xinetd stop 
如需还原之前的ssh配置信息,可直接删除升级后的配置信息,恢复备份。 
# rm -rf /etc/ssh 
# mv /etc/ssh.old /etc/ssh

 

 

 

Centons7.6升级openssl和openssh

Centons7.6升级openssl和openssh

安装需注意
在安装时需要卸载OpenSSH,卸载后除当前打开窗口外,不在接受新的SSH连接。

可以安装Telnet,通过Telnet代替SSH连接,直到升级完毕再关闭Telnet

查看操作系统版本

lsb_release -a

输入后会显示下面这些信息,我的版本号是7.6.1810

lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch

distributor ID: CentOS

Description: CentOS Linux release 7.6.1810 (Core)

Release: 7.6.1810

Codename: Core

查询当前版本

ssh -V

openssl version

下载安装包

wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz

wget
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz

卸载openssh和openssl

yum remove openssl openssl-devel openssh -y

安装顺序,先安装openssl,后安装openssh

openssl安装
安装依赖

yum install gcc perl zlib zlib-devel -y

编译安装

tar -zxvf openssl-1.1.1l.tar.gz

cd openssl-1.1.1l

./config shared zlib --prefix=/usr/local/openssl
–openssldir=/usr/local/openssl/ssl

make

make install

配置

echo “/usr/local/openssl/lib” >> /etc/ld.so.conf

ldconfig -v

mv /usr/bin/openssl /usr/bin/openssl.old

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

查看版本

openssl version

接下来安装openssh

安装依赖

yum -y install pam-devel

编译安装

tar -zxvf openssh-8.6p1.tar.gz

cd openssh-8.6p1

./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

make install

配置

echo “PermitRootLogin yes” >> /etc/ssh/sshd_config

echo “UsednS no” >> /etc/ssh/sshd_config

cp -a contrib/redhat/sshd.init /etc/init.d/sshd

chmod +x /etc/init.d/sshd

chkconfig --add sshd

systemctl enable sshd

chkconfig sshd on

chmod 600 /etc/ssh/ssh_host_rsa_key

chmod 600 /etc/ssh/ssh_host_ecdsa_key

/etc/init.d/sshd restart

查看版本

ssh -V

OpenSSH_8.6p1, OpenSSL 1.1.1l 24 Aug 2021

升级完成

CentOS 5.8升级OpenSSH,OpenSSL到最新版

CentOS 5.8升级OpenSSH,OpenSSL到最新版

因业务系统安全要求需要升级OpenSSH版本到最新版。原有CentOS 5.8系统自带版本如下。

[root@localhost ~]# lsb_release -a
LSB Version:	:core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:pri
nting-4.0-noarchdistributor ID:	CentOS
Description:	CentOS release 5.8 (Final)
Release:	5.8
Codename:	Final
[root@localhost ~]# ssh -V
OpenSSH_4.3p2,OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

升级版本:

经过多次验证最终确定使用ssh最新版本openssh-7.3p1和openssl 0.9.8的最终版本openssl-0.9.8zg(CentOS 5.8安装openssl的1.x版本有很多问题,不建议使用)。而且openssh-7.3p1最低要求openssl 0.9.8f。

openssl-0.9.8zg并不涉及OpenSSLCVE-2014-0160漏洞 (心脏出血漏洞)。目前有漏洞的版本有:1.0.1-1.0.1f(包含1.0.1f)以及1.0.2-beta。参考:https://segmentfault.com/a/1190000000461002

安装编译环境

yum -y install gcc openssl-devel pam-devel rpm-build

步骤1:开启telnet服务已确保ssh升级失败可以控制主机

安装并开启telnet服务。

[root@localhost ~]# yum install -y xinetd telnet-server
[root@localhost ~]# vim /etc/xinetd.d/krb5-telnet 
# default: off
# description: The kerberized telnet server accepts normal telnet sessions,\
#              but can also use Kerberos 5 authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream        
        wait            = no
        user            = root
        server          = /usr/kerberos/sbin/telnetd
        log_on_failure  += USERID
        disable         = no #修改disable为no,默认为yes,即禁用telnet服务。修改为no,即表示启用telnet服务
}
[root@localhost ~]# service xinetd restart
[root@localhost ~]# netstat -tnlp | grep :23
tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN      -

Telnet是不能以root直接登陆的,需要提前建立一个普通用户并设置密码。以普通用户登录后再su切换root,SSH升级成功后,记得关闭telnet服务。

[root@localhost ~]# useradd meng
[root@localhost ~]# passwd meng

通过其他服务器测试telnet登录保证可以使用。确保防火墙允许telnet服务,即打开23端口。

[root@localhost ~]# telnet 192.168.1.10
Trying 192.168.1.10...
Connected to 192.168.1.10 (192.168.1.10).
Escape character is '^]'.
    localhost.localdomain (Linux release 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012) (2)
login: meng
Password:

一切就绪,准备开始。

步骤2:安装新版openssl

生成openssl-0.9.8zg RPM包

[root@localhost x86_64]# cd /opt
[root@localhost x86_64]# wget https://www.openssl.org/source/openssl-0.9.8zg.tar.gz
[root@localhost x86_64]# cp openssl-0.9.8zg.tar.gz /usr/src/redhat/SOURCES/
[root@localhost x86_64]# tar xvf openssl-0.9.8zg.tar.gz
[root@localhost x86_64]# cp openssl-0.9.8zg/openssl.spec /usr/src/redhat/Specs/
[root@localhost x86_64]# rpmbuild /usr/src/redhat/Specs/openssl.spec
[root@localhost x86_64]# cd /usr/src/redhat/RPMS/x86_64/
[root@localhost x86_64]# ls openssl* -l
-rw-r--r-- 1 root root 1279018 Nov  6 01:01 openssl-0.9.8zg-1.x86_64.rpm
-rw-r--r-- 1 root root  113834 Nov  6 01:01 openssl-debuginfo-0.9.8zg-1.x86_64.rpm
-rw-r--r-- 1 root root 2237915 Nov  6 01:01 openssl-devel-0.9.8zg-1.x86_64.rpm
-rw-r--r-- 1 root root  607823 Nov  6 01:01 openssl-doc-0.9.8zg-1.x86_64.rpm

安装openssl,安装时需要使用--nodeps选项,否则会报很多软件包的依赖错误“libcrypto.so.6 is needed by (installed) openldap-2.3.43-3.el5.i386”等等。

rpm --nodeps -Uvh openssl-0.9.8zg-1.i386.rpm openssl-devel-0.9.8zg-1.i386.rpm

安装后会导致yum等无法使用,提示“libcrypto.so.0.9.8 is not a symbolic link”或“libssl.so.6 is not a symbolic link”。需要执行以下命令增加链接库的软链接。

ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.6
ln -s /usr/lib/libssl.so.0.9.8 /usr/lib/libssl.so.6
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib64/libcrypto.so.6
ln -s /usr/lib/libssl.so.0.9.8 /usr/lib64/libssl.so.6

此时执行ssh -V会提示“ssh: symbol lookup error: ssh: undefined symbol: FIPS_mode”错误。继续安装ssh新版本即可。

步骤3:安装新版openssh

下载并编译opensshRPM包。下载地址:http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/,选择最新版下载。

[root@localhost ~]# cd /opt
[root@localhost ~]# yum -y install libX11-devel libXt-devel gtk2-devel
[root@localhost ~]# wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
[root@localhost ~]# tar zxvf openssh-7.3p1.tar.gz
[root@localhost ~]# cp openssh-7.3p1/contrib/redhat/openssh.spec /usr/src/redhat/Specs/
[root@localhost ~]# cp openssh-7.3p1.tar.gz /usr/src/redhat/SOURCES/
[root@localhost ~]# cd /usr/src/redhat/Specs
[root@localhost ~]# perl -i.bak -pe 's/^(%define no_(gnome|x11)_askpass)\s+0$/$1 1/' openssh.spec
[root@localhost ~]# rpmbuild -bb openssh.spec
[root@localhost ~]# cd /usr/src/redhat/RPMS/x86_64
[root@localhost x86_64]# ls openssh-* -l
-rw-r--r-- 1 root root 737241 Nov  6 01:41 openssh-7.3p1-1.x86_64.rpm
-rw-r--r-- 1 root root  43458 Nov  6 01:41 openssh-askpass-7.3p1-1.x86_64.rpm
-rw-r--r-- 1 root root  22868 Nov  6 01:41 openssh-askpass-gnome-7.3p1-1.x86_64.rpm
-rw-r--r-- 1 root root 933212 Nov  6 01:41 openssh-clients-7.3p1-1.x86_64.rpm
-rw-r--r-- 1 root root  16799 Nov  6 01:41 openssh-debuginfo-7.3p1-1.x86_64.rpm
-rw-r--r-- 1 root root 456630 Nov  6 01:41 openssh-server-7.3p1-1.x86_64.rpm
[root@localhost x86_64]# rpm -Uvh openssh-7.3p1-1.x86_64.rpm openssh-askpass-7.3p1-1.x86_64.rpm openssh-server-7.3p1-1.x86_64.rpm openssh-clients-7.3p1-1.x86_6
4.rpm

安装后查看版本。

[root@localhost x86_64]# ssh -V
OpenSSH_7.3p1,OpenSSL 0.9.8zg 11 Jun 2015

新版本安装后默认禁止root远程登录需要修改sshd配置文件。修改后重启ssh服务。

[root@localhost x86_64]# vim /etc/ssh/sshd_config
#LoginGraceTime 2m
PermitRootLogin yes  #去掉注释
#StrictModes yes
#MaxAuthTries 6
[root@localhost x86_64]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

测试远程登录,yum等。远程登录成功后关闭telnet服务。

如果还有其他服务器需要升级。直接安装RPM即可。

[root@localhost opt]# ls
openssh-askpass-gnome-7.3p1-1.x86_64.rpm  openssh-server-7.3p1-1.x86_64.rpm       openssl-devel-0.9.8zg-1.x86_64.rpm
openssh-7.3p1-1.x86_64.rpm          openssh-clients-7.3p1-1.x86_64.rpm        openssl-0.9.8zg-1.x86_64.rpm            openssl-doc-0.9.8zg-1.x86_64.rpm
openssh-askpass-7.3p1-1.x86_64.rpm  openssh-debuginfo-7.3p1-1.x86_64.rpm      openssl-debuginfo-0.9.8zg-1.x86_64.rpm
[root@localhost opt]# rpm --nodeps -Uvh openssl*
Preparing...                ########################################### [100%]
   1:openssl                ########################################### [ 25%]
   2:openssl-debuginfo      ########################################### [ 50%]
   3:openssl-devel          ########################################### [ 75%]
   4:openssl-doc            ########################################### [100%]
[root@localhost opt]# ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.6
[root@localhost opt]# ln -s /usr/lib/libssl.so.0.9.8 /usr/lib/libssl.so.6
[root@localhost opt]# ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib64/libcrypto.so.6
[root@localhost opt]# ln -s /usr/lib/libssl.so.0.9.8 /usr/lib64/libssl.so.6
[root@localhost opt]# rpm --nodeps -Uvh openssh-*
Preparing...                ########################################### [100%]
   1:openssh                ########################################### [ 17%]
   2:openssh-askpass        ########################################### [ 33%]
   3:openssh-askpass-gnome  ########################################### [ 50%]
   4:openssh-clients        ########################################### [ 67%]
   5:openssh-debuginfo      ########################################### [ 83%]
   6:openssh-server         ########################################### [100%]
[root@localhost opt]# vim /etc/ssh/sshd_config 
#PermitRootLogin prohibit-password #禁用
PermitRootLogin yes #允许root通过密码登录
[root@localhost opt]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@localhost opt]# ssh -V
OpenSSH_7.3p1,OpenSSL 0.9.8zg 11 Jun 2015

RPM包下载地址:链接:http://pan.baidu.com/s/1eR7438e 密码:ugii

本文参考以下blog,经过亲自测试整理。

http://blog.chinaunix.net/uid-6984-id-5120601.html

http://hxl2009.blog.51cto.com/779549/1035652

centos 6.5 升级openssh到7.5过程

centos 6.5 升级openssh到7.5过程

最近看到有朋友说ssh出现漏洞,7.3一下的不安全,所以就去升级了下,

过程如下: 先在安装相关包

yum install -y gcc openssl-devel pam-devel rpm-build

wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz

tar -zxvf openssh-7.5p1.tar.gz

cd openssh-7.5p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers

make && make install

查看版本 ssh -V

修改配置文件 vim /etc/ssh/sshd_config

如果想远程能够远程登录root用户,去掉此行#PermitRootLogin yes

重启并处理异常 service sshd restart 如果出现以下异常 /etc/ssh/sshdconfig

line 81: Unsupported option GSSAPIAuthentication /etc/ssh/sshdconfig

line 83: Unsupported option GSSAPICleanupCredentials

注释掉相关行数即可

我们今天的关于Centos6.7升级openssh版本centos6.9升级openssh的分享已经告一段落,感谢您的关注,如果您想了解更多关于074-升级OPENSSH版本到7.5.p1、Centons7.6升级openssl和openssh、CentOS 5.8升级OpenSSH,OpenSSL到最新版、centos 6.5 升级openssh到7.5过程的相关信息,请在本站查询。

本文标签: