网站大量收购闲置独家精品文档,联系QQ:2885784924

关于limit hashlimit资料整理.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于limit hashlimit资料整理

关于limit hashlimit资料整理hashlimit是iptables的一个匹配模块,用它结合iptables的其它命令可以实现限速的功能 。(注意,单独hashlimit模块是无法限速的)。 不过首先必须明确,hashlimit本身只是一个“匹配”模块。我们知道,iptables的基本原 理是“匹配--处理”,hashlimit在 这个工作过程中只能起到匹配的作用,它本身是无法对网络数据包进行任何处理的。我看到 网上有些hashlimit的例子里面说只 用一条包含hashlimit匹配规则的iptables语句就可以实现限速,那是错误的。 实际上,利用hashlimit来限速需要包括两个步骤。 1.对符合hashlimit匹配规则包放行 2.丢弃/拒绝未放行的包 下面是一个简单的例子: iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-name ssh --hashlimit 5/sec --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 90000 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP 然后,我们来着重讲讲hashlimit模块具体是如何工作的。hashlimit的匹配是基于令牌桶 (Token bucket)模型的。令牌桶是一种网络通讯中常见的缓冲区工作原理,它有两个重要 的参数,令牌桶容量n和令牌产生速率s。我们可以把令牌当成是门票,而令牌桶则是负责制 作和发放门票的管理员,它手里最多有n张令牌。一开始,管理员开始手里有n张令牌。每当 一个数据包到达后,管理员就看看手里是否还有可用的令牌。如果有,就把令牌发给这个数 据包,hashlimit就告诉iptables,这个数据包被匹配了。而当管理员把手上所有的令牌都 发完了,再来的数据包就拿不到令牌了。这时,hashlimit模块就告诉iptables,这个数据 包不能被匹配。 除了发放令牌之外,只要令牌桶中的令牌数量少于n,它就会以速率s来产生新的令牌,直到 令牌数量到达n为止。 通过令牌桶机制,即可以有效的控制单位时间内通过(匹配)的数据包数量,又可以容许短 时间内突发的大量数据包的通过(只要数据包数量不超过令牌桶n)。 hashlimit模块提供了两个参数--hashlimit和--hashlimit-burst,分别对应于令牌产生速 率和令牌桶容量。 除了令牌桶模型外,hashlimit匹配的另外一个重要概念是匹配项。在hashlimit中,每个匹 配项拥有一个单独的令牌桶,执行独立的匹配计算。通过hashlimit的--hashlimit-mode参 数,你可以指定四种匹配项及其组合,即:srcip(每个源地址IP为一个匹配项),dstip( 每个目的地址IP为一个匹配项),srcport(每个源端口为一个匹配项),dstport(每个目 的端口为一个匹配项) 除了前面介绍的三个参数外,hashlimit还有一个必须要用的参数,即--hashlimit-name。 hashlimit会在/proc/net/ipt_hashlimit目录中,为每个调用了hashlimit模块的iptables 命令建立一个文件,其中保存着各匹配项的信息。--hashlimit-name参数即用来指定该文件 的文件名。 好了,以上我们已经介绍了hashlimit的工作原理和相应的参数,下面我们来看几个例子。 首先是前面的那个例子: iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-name ssh --hashlimit 5/sec --hashlimit-burst 10 --hashlimit-mode -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP 在了解了hashlimit各参数的含义之后,我们现在就可以知道这两条iptables命令的作用。 第一条的作用是,为所有访问本机22端口的不同IP建立一个匹配项,匹配项对应的令牌桶容 量为10,令牌产生速率为5个每秒。放行通过匹配的数据包。 第二条的作用是,丢弃所有其它访问本机22端口的数据包。 通过这两条命令,我们就实现了限制其它机器对本机22端口(ssh服务)频繁访问的功能, 再来我们看一个复杂点的限速。假设我们现在在一台NAT网关上,想限制内部网某个网段 /24对外的访问频率。(这个的主要作用是限制内部中毒主机对外的flood攻击 ) 那我们可以

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档