Iptables防火墙limit模块扩展匹配规则详解

2023-12-07 0 965
目录
  • Iptables防火墙limit模块扩展匹配规则
    • @[TOC]
  • 1.限制每分钟接收10个ICMP数据报文
    • 2.允许10个数据报文快速通过,然后限制每分钟接收1个个ICMP数据报文
      • 3.限速案例,限制网络传输的带宽不可以超过500k/s

        Iptables防火墙limit模块扩展匹配规则

        @[TOC]

        limit模块的作用是针对报文的速率进行限制,限制的单位有秒、分钟、小时、天等,例如一分钟内只接收10个请求报文,多余的报文则会被丢弃。

        limit模块的常用参数:

        • –limit rate[/second|/minute|/hour|/day]:指定限制的平均速率单位,以秒(s)、分(m)、时(h)、天为单位,默认是3小时。
        • –limit-burst:要匹配的最大初始包的数量,例如1分钟内限制10个请求报文,那么首先一次性会接收我们指定初始化包的数量,剩余请求包按着速率单位来进行接收,默认值为5个报文。

        1.限制每分钟接收10个ICMP数据报文

        1.先添加一条规则,限制1分钟内只收10个icmp协议的请求报文。[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit –limit 10/minute -j ACCEPT

        2.然后添加第二条规则,超出10个报文后,其余的报文全部丢弃。[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP

        3.查看添加的防火墙规则[root@jxl-1 ~]# iptables -L -n -v –line-numberChain INPUT (policy ACCEPT 1331 packets, 1111K bytes)num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT icmp — * * 0.0.0.0/0 0.0.0.0/0 limit: avg 10/min burst 52 0 0 DROP icmp — * * 0.0.0.0/0 0.0.0.0/0

        Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)num pkts bytes target prot opt in out source destination

        Chain OUTPUT (policy ACCEPT 1334 packets, 1844K bytes)num pkts bytes target prot opt in out source destination

        Iptables防火墙limit模块扩展匹配规则详解

        查看效果,可以看到前5个数据包都可以正常接收,那是因为limit默认初始包就是5个,因此没有任何问题,从第六个数据包开始后,每隔6秒才会正常处理一个数据包,因为1分钟限制10次数据包的接收,那就表示6秒收一个,效果如下图所示。

        也可以理解为是一开始可以快速通过5个数据报文,后面的数据报文是每分钟通过10个。

        Iptables防火墙limit模块扩展匹配规则详解

        2.允许10个数据报文快速通过,然后限制每分钟接收1个个ICMP数据报文

        实现思路和1)中一模一样,只不过就是调整一下初始包的数量。

        1.先添加一条规则,限制1分钟内只收10个icmp协议的请求报文。[root@jxl-1 ~]# iptables -t filter -I INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT

        2.然后添加第二条规则,超出10个报文后,其余的报文全部丢弃。[root@jxl-1 ~]# iptables -t filter -A INPUT -p icmp -j DROP

        效果如下,首先发送了10个数据包正常接收,剩下的数据包每隔1分钟接收1个。

        Iptables防火墙limit模块扩展匹配规则详解

        3.限速案例,限制网络传输的带宽不可以超过500k/s

        限速如何通过limit模块来实现呢?其实也很简单,我们可以计算出1个数据包的大小,然后用500k的大小除以数据包的大小,得出500k能换算出多少个数据包,例如是300个,那么最后设置1秒钟接收的数据包的数量为300个,就可以实现每秒的传输速率带宽在500k左右。

        一个数据包的大小大概在1500字节。

        公式:(限制的带宽速率*1000)/(单个数据包的大小)

        500k的限速,每秒可限制的数据包数量大概为(500*1000/150 = 300个)300个。

        [root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp -m limit –limit 300/s -j ACCEPT
        [root@jxl-1 ~]# iptables -t filter -A OUTPUT -p tcp -j DROP

        速率带宽多多少少是由落差的,如果就想限制在500k以内,可以根据测试的结果来调整每秒数据包的效果,如下图所示,拉取文件的速率为327k/s,此时数据包的数量我是设置的120个。

        Iptables防火墙limit模块扩展匹配规则详解

        以上就是Iptables防火墙limit模块扩展匹配规则详解的详细内容,更多关于Iptables防火墙limit模块的资料请关注悠久资源网其它相关文章!

        您可能感兴趣的文章:

        • Iptables防火墙自定义链表实现方式
        • Iptables防火墙基本匹配条件应用详解
        • Iptables防火墙四表五链概念及使用技巧详解
        • Iptables防火墙iprange模块扩展匹配规则详解
        • Iptables防火墙tcp-flags模块扩展匹配规则详解
        • Iptables防火墙string模块扩展匹配规则
        • Iptables防火墙connlimit与time模块扩展匹配规则

        收藏 (0) 打赏

        感谢您的支持,我会继续努力的!

        打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
        点赞 (0)

        悠久资源 编程安全 Iptables防火墙limit模块扩展匹配规则详解 https://www.u-9.cn/biancheng/bcanquan/125573.html

        常见问题

        相关文章

        发表评论
        暂无评论
        官方客服团队

        为您解决烦忧 - 24小时在线 专业服务