centos系统中perl进程病毒占用大量网络流量导致网络瘫痪的问题分析及解决方案
故障现象:
1.系统在早上9点的时候非常慢,单台服务器占用流量很大,使交换机流量被占满,而连累挂在同一交换机上的其他应用也无法提供服务,或者速度非常慢
2.通过查看进程发现大量的perl程序占用了大量的CPU,并且无法被kill掉
3.通过查看网络设备的监控,发现网络带宽在8点20分左右被OA服务器所在的交换端口占满,拔掉该OA服务器的网线,网络恢复正常,重新插上系统瘫痪,可以断定问题出在该服务器上
4.重启系统后恢复正常
防火墙日志
流量走势
临时解决办法:
1.将OA系统挂载在单独的交换机上,并且对该交换机连接OA的端口限速,这样可以保证OA不会占用过多的带宽
2.安装安全狗服务器版,找到了部分asp的程序(没有对asp过滤,里面有一句话木马,系统是PHP的)
3.启用硬件防火墙的防DDOS功能
咨询多方专家后给出的解决方案如下:
1.针对系统做优化(这样可以抵御少量的攻击)
2.够买专业的防火墙设备
3.把系统迁移到云服务器上,用云来清洗流量
4.在系统发生故障时抓包,对包进行分析
# tcpdump -i em1 -w > /tmp/em120160317
5.使用nethops进行流量定位,找到引发流量对应的程序
# yum -y install nethogs
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.isu.edu.tw
Setting up Install Process
No package nethogs available.
Error: Nothing to do
# yum install epel-release -y
# nethops em1
真实的解决方法:
通过咨询其他同事,之前在北京的应用windows系统碰到类似的情况,是病毒引起的,杀毒后解决了问题,但当时可能被杀毒软件误删了操作系统文件,需要谨慎
后来搜索了下还真有linux下的杀毒软件
此次我们选择了nod32 linux x64版进行杀毒,查杀出了恶意木马,经过几天的观察发现没有再次出现服务器大量带宽被占用的情况,该问题暂时得到缓解
为什么选nod32,是因为之前在上一家公司任职的时候也碰到类似2003系统占用大量带宽使公司员工都上不了网的情况,用nod32杀掉蠕虫后解决问题
具体安装步骤,请参考前面的博文:
centos系统安装nod32杀毒软件并通过xmanager进行远程管理
安装需要输入用户名及注册码,输入后并升级到最新版本的病毒库
通过安装nod32 linux 64位版,升级病毒库以后,确实干掉了进程中出现的perl脚步,并且运行的用户也对上了,该事件暂告一段落
注意:
需要测试,不要直接在服务器运行,中间碰到了很多问题,测试的时候没有碰到类似问题(硬件不一样,测试环境是联想的PC,生产环境的服务器是dellr720,这个需要引起注意,下班后操作,并且需要做好备机,避免出现致命问题能及时恢复)
centos系统中perl进程病毒占用大量网络流量导致网络瘫痪的问题分析及解决方案的更多相关文章
- 9.7 top:实时显示系统中各个进程的资源占用状况
top命令 用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式 ...
- [linux]top命令详解-实时显示系统中各个进程的资源占用状况
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...
- 获取系统中所有进程&线程信息
读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 ...
- Linux 系统中僵尸进程
Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...
- Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?
如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...
- CentOS系统中last命令的作用
CentOS系统中last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户.通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统. 格式 last [—R] [—n] ...
- 如何在CentOS系统中安装配置SNMP服务
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...
- 在Centos系统中基于PowerDNS和Poweradmin自建域名解析服务器替代DnsPod
本文讲述了我在Centos 7系统(其他版本的Centos未尝试)中基于PowerDNS和poweradmin自建域名解析服务器替代DnsPod的过程.通过本文所述方法,可以建立权威域名解析服务器的m ...
- 【转】Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案
昨天刚更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apache服务器的时候却发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令ne ...
随机推荐
- Android:更好的自定义字体方案
http://ryanhoo.github.io/blog/2014/05/05/android-better-way-to-apply-custom-font/ 情景 解决方案 1)Android默 ...
- 笔记: c开发gui程序 (WM_CREATE, WS_CLIPCHILDREN , SetWindowPos)
过去两年,用c写的gui程序我一般使用的套路是: 在 winMain()中, 先创建一个主窗口, 紧接着就是在下面创建子窗口(子控件). 可能是因为写这方面的程序较少,所以也没遇到什么大问题,之前就是 ...
- react组件在项目中的应用(基础知识)
上图我是定义了5个模块,全部都渲染在一个组件里面.可以先看看我的代码结构 我将Hello文件夹下的index.jsx文件作为父组件,最后渲染在根组件中. 那我们怎么输出这个Hello组件呢?要达到上图 ...
- Skype 使用小技巧
原文发布在个人独立博客上,链接:http://maxpeng.vipcloud.me/2016/09/01/skype-tricks-tips/ Skype 作为一个即时聊天工具,相信大家都不陌生 ...
- java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers及解决方案
1. 问题 最近在项目中修bug的时候,碰到这样一个错误: Caused by: java.sql.SQLException:Prepared or callable statement has mo ...
- java8中的stream().filter()的使用和Optional()
转: https://www.cnblogs.com/yimiyan/p/5992440.html Optional: https://www.cnblogs.com/zhangboyu/p/7580 ...
- 第一章:认识Ajax
第一节:Ajax 简介 1,Ajax 是一种网页开发技术,(Asynchronous Javascript + XML)异步JavaScript 和XML:2,Ajax 是异步交互,局部刷新:3,Aj ...
- mysql盲注学习-1
mysql: 1.left() //left()函数 left(a,b)从左侧截取a,的b位 2.mid() //mid()函数 参数 描述 column_name 必需.要提取字符的字段. star ...
- GO语言的进阶之路-go的程序结构以及包简介
GO语言的进阶之路-go的程序结构以及包简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑,编译和运行 A,编辑 Go程序使用UTF-8编码的纯Unicode文本编写.大 ...
- mySql插入网页地址失败
如题:插入的网页地址失败,只显示了开头10位字符.以为是特殊字符的问题. 后来发现是字符串长度不够: ALTER TABLE `news` MODIFY COLUMN `from` VARCHAR( ...