第一次自己一个人全权负责做游戏服务器,对于Linux安全并不太懂,所以就在昨天,服务器遭到了攻击,刚开始,只是发现服务器的带宽占满了,以为是带宽不够用,可是想想,弱联网游戏对带宽占用也不高啊而且带宽加大一倍也于事无补,在UCloud控制台看到带宽的波形图,好几次都达到顶峰,于是我在服务器用iftop查看了网络流量监控,发现服务器总往一个ip发送数据包,一发就是1G,这流量,不仅耗带宽,还烧钱啊,网上搜索后发现,服务器可能被攻击了,被黑客入侵当作肉鸡疯狂的发数据包,导致网络流量出口带宽瞬间占满,在不明白我如何被攻击以及如何根除的情况下,我只能首先封掉了这个ip的出入口,然后网络情况暂时稳定了,但我明白,问题并没有根除,但由于我还有其他事要做,暂时没管,还有一些功能等着我开发,昨天暂时也稳定了,然而今天有时间了,我就想办法彻底根除他,通过追踪,发现了病毒的位置,但是删不掉,因为他不仅加入了系统服务,而且定时执行脚本,检测病毒文件是否存在,不存在则创建,于是这个文件怎么删都删不掉,最后还是通过网上搜索,终于发现别人跟我一样的情况,最终得以根除。作为linux安全小白,这样的问题,我必须记录下来,并且记录下解决步骤,以备后患,linux安全确实仍是我的一片空白区,还要多多学习啊,很有可能是我的服务器密码设置过于简单,遭到黑客的暴力破解,或者是黑客利用bash漏洞植入病毒。 
以下是两篇当时搜到的有用的文章,感谢原文作者 http://www.apelearn.com/bbs/thread-7409-1-1.html http://www.kaisir.com/2015/07/ji-yi-ze-linux-bing-du-di-chu-li.html 
以下我的追踪以及根除步骤: 

  1. 查看网络流量实时监控,发现服务器向一个ip发送大量大数据包,命令:iftop 
  2. 即时封杀目的ip,命令:iptables –A OUTPUT –d “127.0.0.1” –j DROP(进口流量则是INPUT) 
  3. 查看可疑进程,发现进程管理器中总出现一个随机十位字母的进程,kill掉会换个名字再次出现,命令:top / kill 
  4. 通过pid揪出可疑进程的位置(其实已经确定是它了!),然后就能发现这个万恶的根源,命令:ls -l /proc/pid 
  5. 删掉它,发现于事无补,真是顽固的病毒,于是用strace命令追踪打开的病毒文件,命令:strace –tt –p 端口号 
  6. 通过追踪日志发现他打开一个libkill.so文件(不同情况可能名字不一样),删掉这个文件,发现还删不掉,会再自动生成 
  7. 服务器重启也仍然存在问题,所以怀疑被加入了系统服务,于是关掉可疑系统服务(其实看名字就看出来,那些十位随机字母的服务都是病毒),命令:ntsysv 
  8. 去系统服务下删掉垃圾文件,命令:cd /etc/init.d ,病毒文件全部rm掉 
  9. 再重启服务器,问题没有了,但libkill.so文件依然存在,需要继续解决 
  10. 经查,/etc/cron.hourly文件夹下有一个可疑的脚本文件kill.sh,打开一看,这就是自动生成libkill.so病毒的根源,删除这个脚本文件,再删除libkill.so。OK!问题解决! 

此次经历让我意识到我Linux安全方面知识的空缺,linux平时的安全性没有得到保障,目前病毒已根除,服务器密码也改的异常复杂(我自己都记不住。。。)

我的Linux病毒追踪记录的更多相关文章

  1. 瑞星发布Linux系统安全报告:Linux病毒或将大面积爆发

    近半年来,由于中央推荐使用国产Linux操作系统,国产Linux操作系统开始受到政府机关及大型企事业机关单位的高度重视.很多人都认为,以Linux系统为基础的国产操作系统最符合国家.政府和企业信息安全 ...

  2. 追踪记录每笔业务操作数据改变的利器——SQLCDC

    对于大部分企业应用来用,有一个基本的功能必不可少,那就是Audit Trail或者Audit Log,中文翻译为追踪检查.审核检查或者审核记录.我们采用Audit Trail记录每一笔业务操作的基本信 ...

  3. linux病毒

    linux病毒查杀规范 一.病毒发现 1.ps -A.ps -ef.ps -aux查看是否有异常进程 2.last,lastlog命令可查看最近登录的帐户及时间 3.查看/var/log/messag ...

  4. MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意

    32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT ...

  5. linux 病毒 sfewfesfs

    由于昨天在内网服务器A不小心rm -fr / ,导致服务器A完蛋,重装系统后,不知道啥原因,局域网瘫痪不能上网,最后发现内网服务器A的一个进程sfewfesfs cpu 300%.路由器被网络阻塞啦. ...

  6. 在MySQL中使用init-connect与binlog来实现用户操作追踪记录

    在MySQL中使用init-connect与binlog来实现用户操作追踪记录 分类: MySQL 前言: 测试环境莫名其妙有几条重要数据被删除了,由于在binlog里面只看到是公用账号删除的,无法查 ...

  7. Linux 操作命令列表记录

    Linux 操作命令列表记录 SSH登录 登录 ## 范式 ssh [username]@[host] ## 例 ssh -p 1222 root@10.0.0.1 使用非默认端口(ssh默认端口22 ...

  8. # xrdp 在linux deploy 折腾记录

    xrdp 在linux deploy 折腾记录 1. xrdp connect fail vnc 不管用tiger or vnc4server都可以正常用,但xrdp无法连接 netstat -tnl ...

  9. Linux查看History记录加时间戳小技巧

    Linux查看History记录加时间戳小技巧 熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如[root@servyou_web ~]# history | more ...

随机推荐

  1. Linux中安装配置hadoop集群

    一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择 ...

  2. INSERT INTO 语句用于向表格中插入新的行。

    语法 INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES ...

  3. 【noip模拟题】迎接仪式(dp+特殊的技巧)

    好神的一题... 这是一道DP题,本题的难点在于状态的确定,由于调整是任意的,很难划分状态,我们略微修改一下调整的形式:把一次’j’和’z’交换看做两次变换:’j’->’z’;’z’->’ ...

  4. 【NOIP模拟题】Graph(tarjan+dfs)

    似乎我搞得太复杂了? 先tarjan缩点然后dfs就行了QAQ. (我不说我被一个sb错调了半个小时....不要以为缩点后dfs就可以肆无忌惮的不加特判判vis了.. bfs的做法:减反图,然后从大到 ...

  5. 浅谈AutoResetEvent的用法

    using System;using System.Threading; namespace AutoResetEvent_Examples{    class MyMainClass    {    ...

  6. 第十六篇:Linux系统编程中环境变量的使用

    前言 在 UNIX Like 系统中,存有各类系统/应用程序的环境变量,可通过修改之改变系统/应用程序的执行效果:除此之外,用户还可以定义自己的环境变量,供自己写的程序使用. 本文将说明如何在程序中设 ...

  7. cocos2dx热更新tmx的一个坑

    游戏项目中使用了tmx地图,当对tmx文件进行热更新时,进入该地图总是宕机,纠结了几小时终于发现,cocos读取tmx文件时,会默认tmx关联的图集文件和tmx在同一目录,然而那个图集文件并没有在热更 ...

  8. 《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

    原创文章,欢迎转载.转载请注明:关东升的博客 实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下: button.a ...

  9. 对 js 高程 Preflighted Reqeusts 的理解

    看JS高程遇到 Preflighted Reqeusts不大理解,遂百度下: 转自:http://todoit.me/ajax-preflight/ 最近在做一个 VUE 的项目的时候, 和后端的小伙 ...

  10. QBC检索和本地SQL检索

    细说QBC:QBC(Query By Criteria) 查询:这种方式比较面向对象方式,因为是面向对象,所以查询时参数名就是所查询的类的属性名并不是数据库的表的列名重点是有三个描述条件的对象:Res ...