首页 > 其他分享 >记10月份两次生产故障

记10月份两次生产故障

时间:2023-01-19 23:13:34浏览次数:35  
标签:10 gitlab 两次 故障 服务器 root pam tally2

记10月份两次生产故障   我的线下考试因为新冠疫情,本来12月能考,硬是推到了年后,搞到我无比困扰,早考早超生嘛~~~~感觉太久没写博客,人都懒了   之前说过,在10月份那会出现了两次生产故障,一个是关于系统安全加固的;另一个是git问题。   生产故障(1)   系统安全加固做的是登录失败处理功能策略,大家肯定不陌生,centos 7用的是pam_tally2模块,但如果换成阿里的操作系统:Alibaba Cloud Linux 3.2104 LTS 64位,再使用pam_tally2模块,就会出现问题了。而我在生产环境刚部署完(9月份),就设置了这个登录失败功能的配置。当时记得等保是需要做的,而且我还做过多次,于是直接编辑文件:/etc/pam.d/system-auth 和 /etc/pam.d/password-auth,不假思索地敲进去

auth        required      pam_tally2.so  onerr=fail  deny=5  unlock_time=180 even_deny_root root_unlock_time=180
       wq保存的时候,是不会直接告诉你配置是没问题的,只有查看:/var/log/secure,才会看到报错(这个我还是事后才知道关于pam模块的日志都在secure里)
Oct 12 10:43:10 sudo[610567]: PAM unable to dlopen(/usr/lib64/security/pam_tally2.so): /usr/lib64/security/pam_tally2.so: cannot open sh
ared object file: No such file or directory
Oct 12 10:43:10 sudo[610567]: PAM adding faulty module: /usr/lib64/security/pam_tally2.so
       我当时以为没有问题,因为测过登录失败处理是能生效的。   另外,为了方便,我还设置了普通用户免密码切换到root “sudo su -”。   visudo查看是这样的配置
{普通用户}    ALL=(ALL)      NOPASSWD:ALL
  然后,10月份那会,阿里的云安全中心,爆出个应用系统的远程执行漏洞,我们经理测试过,这个漏洞很可怕,能在系统上提权。当时领导担心攻击者已经偷偷潜入到服务器,伪装成正常程序,甚至想我格式化系统,等修复完问题再重新部署。我苦口婆心地给他说,要是以后又爆出个这样的漏洞,岂不是每次都要格式化系统?这样非常浪费人力物力,所以最后还是没有格式化,该安全加固赶紧加固。想到应用程序运行用户就是那个可以直接免密码切换到root的用户,所以我得赶紧把这个权限收回来,运行“su - ”需要输入root密码。大家都知道直接 visudo 把普通用户那条命令去掉即可,我当时选择晚上10点后生产环境服务停了之后再去掉。   当去掉的时候,我发现普通用户再也切换不到root了,报su 模块错误,当时我还以为root密码改过,关机重置密码后还是不行。  

   在接近11点夜深人静的时候,我开始急了(那会也是经常加班,系统刚上线没多久,所以人确实不太清醒),改之前没有做快照备份,想着一个这么简单的东西,我多做过很多次了,然而,就是自信过头害了我~~~,想到每天凌晨3点都有备份快照,应用服务器应该除了jar包外,没有什么重要东西,然后关机直接回滚前一天云盘快照了。回滚完能切换到root了,但想起来开发有在这台服务器建了个目录,专门用来存用户图片,再查下这个目录,搞丢了当天凌晨3点后到我回滚快照前的数据!跟阿里沟通能不能后台恢复,他们也没办法,话说故障是国庆假期之后连续上班7天的第7个工作日,本想着第二天终于能休息,但搞出个这样的故障,只能第二天回去认错(是的,我基本一晚上没睡,想着怎么被祭天,想着我赶紧转行再也不要当运维了,乱七八糟想了一堆,第二天也是早早醒了,7点多打电话给我经理、开发说明了情况,说回去公司一趟,承担各种后果)。最后这个事,我经理统一了客服口径,给说那天网络不好,叫客户重传数据,而我将功补过,后面两周基本天天无偿加班,都不好意思提加班,因为自己犯的错。后面的重传数据,并不是把客户图片放上去就行了,图片名字是程序给的无规律一长串的字符串,我得改成那样的名字,才能对上。。。

  回到正题,为啥会搞出这样的问题:因为阿里的操作系统是基于centos 8 的(Alibaba Cloud Linux 3.2104 LTS 64位),centos 8 是没有 pam_tally2.so 这个模块,直接就写上去了,连在测试服务器都没测过!!!当时做的采购方案,是没有预留买相同操作系统的测试服务器的(一直想着采购方案怎么压成本),全部都是生产,以至于我对阿里的操作系统很陌生,第一次用。

  写了这个模块到配置文件没关系,前提是visudo没有去掉普通用户免密码运行root命令的配置,去掉就会导致普通用户怎么样都无法切换到root。最后发现centos 8 需要用 faillock.so。

  总结就是:

(1)不要太过自信; 

(2)按规范行事(后来我领导还真的搞了个工单记录,说修改生产环境配置前有提交个工单记录,包括问题处理措施,恢复措施,需要申请什么权限等等),改之前一定要做好备份!

(3)不要一知半解,譬如我就不知道pam安全模块的日志都写到 secure 日志里的,而且我还直接忽略报错信息,没去深究报错会影响什么东西

 

生产故障(2)

  这个也是10月份的生产故障,不过只有前台和我知道,业主方没有发现。。。   当时老板想把业主方的网站代码迁回到他们的服务器上,不要放在我们公司域名下,因为想用他们的WAF保护,因为原来一直用我们公司的gitlab,所以需要我在他们服务器上重新部署个gitlab。然后把域名配置到WAF防护下。   在测试修改远程关联的gitlab地址时(也就是从我们公司,指回到业务方的服务器上),不知道什么原因,在同步到线上的过程中,竟然把在我们公司的gitlab存放的代码给清空了!!!这个网站一直是从gitlab拉的代码,gitlab代码空了,直接导致网站访问404。   幸好我之前空闲没事的时候,做了一主两备的架构,其中一台备机是20分钟同步一次,另一台是晚上同步一次。一主一备代码都被清空了,只能用那台晚上同步一次的备机恢复着先。   最终不需要改回到业主方的gitlab,因为gitlab拉取代码的时候用到ssh协议,WAF压根不支持,只支持https协议,迁移回去没有多大意义(总不能git同步的时候开个https协议,每次都需要人手输入账号密码那么麻烦的吧),WAF防护不了他们的代码。所以后来,我再也不需要做这种危险的修改关联gitlab远程仓库的测试(感觉已经超出我的能力水平),业主方这个gitlab也变成备用代码仓库留着。。。   因为我告诉老板,不仅WAF保护不了,而且业主方那批服务器还没有快照备份(天翼云),放我们公司名下(阿里云),会更有保障。终逃过一劫。。。   

 

标签:10,gitlab,两次,故障,服务器,root,pam,tally2
From: https://www.cnblogs.com/windysai/p/17062274.html

相关文章

  • P1014 [NOIP1999 普及组] Cantor 表(模拟/枚举)
    https://www.luogu.com.cn/problem/P1014详解见代码内部注释部分#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;cons......
  • 接口突然超时10宗罪。。。
    前言不知道你有没有遇到过这样的场景:我们提供的某个API接口,响应时间原本一直都很快,但在某个不经意的时间点,却出现了接口超时问题。也许你会有点懵,到底是为什么呢?今天跟......
  • AcWing1081. 度的数量
    题目描述求给定区间\([X,Y]\)中满足下列条件的整数个数:这个数恰好等于\(K\)个互不相等的\(B\)的整数次幂之和。例如,设\(X=15,Y=20,K=2,B=2\),则有且仅......
  • java10-20K
    ......
  • 概念 | 电力系统中的故障
    概念定位电力系统运行中,存在以下三种情况:正常运行不正常运行,包括两过一低一振荡:过负荷:负荷超过额定值引起电流升高(最常见的不正常运行)过电压:发电机突然甩负荷频率......
  • leetcode1030
    leetcode1030_距离顺序排列矩阵单元格给出R行C列的矩阵,其中的单元格的整数坐标为(r,c),满足0<=r<R且0<=c<C。另外,我们在该矩阵中给出了一个坐标为 (r0......
  • 洛谷 P1002 [NOIP2002 普及组] 过河卒
    P1002[NOIP2002普及组]过河卒#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){intHorse_y[8]={2,1,-1,-2,-2,-1,1,2};......
  • Win10安装cuda11.0+cudnn8.0(这是配套的)
    首先你要知道你的电脑显卡能支持的cuda最大版本:如下下图所示,支持最大版本为cuda11.0.228版本!一、下载Win1064位下载cudnn8.0链接:https://pan.baidu.com/s......
  • 100w人在线的 弹幕 系统,是怎么架构的?
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • mysql主(云服务器centos7)从(本地win10)搭建失败记录【reggie_take_out】
    mysql集群结构主库(云服务器centos7)配置[Err]1055-Expression#1ofORDERBYclauseisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'informat......