备份实在是太重要了。
从删库到跑路,大家听过很多,但如果没删备份的话,那只能说玩的不够彻底,不专业。所以仔细研究一下备份,从删库加删备份,最后到跑路,还是很有必要的。当然要是会点奇门遁甲(彻底清除操作痕迹)、尿遁后门之术无影踪等,那就真的成功入神了。所以这里大致分析一下备份管理体系,以备在删库的时候,能够彻底些。
-
备份体系大致分为定义备份对象、确定备份频率和备份方式、制定备份集存储策略和恢复管理五个部分。具体如下:
围绕备份管理体系,进行集中的架构和管理,包括:监控备份是否按时按成;备份集验证策略以及恢复演练的计划等。因为备份一般涉及大容量文件的拷贝复制,所以通常会占用较多 IO 和网络带宽,不好好规划的话,极容易影响生产系统的正常使用。
经过备份定义,大致会得出下列 3 个表格:
表格一:
序号 | 备份对象 |
1 | 应用程序 |
2 | 静态资源 |
3 | 数据库 |
4 | 日志 |
5 | 虚拟机 |
表格二:
备件列表 | ||||||||
序号 | 备件名称 | 备件类型 | 备件型号 | 数量 | 状态 | 登记时间 | 使用时间 | 备注 |
1 |
表格三:
人员备份列表 | ||||||
序号 | 系统名称 | 负责人 | 电话 | 备份人员 | 电话 | 备注 |
1 |
-
定义好备份对象之后,接下来就要根据不同的备份对象定义不同的备份频率。备份频率也可以成为备份策略,一般分为两类,实时备份和非实时备份。实时备份更多是高可用架构或是负载均衡的架构,允许单点故障,如应用部署多台,数据库主从同步或是 Cluster 架构等。实时同步的情况下,一般只需要备份一个节点的内容和数据即可。
非实时备份更多的需要依赖脚本或是其他备份工具按照一定频率进行全量备份或是增量备份。可以选择每日全量备份或是周一、三、五全量备份,二、四增量备份等灵活的策略。比较典型的有 Oracle 的 Rman 备份,以一周为周期,可以周天 0 级备份、周一、周二 2 级备份,周三 1 级备份,四、五、六 2 备份等策略。不同的备份频率产生的最终备份集大小不一样、备份耗时不一样、备份恢复的时间和恢复复杂度都不一样。一般情况下,每日全备最简单,但是有耗时久,占用空间大,恢复时间慢等缺点,详细的增量备份,可以节省备份空间,提高恢复速度,但是管理和恢复比较复杂是其一缺点。
经过指定备份频率之后,上述表格一可以优化为表格 1.1 :
序号 | 备份对象 | 备份频率 | 备注 | |
1 | 应用程序 | 每日全备 | 应用程序一般出变更发布外,很少更新,可以选择每日全备,也可以选择每次变更前备份一次,变更后,备份一次,直至下次变更在备份。 | 一般搭建集群,只需备份单节点即可 |
2 | 静态资源 | 全备+增量 | 静态资源一般情况下选择云服务,借助云来实现高可用和备份。自主备份的话,最好是全备和根据日期的增量备份结合。 | 静态资源根据日期增量备份较佳 |
3 | 数据库 | 全备+增量 | 数据库一般全备+增量备份,同时对于数据库日志的备份应该提高频率,保障数据最小程度丢失。 | |
4 | 日志 | 全备+增量 | 日志主要包括应用日志、数据库日志为主,其他网络设备、安全设备日志为次,进行备份。日志也有明显的时间标志,增量备份较佳 | |
5 | 虚拟机 | 全备 | 一般情况下是不需要虚拟机或是服务器级别的备份,太耗费资源,只需备份其上应用即可。如需一般推荐全备。 |
表格 1.1
1 调用备份工具的时候,注意环境变量。
2 设置单独的备份账号,并且对备份账户的权限进行最小原则设计。
3 备份异常处理设计并且抛出邮件等方式通知。
4 除了每一备份对象的备份脚本外,还需一个脚本检查是否所有备份对象已经自动备份完成。
5 脚本定时任务的执行时间一般选择业务低峰期,减少对生产系统的影响。
经过备份方式,上表格 1.1 可以优化为表格 1.2 :
序号 | 备份对象 | 备份频率 | 备份方式 | 备注 |
1 | 应用程序 | 每日全备 | 脚本 | 可以脚本拷贝文件,也可以采用resync的方式自动同步文件变化。但是实时同步的一个缺点:如果源文件误删或是篡改,备份文件也会相应变化。可以采用延迟同步的情况。 |
2 | 静态资源 | 全备+增量 | 脚本 | |
3 | 数据库 | 全备+增量 | 脚本 | 脚本调用数据库备份工具进行备份 |
4 | 日志 | 全备+增量 | 脚本 | 同应用程序、静态资源的方式 |
5 | 虚拟机 | 全备 | 脚本 | 全备,拷贝虚拟机文件 |
表格 1.2
备份集的存储策略需要考虑两点:存储的位置和周期。一般建议备份集存储位置分为本机 + 同机房备份服务器 + 异地或云端;不同位置的备份集存放的周期不必一致,一般情况本机存放最近 3 天或最近 1~3 次的备份集即可。存储策略的考虑除了基于备份集的大小和存储空间外,还需考量一点,就是所处行业的法律法规:例如有些行业按照网络安全法或是行业监管单位规定,日志需要存放 180 天,数据库备份需要保留 30 天等规定。通过对存储策略的完善,上述表格 1.2 可以优化为表格 1.3 :
序号 | 备份对象 | 备份频率 | 备份方式 | 存储策略 |
1 | 应用程序 | 每日全备 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 |
2 | 静态资源 | 全备+增量 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 |
3 | 数据库 | 全备+增量 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 |
4 | 日志 | 全备+增量 | 脚本 | 本机:3天 备份服务器:180天 异地备份:365天 |
5 | 虚拟机 | 全备 | 脚本 | 本机:1天 备份服务器:3天 |
表格 1.3
恢复管理包括四部分:
1 恢复脚本,即备份对象的备份集所对应的灰度脚本。使用该脚本即可完成备份集的自动恢复。
2 恢复条件,定义恢复脚本在何种情况或条件下才可执行,避免在不适宜的情况下进行恢复造成数据不准确。
3 恢复评价,即对于恢复条件下,使用恢复脚本对于备份集进行恢复的时候,会有什么样的影响,例如数据会有多少丢失等。
4 恢复测试,在执行恢复之后,需要进行测试看是否达到预期效果。
特别特别注意:在执行数据恢复的时候,请务必将当期环境进行备份,例如做快照等方式。避免恢复期间出现问题,导致问题更加复杂。
经过恢复管理,上述表格 1.3 可以优化为表格 1.4 :
序号 | 备份对象 | 备份频率 | 备份方式 | 存储策略 | 恢复管理 |
1 | 应用程序 | 每日全备 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 | 恢复脚本 恢复条件 恢复评价 恢复测试 |
2 | 静态资源 | 全备+增量 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 | |
3 | 数据库 | 全备+增量 | 脚本 | 本机:3天 备份服务器:15天 异地备份:30天 | |
4 | 日志 | 全备+增量 | 脚本 | 本机:3天 备份服务器:180天 异地备份:365天 | |
5 | 虚拟机 | 全备 | 脚本 | 本机:1天 备份服务器:3天 |
序号 | 产品线 | 项目名称 | 备份对象 | IP/Hosts | 备份频率 | 备份方式 | 备份集 | 管理 |
1 | PL-XX | PM-XX | 应用服务器 | 172.X.X.X | 每日全备 | 脚本 | 最近备份集 | 恢复删除 |
备份集明细子表格:
序号 | IP/Hosts | 存储位置 | 保留时间 | 备份时间 | 备份集状态 | 恢复管理 | ||
本机 | 备份服务器 | 异地 | ||||||
1 | 172.X.X.X | N/N/N |
通过脚本或是编程,将备份集相关信息记录并且进行展示,实现对备份集的管理。但是完整的备份管理体系还需要包括备份架构、备份监控、备份集验证策略、应急恢复演练等配套措施。
为了最大程度的减少备份对生产系统的影响,一般建议服务器内备份用的本地硬盘和网络与生产系统用的隔离。;例如单独指定一块网卡用来做备份集的传输,单独的一块或是几块硬盘做本地备份集的存放。
对于备份集集中管理和监控,可以了解指定的备份对象的备份集是否正常完成。备份集验证策略制定备份集验证计划,确保备份集的准确可用性。同时要定期执行恢复演练和系统的应急演练,以增加对备份恢复的熟悉程度。
一般来讲,干坏事最怕被现场抓住,所以简单点,定时执行是很有必要的,离职俩月或半年后在进行自动破坏,结果会更坏,女人会更爱。定时执行加彻底删除操作痕迹,是一个合格的报复着的必备技能啊。删除痕迹三步走:
1history –c
2vi /etc/profile ,找到 HISTSIZE 这个值,修改为 0
3 删除日志:
删除登录失败记录 :echo> /var/log/btmp
删除登录成功记录 :echo> /var/log/wtmp (此时执行 last 命令就会发现没有记录)
删除日志记录 :echo> /var/log/secure
当然彻底一些的话,可以清理一下 /var/log 下的所有日志文件。
清楚痕迹之后,还需要做一下伪装,常用的恶搞是给命令起别名,还有就是伪装成系统用户或是系统脚本,定期执行,这样也不易被发觉。
综合一下,完整的从删库到删备份到完美跑路的脚本应该是:
1 脚本名称伪装,执行用户伪装,定时任务伪装。
2 编写脚本触发器,可以定时触发,也可以人为操作触发,如定义别名,引导用户执行。
3 脚本执行:① 不记录操作日志 ② 进行破坏操作 ③ 清理日志,清空操作痕迹。
4 脚本定时任务删除、脚本彻底删除,不可恢复。
5 思考五分钟,然后跑路。
哦,对!你在编写脚本上传至服务器的时候,也可能被监控到,例如被操作系统记录到(后面会删除),被堡垒机或是跳板机记录掉,所以这一部分的记录也得给删掉。
差不多了,可以进行跑路了。
1 权限管理最小化,制定科学合理的权限管理。
2 人员离职流程要完善,尤其是离职人员权限的回收和相应账户、密码、权限的更新。
当然了,还有一点非常非常重要,那就是:好聚好散。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞8
添加新评论1 条评论
2023-04-26 22:30