开发者社区 问答 正文

#技塑人生# Linux系统下使用iftop结合iptables服务解决带宽被恶意请求的问题

Linux系统下使用iftop结合iptables服务解决带宽被恶意请求的问题
阿里云技术支持团队:郑波平



Linux下使用iftop工具结合iptables服务来解决带宽资源被恶意请求满的问题,主要通过2个步骤来实现;

1.  使用iftop 工具查出来是哪些个IP地址在请求主机的带宽资源,找出耗带宽的元凶
2.  找出耗带宽的IP地址或者段,分析是out方向还是in方向,使用iptables规则来进行控制

具体的详细操作方法如下;

一但出现带宽被恶意请求,在带宽被请满的情况下基本上很难通过网络登入到服务器上进行操作跟维护,这时我们需要通过阿里云提供的“连接管理终端”服务来登入系统
一般建议在主机正常的时候直接在服务器内部安装好iftop工具,这样出现恶意请求的时候直接可以使用该工具来进行排查,下面介绍下iftop的2中安装方法

1.使用yum 安装iftop工具
使用yum安装的话比较简单,只要直接执行 yum install iftop –y命令即可,如果没问题的话系统就会自动执行安装,但是有使用yum可能安装不了,这时就需要使用编译安装了

2.编译安装iftop工具
(1)下载iftop工具的源码包;
http://oss.aliyuncs.com/aliyunecs/iftop-0.17.tar.gz

(2)CentOS下安装所需的依赖包
yum install flex byacc  libpcap ncursesncurses-devel libpcap-devel


(3 解压缩下载的iftop文件
tarzxvf iftop-0.17.tar.gz

(4 进入到解压的的iftop目录中
cdiftop-0.17

配置并制定安装目录为/usr/local/iftop目录下
(5./configure --prefix=/usr/local/iftop

(6)编译并安装
make && make install

安装完成以后直接使用/usr/local/iftop/sbin/iftop 启动iftop程序查看流量使用情况,如果想使用iftop的方式直接开启程序,需要将iftop的程序添加到环境变量中即可


结合使用iptables服务来限制恶意请求的流量;

iftop –i eth1  查看eth1这块外网网卡的流量使用情况


通过上面这张信息很清楚的看到,121.199这台服务器一直往192.230.123.101 这个地址发送流量,而且出去产生的流量相当大,几乎把整个出网带宽都给耗尽了
查到了恶意请求的原因跟目标主机以后,我们就可以使用iptables服务来对这种恶意行为进行限制了,因为从查看到的数据看主要的流量是从out方向出去的,那就直接在OUT方向设置策略

Iptables  -A  OUTPUT  -d  192.230.123.101 –j  REJECT

这里可能还会发现一个情况就是禁用了这个1个IP以后可能这个段的其它IP地址都有可能马上就接上继续请求,那就可以针对一个段来进行限制
iptables-A OUTPUT -d 192.230.0.0/16 -j REJECT

策略加上以后可以再使用iftop –i eth1 来查看流量的请求情况;



可以查看到流量已经恢复了正常,之前的恶意请求的地址都已经被防火墙给屏蔽了,效果比较好

另外iftop还有很多的参数可以实现比较多的功能,有时间的话可以研究研究,对排查网络流量攻击以及掌控流量使用很有帮助的

展开
收起
qiujin2012 2014-07-13 16:57:10 10946 分享 版权
3 条回答
写回答
取消 提交回答
  • 欢迎进行技术分享,感谢你的支持!
    2014-07-14 22:59:53
    赞同 展开评论
  • 这个厉害
    2014-07-13 17:36:10
    赞同 展开评论
  • 高手,我膜拜你。
    2014-07-13 16:59:26
    赞同 1 展开评论