• 首页
  • 搜索
  • 夜间模式
    ©2012-2025  Feng's Blog Theme by OneBlog
    搜索
    标签
    # 随笔 # 维修 # Wordpress # 阿里云 # 服务器 # typecho # Ghost # iphone # 网站 # word
  • 首页>
  • IT网络>
  • 正文
  • Linux Glib漏洞修复经历

    2015年02月01日 69 阅读 0 评论 5939 字

    前两天收到阿里云邮件,一看又炸眼了!Linux漏洞又来了(看来这Linux也不是铁板一块呀),这次的漏洞是Linux Glibc(幽灵漏洞)

    俺家的CentOS看来也得赶紧修复了,这不今天抽出时间赶紧来修复一下。先来看看各家(阿里云和腾讯云)给出的办法,其实都差不多,下面就来说说我自己的修复经历吧。
    第一次是用阿里云给出的CentOS修复方法:

    yum update glibc

    很快就OK了(后来二次证明确实这样就行了),可后来又看到需要先运行清理再升级(这是腾讯云给的办法,阿里云论坛上也有人反应),具体的命令是:

    yum clean all; yum update glibc

    结果这一操作后,前面的清理倒是顺利,后面的升级就不行了,每次都升级失败,这当中超时占主要部分(天朝呀!),反复重启试了几次都不行,干脆回滚了快照,还是按照先头阿里云给出的办法直接修复,后来不放心,又按阿里云给出的测试脚本:

    #include <netdb.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <errno.h>
    #define CANARY "in_the_coal_mine"
    struct {
      char buffer[1024];
      char canary[sizeof(CANARY)];
    } temp = { "buffer", CANARY };
    int main(void) {
      struct hostent resbuf;
      struct hostent *result;
      int herrno;
      int retval;
      /*** strlen (name) = size_needed -sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
      size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
      char name[sizeof(temp.buffer)];
      memset(name, '0', len);
      name[len] = '';
      retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
      if (strcmp(temp.canary, CANARY) !=0) {
        puts("vulnerable");
        exit(EXIT_SUCCESS);
      }
      if (retval == ERANGE) {
        puts("notvulnerable");
        exit(EXIT_SUCCESS);
      }
      puts("should nothappen");
      exit(EXIT_FAILURE);
    }

    将上述代码内容保存为GHOST.c,上传到服务器,直接;

    [root@AYxxxxxxxxxxx ~]# ./GHOST
    notvulnerable

    根据阿里云的说法,测试结果如果是:notvulnerable就说明漏洞修复成功了,反之如果是vulnerable ,则表示存在漏洞,需要进行修复。还有前面忘了说明一下了,当修复好漏洞后,可以使用命令查看

    rpm –qa|grep glibc-2.12

    具体结果依据你的系统会有所不一样:

    OS版本
    对应Glibc版本
    CentOS6.x/redhat6.x
    glibc-2.12-1.149.el6_6.5
    OS版本: CentOS 6.2 安全版(tlinux)
    glibc-2.12-1.149.tl1.5
    CentOS5.x/redhat5.x
    glibc-2.5-123.el5_11.1
     
    OS: Ubuntu 更新方法如下:【针对Ubuntu,腾讯云软件仓库已完成同步】
    1)用户使用root权限登录系统或使用sudo获取root权限,执行以下命令:#apt-get update#apt-get install libc6
    2)执行完成以后,查看版本, 输出如下表示更新完成:root@VM-ubuntu:~# dpkg -l|grep libc6
    OS版本
    对应Glibc版本
    Ubuntu12.x
    2.15-0ubuntu10.10
    Ubuntu14.x
    2.19-0ubuntu6
    Ubuntu10.x
    2.11.1-0ubuntu7.20

    至此,俺家的CentOS应该穿上防护衣了,又可以继续的得瑟了,呵呵!
     
     

    本文著作权归作者 [ Feng ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    CentOS漏洞
    — END —
    首页
    Copyright©2012-2025  All Rights Reserved.  Load:0.023 s
    Theme by OneBlog V3.6.3
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。