Linux服务器大量向外发包问题排查

最近Linux redhat 6.5 APP 业务系统,向外大量发送流量,不断建立tcp连接,目标地址是美国的一个IP,估计被当成肉鸡了,比较悲惨,直接飞向IDC机房,防火墙显示这个APP服务器tcp连接很多每秒10W个,

从服务器上使用命令sar -n DEV 2 10 ,确实出现大量发包的问题,(下边是正常的,异常的情况eth0txpck/s 10000左右了)

先进行限速或者拔掉网线:
开始之前,先要清除 eth0所有队列规则
tc qdisc del dev eth0 root 2> /dev/null > /dev/null

1) 定义最顶层(根)队列规则,并指定 default 类别编号
tc qdisc add dev eth0 root handle 1: htb default 20
tc class add dev eth0 parent 1: classid 1:20 htb rate 2000kbit

(1KB/s = 8KBit/s)

TC命令格式:
tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]
tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]
tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id

显示
tc [-s | -d ] qdisc show [ dev DEV ]
tc [-s | -d ] class show dev DEV tc filter show dev DEV

查看TC的状态
tc -s -d qdisc show dev eth0
tc -s -d class show dev eth0

删除tc规则

tc qdisc del dev eth0 root

查看状态:
top
CPU和MEM都正常,看不出异常的进程。

yum install -y tcpdump
tcpdump -nn
找到大量的IP地址

本机(192.168.35.145)和主机114.114.110.110之间的数据
tcpdump -n -i eth0 host 192.168.35.145 and 114.114.110.110
还有截取全部进入服务器的数据可以使用以下的格式
tcpdump -n -i eth0 dst 192.168.35.145

或者服务器有多个IP 可以使用参数
tcpdump -n -i eth0 dst 192.168.35.145  or  192.168.35.155

我们抓取全部进入服务器的TCP数据包使用以下的格式,大家可以参考下
tcpdump -n -i eth0 dst 192.168.35.145 or 192.168.35.155 and tcp

从本机出去的数据包
tcpdump -n -i eth0 src 192.168.35.145 or 192.168.35.155
tcpdump -n -i eth0 src 192.168.35.145 or 192.168.35.155 and port ! 22 and tcp
或者可以条件可以是or  和 and  配合使用即可筛选出更好的结果。

可以将异常IP加入到/etc/hosts.deny中,或者防火墙设置下

之后安装个NetHogs
Install Howto:
    Download the latest epel-release rpm from (一个是32位、一个是64位连接)
    http://dl.fedoraproject.org/pub/epel/6/i386/
    http://dl.fedoraproject.org/pub/epel/6/x86_64/

Install epel-release rpm:
    # rpm -Uvh epel-release*rpm(记得yum clean all和yum makecache下)

Install nethogs rpm package:
    # yum install nethogs

执行nethogs
nethogs
或者
nethogs eth0
如果网卡绑定过nethogs bond0

-------------------------
rpm -Uvh epel-release-6-8.noarch64.rpm
yum clean all
yum makecache
yum install nethogs
nethogs
--------------------------

下图显示各进程当前网络使用情况:

按“m”键可以切换到统计视图,显示各进程总的网络使用情况

按“Ctrl+C”或“q”退出监控

使用帮助:
    [[email protected] ~]# nethogs --help  
    nethogs: invalid option -- ‘-‘  
    usage: nethogs [-V] [-b] [-d seconds] [-t] [-p] [device [device [device ...]]]  
            -V : 显示版本信息,注意是大写字母V.  
            -d : 延迟更新刷新速率,以秒为单位。默认值为 1.  
            -t : 跟踪模式.  
            -b : bug 狩猎模式 — — 意味着跟踪模式.  
            -p : 混合模式(不推荐).  
            设备 : 要监视的设备名称. 默认为 eth0  
      
    当 nethogs 运行时, 按:  
     q: 退出  
     m: 总数和当前使用情况模式之间切换

找到大量发包的进程,之后kill掉,在排查下这个进程是什么程序,文件路径在哪里,删除掉异常的文件。

目前问题解决了,观察一段时间,看看问题是否还会发生,防火墙将公网IP进行了访问限制,只允许办公地点访问,增加安全。

时间: 2024-10-25 06:15:17

Linux服务器大量向外发包问题排查的相关文章

Linux服务器mysql,nginx等自动停止的排查,以及解决方法

最近发现自己使用的某台云服务武器只要稍微流量大一点,就会出现莫名的的数据库连接错误的情况 ,然后连上服务器查看,发现mysql进程被结束了,经常出现这种情况,这还怎么得了,然后第一时间查看mysql日志 发现是被进程结束了,好端端的怎么就自己结束了呢,这时候想到应该是mysql进程占用太多内存,然后被系统给kill 掉了.然后 tail /var/log/messages 查看服务器的系统日志/var/log/messages 然后看了下在mysql自动停止的时间段内,有什么异常的日志信息,日志

服务器恶意发包行为排查

30号发现自己机房的另外一条业务线的一台服务器流量特别的高(单台服务器出口流量超过900M),进入服务器特别慢,由于流量的影响业务的访问情况.怀疑这台linux服务器应该中木马了,于是紧急措施先将服务器的WAN口宕掉,然后进行如下排查: 1.病毒木马排查.1.1.使用netstat查看网络连接,分析是否有可疑发送行为,如有则停止. 在服务器上发现一个大写的CRONTAB命令,然后进行命令清理及计划任务排查. (linux常见木马,清理命令chattr -i /usr/bin/.sshd; rm

[转帖]Java性能检测工具-记录一次通过jstack排查Linux服务器CPU占用率很高的实践

Java性能检测工具-记录一次通过jstack排查Linux服务器CPU占用率很高的实践 https://www.jianshu.com/p/d4e31301ba2e 一.问题描述 Linux服务器的配置是4核16G,将war包部署到tomcat后,启动tomcat,发现内存占用率不高,但是CPU一直高达100%:浏览器输入相关url也无法访问该项目,且tomcat的进程一直存在,程序的配置什么的都没问题啊,一头雾水......通过top命令查看服务器的性能状况如下: [[email prote

Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】

1.Linux服务器用户登录失败次数限制(使用pam模块实现) /etc/pam.d/sshd    (远程ssh) /etc/pam.d/login    (终端) 1.1.用户通过ssh登录失败次数的限制 第一步)需要使用pam模块来实现此功能,检查是否有pam_tally2.so文件 # find /lib* -name pam_tally2.so /lib64/security/pam_tally2.so 第二步)修改配置文件: # vi /etc/pam.d/sshd #%PAM-1.

linux服务器中了一个liun2.3的木马

昨天公司一台服务器突然之间不能ping,ssh无法登陆,从IDC反馈说服务器往外发包,数量巨大,CPU状态显示200%.通过ps aux查看以下进程文件是异常文件: ./liun2.3 /tmp/liun2.3 /tmp/liun2.3h zzta.pl 刚开始以为kill掉这些进程和删掉执行文件就可以了,可是过了几分钟,这个程序又继续执行. 那好吧,就去crontab -l 看有没有定时任务,没有. more /etc/crontab 查看有没在这里定义定时任务.也没有 想了下,既然要执行文件

Linux服务器入侵检测基础

最近遇到了很多服务器被入侵的例子,为了方便日后入侵检测以及排查取证,我查询了一些linux服务器入侵取证的相关资料,并在此总结分享,以便日后查询. 一般服务器被入侵的迹象,包括但不局限于:由内向外发送大量数据包(DDOS肉鸡).服务器资源被耗尽(挖矿程序).不正常的端口连接(反向shell等).服务器日志被恶意删除等.那么既然是入侵检测,首先要判断的是服务器是否被入侵,必须排除是管理员操作不当导致的问题,因此入侵检测的第一项工作就是询问管理员服务器的异常现象,这对之后入侵类型的判断非常重要. 在

一次处理CentOS服务器被攻击往外发广播包

情况是这样:我们在某地托管的一台linux服务器,突然接到机房电话说是我们机器将整个IDC网络搞瘫了.外部机器没法访问IDC. 挂掉电话后:我就开始考虑,托管机器的机房是有硬防的,我本身一台机器怎么会造成这么大影响.于是又联系机房硬防厂家询问状况,最后得到的答复是我托管的 服务器往外发广播消息,将机房硬防会话都沾满了,其它设备就没有可用会话了. 处理:   情况了解后,我第一反应就是先远程ssh 上去看看.结果connect之后令我大失所望,竟然密码也被修改了,无法访问.那时的感觉就是想撞墙.呵

检查Linux服务器性能命令详解

如果你的Linux服务器突然负载暴增,如何在最短时间内找出Linux性能问题所在? 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由procps包提供.这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CP

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处理过程,结合Linux内核参数说明和TCP/IP协议栈相关的理论,介绍一些常见的丢包故障定位方法和解决思路. 问题现象 本次故障的反馈现象是:从办公网访问公网服务器不稳定,服务器某些端口访问经常超时,但Ping测试显示客户端与服务器的链路始终是稳定低延迟的. 通过在服务器端抓包,发现还有几个特点: