小站修复记

  • A+
所属分类:系统文档

前言

前段时间,一直收到腾讯云安全事件邮件,主要涉及到 SSH、openssl、sudo 几个高危漏洞;openSSH 相对来讲是比较好处理的,但是 OpenSSL却比较棘手,因为涉及的依赖比较多……

依照腾讯云官方的指导文件,直接可以使用yum进行升级,我也遵照执行了,但没过几天又被检测出OpenSSL漏洞,一模一样……

此时我只能使用OpenSSL源码包进行编译安装,以规避安全漏洞问题。只可惜我轻敌了,OpenSSL 依赖真多,而且都是涉及到系统级别,处理不好就可能引出一堆问题,巧的是这件事发生在我的身上……

No. 1

我先编译安装 openSSH,一切顺利,没有出现什么幺蛾子,sudo 升级也一样:sudo 我是直接用 dnf update sudo 进行升级的(我的是CentOS 8),openSSH 用的是源码包进行编译安装,一切顺利。

接着对 OpenSSL 升级:dnf update openssl,也算顺利,系统功能正常,至少我没发现异常。

No. 2

大概一个礼拜左右,我再次收到腾讯云安全邮件,OpenSSL 高危漏洞。我看了漏洞情况,和一个礼拜前收到的一模一样,此时我确实点懵逼了……

No.3 开始对 OpenSSL 再次升级

  • 下载 OpenSSL 最新源码包;
  • 编译进行安装升级;

如此两步骤,好像没有什么太大问题,遂执行之

我一路猛操作,都没有什么问题,只是在执行命令 openssl version 的时候版本是我下载的版本,但执行 ssh -V 的时候,OpenSSL 版本是老的版本。

我所想到的是库没有进行替换,虽然版本是最新版本了,但是库文件还是老版本,想到的是进行库文件替换:

cp libssl.so.1.1 /usr/lib64/
cp libcrypto.so.1.1 /usr/lib64/
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 -v

此时一执行命令ssh -V,提示 xxx.so not found …… 心里那个崩溃啊,但是还是没有意识到问题的严重性。因为有其它事情,我就暂且搁在一边,等到晚上我准备处理异常的时候发现无法 SSH 云服务器了,VNC 也不行 …… 只能进行工单提交了

No. 4

工单提交后,腾讯云工程师接单帮忙处理,4个小时候后,北京客服打电话告诉我:已经尝试各种方法了,还是没办法恢复,只能把数据先拷出来,然后重置云服务 ……

只要数据能恢复,我就满足了,重置云服务没啥(这里是腾讯云工程师帮忙挂载数据出来,然后给我一个临时账号去拷贝数据的) ……

No. 5

数据拷贝完成,然后就是重置服务器……
这次我直接先升级 OpenSSH 和 OpenSSL,问题还是一样源码编译 OpenSSL,重置云服务器不下10次,最后只得放弃…… 我用dnf update openssl && dnf update openssh && dnf update sudo 进行升级,同样还是被检测OpenSSL漏洞,被我强制忽略 ……

No.6 小站数据恢复

  • GitHub 下载最新的 Typecho 文件;
  • 把数据目录 mariadb/var/typecho 上传到云服务 mariadb/var/typecho,并进行权限修改

    chown -Rf mariadb:mariadb mariadb/var/typecho
    
    # 此时登陆数据库,可以看到有个库为 typecho
    show databases;
  • 创建用户并进行数据授权

    # 创建用户
    CREATE USER IF NOT EXISTS typecho IDENTIFIED BY '123456ABC';
    
    # 授权
    GRANT ALL ON typecho.* TO [email protected];
    
    # 刷新权限
    FLUSH PRIVILEGES;
  • 跨域问题得以解决: 原来 www.deyun.fun 和 deyun.fun 是不一样的

    # 我一直都自己访问 https://deyun.fun ,没发现什么问题,各种资源都是正常
    # 我无意中在百度快照发现小站不对,很多资源加载不了,F12 一看,都是跨域报错
    
    # 后来,一大佬说你可以重定向
    # 于是,在Nginx 配置文件加上如下代码,进行重定向,也就是说 所有来自 www.deyun.fun 的请求都会重# 
    # 定向到 deyun.fun
    
    # 增加代码
    rewrite ^/www.deyun.fun deyun.fun;
    
    # 重启 Nginx,因为我用的是 lnmp 一键脚本安装,所有有这个命令 lnmp
    lnmp nginx restart
    
    
    # www.deyun.fun 正常访问是解决了,但是很多我博客中的媒体资源,如图片、视频等都加载不了,同样也是跨域问题。如果每篇文章都去修改,那也太累了
    
    # 数据修改连接
    update `typecho_contents` SET `text` = replace (`text`, 'https://www.deyun.fun', 'https://deyun.fun');
    
    # 文章引用资源问题也解决了,但是网站本是一些页面引用的怎么办呢?
    # 切换到博客程序目录下
    sed -i "s/www.deyun.fun/deyun.fun/g" `grep "www.deyun.fun" -rl ./`
  • 写了备份脚本,每天定时备份,并且把备份文件邮件方式发送至 QQ 邮箱(空间大);
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: