首页 > 系统相关 >iptables中limit 和 limit-burst 说明

iptables中limit 和 limit-burst 说明

时间:2022-09-24 19:01:32浏览次数:76  
标签:iptables 通行证 burst -- limit match

Limit match
    这个匹配操作必须由-m limit明确指定才能使用。有了他的帮助,就能对指定的规则的日志数量加以限制,以免你被信息的洪流淹没哦。比如,你能事先设定一个限定值,当符合条件的包的数量不超过他时,就记录;超过了,就不记录了。我们能控制某条规则在一段时间内的匹配次数(也就是能匹配的包的数量),这样就能够减少DoS syn flood攻击的影响。这是他的主要作用,当然,更有非常多其他作用(注:比如,对于某些不常用的服务能限制连接数量,以免影响其他服务)。limit match也能用英文感叹号取反,如:-m limit ! --limit 5/s表示在数量超过限定值后,所有的包都会被匹配。
    limit match的工作方式就像一个单位大门口的保安,当有人要进入时,需要找他办理通行证。早上上班时,保安手里有一定数量的通行证,来一个人,就签发一个,当通行证用完后,再来人就进不去了,但他们不会等,而是到别的地方去(在iptables里,这相当于一个包不符合某条规则,就会由后面的规则来处理,如果都不符合,就由缺省的策略处理)。但有个规定,每隔一段时间保安就要签发一个新的通行证。这样,后面来的人如果恰巧赶上,也就能进去了。如果没有人来,那通行证就保留下来,以备来的人用。如果一直没人来,可用的通行证的数量就增加了,但不是无限增大的,最多也就是刚开始时保安手里有的那个数量。也就是说,刚开始时,通行证的数量是有限的,但每隔一段时间就有新的通行证可用。limit match有两个参数就对应这种情况,--limit-burst指定刚开始时有多少通行证可用,--limit指定要隔多长时间才能签发一个新的通行证。要注意的是,我这里强调的是“签发一个新的通行证”,这是以iptables的角度考虑的。在你自己写规则时,就要从这个角度考虑。比如,你指定了--limit 3/minute --limit-burst 5 ,意思是开始时有5个通行证,用完之后每20秒增加一个(这就是从iptables的角度看的,要是以用户的角度看,说法就是每一分钟增加三个或每分钟只能过三个)。你要是想每20分钟过一个,只能写成--limit 3/hour --limit-burst 5,也就是说你要把时间单位凑成整的。

# --limit
iptables -A INPUT -m limit --limit 3/hour
# 为limit match设置最大平均匹配速率,也就是单位时间内limit match能匹配几个包。他的形式是个数值加一个时间单位,能是/second /minute /hour /day 。默认值是每小时3次(用户角度),即3/hour ,也就是每20分钟一次(iptables角度)。
iptables -A INPUT -p icmp -m limit --limit 6/m --limit-burst 5 -j ACCEPT
iptables -P INPUT DROP
# 然后从另一部主机上ping这部主机,就会发生如下的现象:
# 首先我们能看到前四个包的回应都非常正常,然后从第五个包开始,我们每10秒能收到一个正常的回应。
# 这是因为我们设定了单位时间(在这里是每分钟)内允许通过的数据包的个数是每分钟6个,也即每10秒钟一个;
# 其次我们又设定了事件触发阀值为5,所以我们的前四个包都是正常的,只是从第五个包开始,限制规则开始生效,故只能每10秒收到一个正常回应。 # 假设我们停止ping,30秒后又开始ping,这时的现象是: # 前两个包是正常的,从第三个包开始丢包,这是因为在这里我的允许一个包通过的周期是10秒,如果在一个周期内系统没有收到符合条件的包,系统的触发值就会恢复1
# 所以如果我们30秒内没有符合条件的包通过,系统的触发值就会恢复到3,如果5个周期内都没有符合条件的包通过,系统都触发值就会完全恢复。

标签:iptables,通行证,burst,--,limit,match
From: https://www.cnblogs.com/asdfzxv/p/16726265.html

相关文章

  • SQL LIMIT All In One
    SQLLIMITAllInOnedemoselect*fromcakesORDERBYcaloriesASCLIMIT3https://www.sololearn.com/learning/eom-project/1060/1056MySQLSELECTcolumn_......
  • OpenResty+Lua限流实战--resty.limit.conn(用于限制并发连接数)
    限制并发场景1:按照ip限制其并发连接数原理:lua_share_dict是nginx所有woker和luaruntime共享的,当一个请求进来,往lua_share_dict记录键值对ip地址:1,当请求完成时再-1,再......
  • Learning Agent Communication under Limited Bandwidth by Message Pruning 记录
    文章介绍了一种提高多智能体之间通信效率的方法(得到最适合的通信带宽)。首先介绍了多智能体强化学习模型ACML: 算法跟MADDPG是有点类似的,增加了信息生成网络和信息协调......
  • LIMIT和OFFSET分页性能差!今天来介绍如何高性能分页
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。前言之前的大多数人分页采用的都是这样:SE......
  • java.lang.OutOfMemoryError: GC overhead limit exceeded
    1背景公司的一个项目,平时运行一直没问题,但是最近,时不时的会报出 java.lang.OutOfMemoryError:GCoverheadlimitexceeded 错误,然后,java进程就处于假死状态,几天都不会......
  • net core AspNetCoreRateLimit 流量限制
    1.NuGet添加AspNetCoreRateLimit程序包。2.Startup.cs配置如下ConfigureServices方法新增services.AddOptions();services.AddMemoryCache();......
  • 【重复造轮子】基于Redis的RateLimiter
    造轮子的过程也是学习的过程。如果公司的Redis不支持发布订阅指令的话,是没法用Redisson的,因为Redisson的大部分功能都依赖于Redis的发布订阅指令。这是完整实现......
  • Iptables - 基础应用
     iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。-t<表>:指定要操纵的表;-A:向规则链中添加条目;-D:从规则链中删除条目;-I:向规则链中插入条目;-R:......
  • 正确配置Linux系统ulimit值的方法
    正确配置Linux系统ulimit值的方法-爱开卷360-博客园 https://www.cnblogs.com/ibook360/archive/2012/05/11/2495405.html在Linux下面部署应用的时候,有时候会遇上So......
  • ulimit限制之nproc问题
    ulimit限制之nproc问题|系统技术非业余研究 http://blog.yufeng.info/archives/2568前两天微博上的@王关胜同学问了个问题:#ulimit问题#关于nproc设置:centos6,内核版......