记一次 阿里云 流量异常 - abnormal network traffic of aliyun cloud

今天早上快到公司楼下了,突然收到微信,我们整个系统都挂了,急匆匆赶到公司,另一位同事已经在跟踪,但没找到问题所在,我登录了 阿里云 后台,查看到流量异常,怎么说呢,服务器按流量计费,公网带宽最大 5M,但是流出的峰值早已经是 7M 多了,逼近 8M,至于为什么会超过 5M 不清楚了。但是有一点很明显,被人 ddos 了或者爬数据了,或者竞争对手恶意为之了,总之出问题了,而后果就是我家的带宽不足,导致正常的请求很慢很慢,于是临时将带宽升级到了 20M,这下子 我终于能 通过 ssh 连接到 服务器了。

先上张图

这是服务器今天网络流入流出的截图,其余四台服务器类似,不重复了。前面说了,这台服务器的带宽是按流量计费,最大峰值 5M,但是实际可能 7.6 M左右了,这一点不知道 阿里云 是怎么实现的,这里略过不提,关键在于 从 2019-10-11 03:00 开始 流入的流量有点大,导致流出很大,最后直接导致带宽被占用完了,到峰值了,正常业务因此受到影响。

问题定位出来了,下一步自然是 如何 确定攻击者(暂且称为攻击者吧)到底攻击的是那个端口,即那个端口在不停的收发流量,确定端口后确定具体部署的应用,然后对症下药。要监控某个端口的流量,恐怕大家都会想到 nethogs,至于其 安装,也非常简单,yum install nethogs 或者 apt install nethogs 即可,然后 直接 sudo nethogs 即可,下面是我在自己博客服务器上跑的截图,不是当时的服务器哦

在这个界面,你还可以按 M 切换单位哦。好了,继续今天的故事,这个界面显示了当前各个进程的流量信息,还有进程的端口号,拿到端口号后可以查看很多信息,比如这里拿到 474 这个端口,额,至于 跑在这个端口的程序,这里不说了,敏感词汇。然后可以 cd /proc/474 即 cd /proc/端口号,进入这个目录后,你会看到很多文件,其中有个文件叫 cmdline ,你可以直接 cat cmdline 会看到当时执行的完整命令,好了,扯远了,这些以后再补充。

我当时看到的情形是,java 进程在一直发送和接收流量,然后看了下,这个端口呢,不应该开放,我们的架构是 用户 请求 nginx,nginx 转发到网关端口,网关转发到应用端口,所以网关和应用端口都不应该对外开放,但是我们的服务器是所有端口都开放,所以很简单,删除所有 阿里云 安全组规则,然后只开放 22、80、443 就够了,至于以后碰到哪里用到了 某个端口而实际没有开放的,可以再加。我后来又增加了一些端口。主要是 阿里 rds 外网是访问不了的,或者说每次都需要允许 ip,很烦,可以做 端口转发,redis 也是,不过现在 阿里云 redis 已经支持外网访问了,应该是的。半年前应该是不行的,又扯远了。

后来,我又做了一些改动,这包括:不允许 ssh 明文登录,nginx 限速限连接、使用fail2ban,具体可以看:

1、Linux Server 安全设置

2、使用 nginx 防御 ddos 攻击

3、fail2ban - 防御 cc 利器

本博客若无特殊说明则由 full-stack-trip 原创发布
转载请点名出处:全栈之旅 > 记一次 阿里云 流量异常 - abnormal network traffic of aliyun cloud
本文地址:https://www.kpromise.top/abnormal-network-traffic-of-aliyun-cloud/

在 “记一次 阿里云 流量异常 - abnormal network traffic of aliyun cloud” 上有 2 条评论

  1. 才8M的请求,顶多只是流量大,可能是在刷视频大图片之类的,加上nginx做动静分离可以缓解,一般DDOS攻击,都是按G为单位的,真正DDOS,国内的服务器,最少都是50G起步。。。

    1. 服务器最大带宽才 5M,至于为何飙到 8M 我也不懂了,已经静动分离。是攻击这点是确定的,我们的架构是 用户请求nginx, nginx转发到网关,网关转发到服务,而网关和服务的端口是开放的… 用 nethogs 可以看到是应用的端口流量很大,而nginx没啥流量,服务的端口不开放后流量就下来了。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注