脚本升级openssh

一、问题描述(默认Linux安装的SSHD服务存在一些漏洞,特此升级)

在曾经手动升级sshd服务后发现了三个后遗症:

  1. selinux开启的状态下,重启机器sshd不启动(原因:库文件“libcrypto.so.1.0.0”的selinux标记不正确,导致sshd无法调用访问该文件,使用setroubleshoot工具找到原因)
  2. hosts.allow,hosts.deny对sshd不起作用(原因:编译时未加上--with-tcp-wrappers)
  3. sftp无法使用(原因:源码安装后配置文件未找到sftp-server工具)
  4. 为了方便以后安装,再加上修补以上遗留问题,特写成脚本。(脚本测试在CentOS6.5、RHEL6.4、CentOS5.10测试通过)

注意事项:为了降低风险,运行脚本之前,需以telnet登陆系统取得root权限(telnet默认不允许root登陆,可以设置允许root或者以普通用户切换)

二、安装

1.  工具包:openssh-6.6p1.tar.gz     openssl-1.0.1g.tar.gz

openssh:  http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/

openssl:   ftp://ftp.openssl.org/source/old/1.0.1/

2. 安装时将脚本和两个包放在相同路径下,解决依赖请配置好YUM仓库

3. 脚本:updatesshd.sh

#!/bin/bash
#-------------------------------------|
#"WARING"!!! Please use telnet-server.|
#"WARING"!!! Please use telnet-server.|
#"WARING"!!! Please use telnet-server.|
#-------------------------------------|
ssh_update()
{
#Backup the old files
SSL_VER=openssl-1.0.1g
SSH_VER=openssh-6.6p1
CUR_DIR=$(pwd)
SSH_DIR=/usr/local/openssh
cd  /etc/ssh/
mkdir old
mv ssh* moduli  old
mv /etc/init.d/sshd    /etc/init.d/sshd.old

#Update ssl
yum -y install gcc gcc-c++ zlib-devel pam-devel tcp_wrappers*
cd $CUR_DIR
tar zxf    $SSL_VER.tar.gz
cd $SSL_VER
./config shared zlib
make && make install
mv  /usr/bin/openssl    /usr/bin/openssl.old
mv  /usr/include/openssl    /usr/include/openssl.old
ln -s  /usr/local/ssl/bin/openssl    /usr/bin/openssl
ln  -s   /usr/local/ssl/include/openssl/   /usr/include/openssl
echo  "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig
/sbin/restorecon -v /usr/local/ssl/lib/libcrypto.so.1.0.0
cd ..

#Update sshd
rpm -e `rpm -qa | grep openssh` --nodeps
tar zvxf $SSH_VER.tar.gz
cd $SSH_VER/
./configure --prefix=$SSH_DIR --sysconfdir=/etc/ssh  --with-pam  --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --with-md5-passwords --with-zlib=zlib
make && make install
cp contrib/redhat/sshd.init   /etc/init.d/sshd
chmod  u+x   /etc/init.d/sshd
chkconfig --add   sshd
chkconfig sshd on
cp -rf sshd_config  /etc/ssh/sshd_config
cd  $SSH_DIR
cp -rf  sbin/sshd  /usr/sbin/sshd
cp -rf  bin/*  /usr/bin/
sed  -i ‘s#/usr/libexec/sftp-server#/usr/local/openssh/libexec/sftp-server#‘  /etc/ssh/sshd_config
service sshd  restart
}

read -p "Are you using telnet[YES/NO]?" ANSWER
case $ANSWER in
YES)
   echo "Fine,continue!!!"
   ssh_update 2>&1 | tee -a /tmp/update.log ;;
NO)
   echo "It is dangerous,bye!!!";;
*)
   echo "Error choice";;
esac

  

4. 结果验证:

[[email protected] src]# ssh  -V

SSH, OpenSSL 1.0.1g 7 Apr 2014

时间: 2024-11-05 22:49:26

脚本升级openssh的相关文章

CentOS 5.8 升级openssh至6.7

一.简介 最近公司一些生产系统服务器被机房扫描出openssh工具有漏洞,于是对线上的一些服务器中的openssh进行的升级,现将具体的过程写成博文,希望对大家有所帮助-- 由于CentOS 5 官方所提供的yum源中最新版本的openssh也相对很老了,所以就只有两种办法了: 1.自制RPM包进行升级: 本来我最先考虑的是使用这种方法,因为在生产环境中缺乏一些编译所需要的软件包,如果都一一安装的话又会产生未知的安全隐患,但是当把RPM制作完成后,在测试机上测试的时候发现最新版本的openssh

SuSe 11以编译安装的方式升级OpenSSH、OpenSSL及依赖问题解决

OpenSSH OpenSSH是实现远程控制.远程加密传输数据的安全的网络连接工具,也就是为我们提供ssh服务的程序.SSH由服务端和客户端组成,服务端是一个守护进程(sshd),在后台运行并响应客户端的连接请求:客户端包含ssh(openssh-clients).scp.rsync.slogin.sftp等应用程序. SSH服务本身提供了一种安全加密的数据传输方式.在一些比较旧的Linux系统版本中,多数是openssh 5版本.而目前OpenSSH已更新到OpenSSH 7.X版本,修复许多

centos6.6升级openssh到最新版本7.5.p1

本文主要简单记录下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

升级openssh

由于升级OpenSSH涉及到安全性问题,为保险起见,在升级前最好安装telnet服务作为备用方案,然后在升级成功后再停止telnet即可. 一.OpenSSH升级相关源码包下载地址 zlib http://www.zlib.net/zlib-1.2.11.tar.gz zlib其他版本下载地址 http://www.zlib.net/fossils/ openssl-fips http://www.openssl.org/source/openssl-fips-2.0.16.tar.gz Ope

升级openssh漏洞

升级openssl和openssh 最近接收到客户的漏洞提醒,openssl和openssh的漏洞,解决办法就只有升级. 升级前环境 ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 ~]# rpm -qa | grep openssl openssl-1.0.1e-15.el6.x86_64 ~]# uname -r 2.6.32-431.el6.x86_64 ~]# rpm -qa |grep zlib zlib-1.2.3-

升级OpenSSH及其OpenSSL的正确姿势

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

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

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

Linux 部署或升级openssh

运维Linux系统,部署或升级openssh是经常面临的事,以下已redhat6和redhat7为例. 在redhat6中部署openssh会有什么坑,在编辑openssh源码包时会报一些类似的错误,如下: checking OpenSSL header version... 10000003 (OpenSSL 1.0.0 29 Mar 2010)     checking OpenSSL library version... configure: error: OpenSSL >= 1.0.1

linux升级openssh到7.9

客户linux主机ssh存在高危漏洞,需要进行升级修复. linux联网后,直接命令行: [[email protected] ~]# yum update openssl -y 此命令只是小版本的升级,比如将openssl从1.0.1e-43版本升级到1.0.1e-57版本,但好多时候我们需要升级的是大版本,而不是这种小的修复. yum remove openssl命令执行时,可以看到,非常非常多的软件是依赖于openssl软件.openssl是一个非常基础的软件.编译安装一个新版本的open