020SNAT暴增分析
一、现象
二、分析处理
(1)
netstat -anp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn 1064 101.x.xx.xx 256 47.x.x.x8 205 10.x.0.x 197 10.x.7.x 166 10.x.x.6 163 47.x.x.x
同一服务主动向同一个地址向外发起大量https请求,主动关闭tcp连接,进入2MSL等待服务端回应,大量处于TIME_WAIT的状态
(2)带宽使用率高问题分析
如果是正常业务访问以及正常应用进程导致的带宽使用率高,需要升级服务器的带宽进行解决。如果是非正常访问,如某些特定IP的恶意访问,或者服务器遭受到了CC攻击。或者异常进程导致的带宽使用率高。可以通过流量监控工具nethogs来实时监测统计各进程的带宽使用情况,并进行问题进程的定位。
- 使用nethogs工具进行排查
- 执行以下命令,安装nethogs工具。
yum install nethogs -y
安装成功后可以通过netgos命令查看网络带宽的使用情况。
nethogs命令常用参数说明如下:- -d:设置刷新的时间间隔,默认为 1s。
- -t:开启跟踪模式。
- -c:设置更新次数。
- device:设置要监测的网卡,默认是eth0。
运行时可以输入以下参数完成相应的操作:- q:退出nethogs工具。
- s:按发送流量大小的顺序排列进程列表。
- r:按接收流量大小的顺序排列进程列表。
- m:切换显示计量单位,切换顺序依次为KB/s、KB、B、MB。
- 执行以下命令,查看指定的网络端口每个进程的网络带宽使用情况。
nethogs eth1
回显参数说明如下:- PID:进程 ID。
- USER:运行该进程的用户。
- PROGRAM:进程或连接双方的IP地址和端口,前面是服务器的IP和端口,后面是客户端的IP和端口。
- DEV:流量要去往的网络端口。
- SENT:进程每秒发送的数据量。
- RECEIVED:进程每秒接收的数据量。
- 终止恶意程序或者屏蔽恶意访问IP。
如果确认大量占用网络带宽的进程是恶意进程,可以使用kill PID命令终止恶意进程。
如果是某个IP恶意访问,可以使用iptables服务来对指定IP地址进行处理,如屏蔽IP地址或限速。
- 执行以下命令,安装nethogs工具。
- 使用Web应用防火墙防御CC攻击
若服务遭受了CC攻击,请在Web应用防火墙控制台开启CC安全防护。Web应用防火墙的使用指导请参见配置CC防护策略。