我需要的 :
根据每个时间段的请求量添加丢弃规则有很多结果,但我需要在一段时间内从特定地址接收字节数.
我调查的内容:
我看了iptables:对于第一种情况,我看到了一个专用的match.我也看到了quota match但是,数据计数在全球范围内被跟踪.
我不知道如何混合这两个规则来跟踪每个IP的接收数据.
其他事情 :
解决方法
您可以将IPSET与超时和计数器选项一起使用.
这看起来像这样:
这看起来像这样:
#create ipset for accounting with default lifetime 300 secs ipset create IP_QUOTA_SET hash:ip timeout 300 counters #create separated rule chain iptables --new-chain PER_IP_QOUTING #send packets to chain iptables -t filter -A INPUT \ -i <in-iface> --dst <ip> \ -p tcp --dport <dstport> \ -j PER_IP_QUOTING #if ip doesn't exist in the set,add it iptables -t filter -A PER_IP_QUOTING \ -m set ! --match-set IP_QUOTA_SET src \ -j SET --add-set IP_QUOTA_SET src --timeout 300 #if packet exists in the set,check bytes #if byte counter > quota then close connection #by sending of tcp-reset packet. iptables -t filter -A PER_IP_QUOTING \ -m set --match-set IP_QUOTA_SET src \ --bytes-gt 1000 -j REJECT --reject-with tcp-rst #pass other packets (for debug purpose) iptables -t filter -A PER_IP_QUOTING \ -j RETURN
在这种情况下,您可以检查列表并通过ipset命令进行编辑.
显示包含计数器和超时的当前列表:ipset list IP_QUOTA_SET.
有关详细信息,请阅读文档
原文地址:https://www.jb51.cc/linux/398684.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。