最近杜老师的一台云服务器,向外大量发送流量,不断的建立TCP连接,目标地址是美国一个IP,估计被当成肉鸡了,比较悲惨,今天杜老师聊一下如何处理这个问题!

问题排查

1
sar -n DEV 2 10

注意:在服务器运行上面命令,确认了出现大量发包的问题。

问题处理

开始之前,先清除eth0所有队列规则:

1
tc qdisc del dev eth0 root 2> /dev/null > /dev/null

定义顶层队列规则,指定default类别编号:

1
2
tc qdisc add dev eth0 root handle 1: htb default 20
tc class add dev eth0 parent 1: classid 1:20 htb rate 2000kbit

查看状态:

1
2
yum install -y tcpdump
tcpdump -nn

找到大量的IP地址,可以将异常IP加入到/etc/hosts.deny,或者防火墙设置下。之后安装个nethogs:

1
2
3
4
5
yum -y install epel-release
yum clean all
yum makecache
yum -y install nethogs
nethogs

处理结果

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

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

命令扩展

nethogs的选项如下:

选项 作用
V 显示版本信息,注意是大写字母V
d 延迟更新刷新速率,秒为单位。默认为1
t 跟踪模式
p 混合模式
设备 要监视的设备名称,默认为eth0

nethogs运行时,按键效果如下:

按键 效果
q 退出
m 总数、当前使用情况模式之间切换

评论