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

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

HaoOuBa
2021-08-28 / 14 评论 / 1,932 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年10月08日,已超过1139天没有更新,若内容或图片失效,请留言反馈。

起因

最近博客总时不时的打不开,或者是打开巨慢。打开宝塔面板,发现能登录,但是登录非常缓慢,最后挤进来后,看到流量可视化图,上行一直流量一直居高不下。服务器带宽是2兆的,上行200kb,说明直接将整个服务器带宽占满,导致服务器无法访问

ksuzukm8.png

排查

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

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

首先安装 iftop 工具

yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel

接着输入 iftop -n 运行,运行后会出现以下界面

ksv01mui.png

  • 左侧表示自己的服务器的内网ip
  • 中间的<= =>这两个左右箭头,表示的是流量的方向
  • 右侧表示请求或发送的ip
  • 最右侧表示流量信息

从上面图中可以看到,排行第一的流量消耗最大,并且是右箭头。反映出本地内网ip正朝着62.210.177.44这个ip疯狂发送数据,导致服务器带宽占满,无法访问,知道这个ip后,就可以利用 iptables 屏蔽这个ip

禁止某个IP访问服务器
iptables -I INPUT -s 地址 -j DROP
禁止服务器访问此IP
iptables -A OUTPUT -d 地址 -j DROP

上面图中主要流量是从out方向出去的,那就直接在OUT方向设置策略
iptables -A OUTPUT -d 62.210.177.44 -j DROP

屏蔽掉后,在看流量统计已经恢复到了正常状态

ksv0ox1m.png

相关参数说明

iptables相关参数:
禁止此IP访问服务器:

  • iptables -I INPUT -s 1.2.3.4 -j DROP
  • iptables -A INPUT -s 1.2.3.4 -j DROP

禁止服务器访问此IP:

  • iptables -A OUTPUT -d 1.2.3.4 -j DROP

如果要封某个网段:

  • iptables -I INPUT -s 1.2.3.0/24 -j DROP

清空屏蔽IP:

  • iptables -t filter -D INPUT -s 1.2.3.4 -j DROP
  • iptables -t filter -D OUTPUT -d 1.2.3.4 -j DROP

一键清空所有规则:

  • iptables -F

查看:

  • iptables -L INPUT
  • iptables -L

处理IP碎片数量,防止攻击,允许每秒100:

  • iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包:

  • iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
15

评论 (14)

取消
  1. 头像
    faVorite
    Windows 10 · FireFox

    FD

    回复
    1. 头像
      ccvvv
      Android Oreo · Google Chrome
      @ faVorite
      该回复疑似异常,已被系统拦截!
      回复
  2. 头像
    不亦乐乎
    MacOS · Safari

    画图

    回复
    1. 头像
      苏苏
      Windows 10 · Google Chrome
      @ 不亦乐乎

      画功不错表情

      回复
    2. 头像
      ksjk
      Android · Google Chrome
      @ 不亦乐乎

      画图

      回复
  3. 头像
    萧笙
    Android · Google Chrome

    画图

    回复
  4. 头像
    haikun
    Windows 10 · Google Chrome

    说点什么好呢

    回复
    1. 头像
      123
      Windows 10 · Google Chrome
      @ haikun

      测试

      回复
  5. 头像
    aboy
    Windows 10 · Google Chrome

    测试一下内容

    回复
  6. 头像
    mmm
    Android Pie · Google Chrome

    画图

    回复
  7. 头像
    大爷
    Windows 10 · QQ Browser

    非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错

    回复
  8. 头像
    哥斯拉
    Windows 10 · Google Chrome

    还有一个是得找出请求的uri,看看能否优化。

    回复
    1. 头像
      e
      Linux · Google Chrome
      @ 哥斯拉

      表情

      回复
      1. 头像
        e
        Linux · Google Chrome
        @ e

        表情

        回复