本来是一个美好的大周末,突然却被一个突如其来的电话把我从美梦中惊醒,然而一切还不止这么简单......

  本来刚开始了解到信息是客户的一台RouteOS设备挂了,听到这个消息时觉得自己应该可以很快解决,毕竟就是重启一下的事情,然而真正登录到后台才发现一切都没这么简单......

后台查看操作系统状态

  唉,别提有多难过,后台竟然发现系统刚刚启动就立马重启了,而且反复如此,陷入了死循环,因此第一时间判断为此台RouteOS被黑了(事实证明是我多虑了),看样子是没有办法短时间恢复了,让客户切换业务吧,客户涉及此台设备的业务路由进行切换。

初步分析

  判断为系统被黑后,开始查看这台设备的监控信息。

  客户提供的zabbix监控数据。

  查看我方后台监控,发现CPU和内存使用率确实有异常,从客户监控获取不到数据的时间点开始,我方监控可以准确的显示到改设备的CPU使用率开始异常,与正常业务模型相比,变化明显,内存使用率也开始从正常的百分之十以下的使用率突增到百分之七十以上,此刻心中更加确信此台设备是被黑了。

  咋整,此时内心无比尴尬,因为这个客户以前就已经被黑过一次了(RouteOS版本低,存在漏洞最终被攻击),并且已经升级到了最新版本还购买了KEY,没办法硬着头皮和客户说吧。因为自己不太了解RouteOS系统,所以将故障升级,且料二线工程师告诉我没办法修复了,唉,忍着被挨骂的风险告诉客户吧。

进一步获取信息

  告诉了客户系统可能被黑了以后,客户说被黑的可能性不大,原因如下:

  • 已经将操作系统升级至最新版本,且使用的不是破解版,还购买了key。
  • 已经将所有登录方式关闭,只留下了web界面这种登录方式,可以登录的地址只开放给了客户公司的公网地址,同时修改了默认端口。
  • 密码复杂度极高:20位以上随机生成密码。

  目前从监控中看到的信息,CPU和内存有异常,客户表示它们的zabbix没有监控到内存有变化,和客户解释因为客户zabbix监控是使用snmp协议对此台设备进行监控的获取不到数据是因为网络不通了导致,而我方监控是直接从宿主机获取的日志,所以可以监控到后续的信息,但是根据客户提供的信息,被攻击的风险确实不大,只能硬着头皮搞了,尝试下能不能修复系统。

修复系统

  当前第一要务是先把操作系统启动,确保可以稳定运行不会再一次重启,后台挂载修复镜像后,进入修复模式,对这个系统也不了解,只能一步一步琢磨加上网上搜索资料,看到有文章也遇到过类似的问题,RouteOS重启的问题,可能和watchdog有关。

  进入修复模式,将watchdog配置文件进行备份,重启发现系统正常了,确认了操作系统反复重启应该是watchdog配置导致,向客户询问有关watchdog的配置信息。

  后续经过确认客户配置如下:

Watch Address: 公网网关地址
Ping Start After Boot: 00:01:00
Ping Timeout: 10s

  怀疑是客户配置导致,新开了一台RouteOS进行测试,将测试机的Watchdog配置和客户相同后重启,发现操作系统确实会一直重启,确认了是因为配置导致操作系统不断重启,后续后台重启测试机的同时开始ping测试机的公网地址,到可以ping通时用时大约100s,怀疑是客户操作系统不断重启的原因是因为系统启动网卡还未完全就绪,RouteOS watchdog就已经开始执行ping测试,测试10s发现与监控地址不通,直接重启,如此反复陷入死循环。

推翻最初分析

  这样就可以推翻最初被黑的分析了,至于监控到CPU和内存突增,就是操作系统反复重启导致的了,唉,通过一个一个目录找文件,到最终能把系统修复,不容易啊。

确认系统关机原因

  系统反复重启的原因已经确认了,但是又是什么原因导致最初系统会关机呢,这个同样需要确认下,所以和客户要了重启时间段的日志,获取到有效信息如下:

  从日志字面意思理解是watchdog程序出现了严重错误,导致watchdog不能ping设置的网关地址,最终重启RouteOS。

  为了确认下不是网络原因导致的,我在测试机上同样配置了相关操作,watchdog检测一个服务器的地址,后续在服务器上打开防火墙禁止ICMP协议,RouteOS开始重启,重启后获取日志信息如下:

  好了,确认了如果是网络问题,会报timeout错误,至此修复了客户的操作系统,并确认了操作系统最初重启的原因,心累,不过是一次很好的学习体验。

RouteOS 频繁自启的更多相关文章

  1. 从“跳一跳”来看微信小程序的未来

    从“跳一跳”来看微信小程序的未来   相信大家这两天都被微信新推出的小程序跳一跳刷爆了朋友圈,为了方便用户在使用过程中切换小程序,微信在这次6.6.1版本中加入了下拉可快速切换小程序的功能,而“跳一跳 ...

  2. Logstash使用grok解析IIS日志

    Logstash使用grok解析IIS日志 1. 安装配置 安装Logstash前请确认Elasticsearch已经安装正确,参见RedHat6.4安装Elasticsearch5.2.0. 下载链 ...

  3. 【Ubuntu安装,ATX基于uiautomator2】之安装步骤

    Ubuntu系统下安装uiautomator2步骤: 1.安装命令: pip install --upgrade --pre uiautomator2 但是报错: Command "pyth ...

  4. 【Mac安装,ATX基于uiautomator2】之安装步骤

    Mac系统下安装uiaotumator2: 参考网址:<uiautomator2>以及参考github官方文档 注意:下面有坑,如果你没有下面的问题请直接跳转到 1.安装uiaotumat ...

  5. 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...

  6. BroadcastReceiver之(手动代码注册广播)屏幕锁屏、解锁监听、开机自启

    对于解锁和锁屏这种用的比较频繁action,谷歌做了限制,必须手动用代码注册 直接上代码:这是注册广播(手动代码注册广播接收者) public class MainActivity extends A ...

  7. IT运维如何防止陷入“中年油腻”和频繁被动地打“遭遇战”?

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈峻近期,我拜访了一家文化传播公司的 IT 运维总监 Tim,他向我讲述了他的团队是如何像当年玩<大航海时代>那样将 IT ...

  8. ASP.NET CORE Linux发布工具(文件对比 只上传差异文件;自动启停WebServer命令;上传完成自动预热WebServer)

    最近这几日在搞一个小网站:教你啊 :(感兴趣的朋友可以来捧场,在这个网站上有任何消费我都可以退还) 由于更新频繁,手动更新特别麻烦,于是开发了这个小工具 用了一段时间,还是挺顺手的,同时.NET Co ...

  9. 应用shell脚本停启Tomcat

    最近在工作中频繁的操作多个tomcat,顺便就简单研究了一下 一. 简介 Shell 是一种与操作系统直接交互的程序,Unix系统中叫Bourne Shell,包括以下几种 Sh—Bourne She ...

随机推荐

  1. 清晰易懂!关于PS入门的超详细笔记!

    给大家分享一篇关于PS入门的超详细笔记!原理讲解清晰明了,虽不是新版本解析,但都是新手学习PS必掌懂的一些知识点,灰常的实用,转走收藏学习! 编辑:千锋UI设计 来源:PS学堂

  2. IOS 小新兵

    2017-07-02 lipo -info BaiduOAuthSDK.a  查看a文件支持的架构 第一个坎: 报错:  未找到模块baiduLogin对应的类BaiduLoginModule.若是自 ...

  3. response输出随机图片、定时刷新网页

    第一招:利用response向浏览器输出图片: //获取验证码 在<img />标签内的src属性设为请求路径/verifyCode?goodsId=xxx&token=xxxxx ...

  4. 2019.01.16 bzoj4399: 魔法少女LJJ(线段树合并)

    传送门 线段树合并菜题(然而findfindfind函数写错位置调了好久) 支持的操作题目写的很清楚了,然后有一个神奇的限制c≤7c\le7c≤7要注意到不然会去想毒瘤线段树的做法. 思路: 这题只有 ...

  5. jQuery 常用效果

    hide和show 同样有 fadeInhe fadeOut 的功能 $(document).ready(function(){ $("#hide").click(function ...

  6. 树状数组(hdu-4325,hdu-1166,pat-1057)

    1.hdu-4325 题意:插花,要么给出插花的范围,要么查询某个点的花的个数. 思路:通过更新,每次更新区间S到T的数值,表插入花(这一点一开始没想到), 要么查询某个点的花的数目. (与以往单纯的 ...

  7. 第10章:MongoDB-CRUD操作--文档--修改--修改器

    ① $set:进行内容的重新设置 语法:{"$set" : {"成员" : "新内容"}}: 范例:将年龄是20岁的人的成绩修改为89 db ...

  8. 【1】C#文件操作之目录操作

    命名空间:System.IO Directory类下的静态方法: 一.创建目录 Directory.CreateDirectory(string fileName); 二.获取指定目录下的所有文件名 ...

  9. winSocket编程(九)重叠IO

    重叠模型的优点 重叠模型的基本原理 关于重叠模型的基础知识 重叠模型的实现步骤 多客户端情况的注意事项 一.重叠模型的优点 1.可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口 ...

  10. Ng第十四课:降维(Dimensionality Reduction)

    14.1  动机一:数据压缩 14.2  动机二:数据可视化 14.3  主成分分析问题 14.4  主成分分析算法 14.5  选择主成分的数量 14.6  重建的压缩表示 14.7  主成分分析法 ...