北京SEO

linux中openssh漏洞修复步骤详解

2019/10/10/17:45:38  阅读:2001  来源:谷歌SEO算法  标签: Google

openssh漏洞上次是说linux中一个bug了,下文我给各位整理一下openssh漏洞修复方法,希望能对大家有帮助.

近期有几台主机上线,上线的主机在进行安全合规扫描时,发现如下openssh漏洞,其中有几个是陈年老漏洞,主要为CVE-2014-1692漏洞(openssh schnorr.c漏洞)为今天一月份的新漏洞,由于主机没有配置外网连接,而且针对suse和redhat不同的版本,所以使用用了源码包编译升级openssh版本的方式修复.

一、准备相关包

  1. zlib-1.2.5.tar.bz2
  2. openssl-1.0.1.tar.gz
  3. openssh-6.6p1.tar.gz

相关包已上传百度云盘上.

二、准备其他登录方式

由于其间有卸载ssh的操作,以免登录不上主机,可以选择先配置telnet或者vnc来进行远程操作,这里以telnet为例,如下:

  1. #vim/etc/xinetd.d/telnet
  2. servicetelnet
  3. {
  4. socket_type=stream
  5. protocol=tcp
  6. wait=no
  7. user=root
  8. server=/usr/sbin/in.telnetd
  9. disable=yes
  10. }//phpfensi.com

注,如无telnet-server包,需要先安装该包后,再配置以上选项,配置完后,重启xinetd守护进程生效并查看是否有23端口的监听:

  1. #servicexinetdrestart
  2. #netstat-tunlp

安全起见也可以考虑修改下telnet端口或通过iptables进行源地址指定.

三、程序升级

1、openssl 包的安装,代码如下:

  1. #tar-zxvfopenssl-1.0.1.tar.gz
  2. #cdopenssl-1.0.1
  3. #./config-fPICthreadsshared
  4. #make
  5. #maketest
  6. #makeinstall
  7. #mv/usr/bin/openssl/usr/bin/openssl.OFF
  8. #mv/usr/include/openssl/usr/include/openssl.OFF
  9. //该步骤可能提示无文件,忽略即可
  10. #ln-s/usr/local/ssl/bin/openssl/usr/bin/openssl
  11. #ln-s/usr/local/ssl/include/openssl/usr/include/openssl
  12. //移走原先系统自带的openssl,将自己编译产生的新文件进行链接

注:不能卸载原openssl包,否则会影响系统的ssl加密库文件,除非你可以做两个软连接libcryto和libssl.

配置文件搜索路径,代码如下:

  1. #chmod755/usr/local/ssl/lib
  2. #echo"/usr/local/ssl/lib">>/etc/ld.so.conf
  3. #/sbin/ldconfig-v
  4. #opensslversion-a
  5. OpenSSL1.0.114Mar2012
  6. builton:FriMar1617:14:50CST2012
  7. platform:linux-x86_64
  8. options:bn(64,64)rc4(16x,int)des(idx,cisc,16,int)idea(int)blowfish(idx)
  9. compiler:gcc-fPIC-DOPENSSL_PIC-DZLIB-DOPENSSL_THREADS-D_REENTRANT-DDSO_DLFCN-DHAVE_DLFCN_H-Wa,--noexecstack-m64-DL_ENDIAN-DTERMIO-O3-Wall-DOPENSSL_IA32_SSE2-DOPENSSL_BN_ASM_MONT-DOPENSSL_BN_ASM_MONT5-DOPENSSL_BN_ASM_GF2m-DSHA1_ASM-DSHA256_ASM-DSHA512_ASM-DMD5_ASM-DAES_ASM-DVPAES_ASM-DBSAES_ASM-DWHIRLPOOL_ASM-DGHASH_ASM
  10. OPENSSLDIR:"/usr/local/ssl"

2、卸载原openssh包.

备份启动脚本:# cp /etc/init.d/sshd /root/

停止SSHD服务:# /sbin/service sshd stop

卸载系统里原有Openssh:

  1. #rpm-qa|grepopenssh//查询系统原安装的openssh包,全部卸载。
  2. #rpm-eopenssh--nodeps
  3. #rpm-eopenssh-server--nodeps
  4. #rpm-eopenssh-clients--nodeps
  5. #rpm-eopenssh-askpass
  6. 或rpm-e--nodeps`rpm-qa|grepopenssh`

3、解压安装zlib包,代码如下:

  1. #tar-jxvfzlib-1.2.5.tar.bz2//首先安装zlib库,否则会报zlib.c错误无法进行
  2. #cdzlib-1.2.5
  3. #./configure
  4. #make&&makeinstall

4、升级openssh包,先将将/etc/ssh的文件夹备份,代码如下:

  1. #mv/etc/ssh/etc/ssh_bak
  2. #tar-zxvfopenssh-6.6p1.tar.gz
  3. #./configure--sysconfdir=/etc/ssh--with-ssl-dir=/usr/local/ssl--with-md5-passwords--mandir=/usr/share/man--with-pam
  4. #make
  5. #makeinstall

编译过程中可能报如下错:

  1. checkingforEVP_sha256...yes
  2. checkingwhetherOpenSSLhasNID_X9_62_prime256v1...yes
  3. checkingwhetherOpenSSLhasNID_secp384r1...yes
  4. checkingwhetherOpenSSLhasNID_secp521r1...yes
  5. checkingifOpenSSL'sNID_secp521r1isfunctional...yes
  6. checkingforia_openinfoin-liaf...no
  7. checkingwhetherOpenSSL'sPRNGisinternallyseeded...yes
  8. configure:error:PAMheadersnotfound--phpfensi.com

如果报此错误需要安装相应版本的 pam-devel 包,安装完再重新编译即可.

5、启动openssh服务

编译安装好后,可以通过sshd -d 进行验证,如果没有报错就可以重新启用openssh了,代码如下:

  1. #cp-pcontrib/redhat/sshd.init/etc/init.d/sshd
  2. (suse:cpcontrib/suse/rc.sshd/etc/init.d/sshd)
  3. #chmod+x/etc/init.d/sshd
  4. #chkconfig--addsshd
  5. #cpsshd_config/etc/ssh/sshd_config(如提示覆盖,yes回车)
  6. #cpsshd/usr/sbin/sshd(如提示覆盖,yes回车)
  7. (redhat:cpssh-keygen/usr/bin/ssh-keygen)

通过下面的命令启动ssh服务,代码如下:

service sshd start 或 service sshd restart

:ssh -V //如果看到了新的版本号就没问题啦,如果没有ssh这条命令,执行(redhat、suse: ln -s /usr/local/bin/ssh /usr/bin/ssh).

广告内容

linux中openssh漏洞修复步骤详解 linux中openssh漏洞修复步骤详解 linux中openssh漏洞修复步骤详解

相关阅读

热门评论

SEO探索者团队 SEO探索者团队

SEO服务&网站优化

总篇数182

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法