我将应用以下 iptables 规则来暂时禁止每个 IP 请求某些端口超过每分钟 30 次。
iptables -A INPUT -p tcp --dport 25461 -m hashlimit --hashlimit-name temporary --hashlimit-mode srcip --hashlimit-above 30/minute -j DROP
如何将 IP 地址列表列入白名单,以便能够从我的服务器发送和接收数据而不会出现上述规则的任何问题?我需要一个规则,让某些 IP 做他们所做的任何事情,直到现在我还没有设置任何过滤器。泰。
只需将规则放在 INPUT 链中该规则的上方(之前),该规则明确允许从相关 IP 地址到该端口的所有流量。iptables 规则就像瀑布一样工作,如果瀑布中较高的 ALLOW 规则匹配,它将将该数据包快速发送到目的地,并且永远不会使其进入瀑布中较低的规则。(当然,如果匹配的是 DENY 或 REJECT,则数据包将被退回,并且永远不会使其符合瀑布中较低的任何 ALLOW 规则)。
例如:
iptables -I INPUT -p tcp --dport 25461 --source 192.0.2.0 -j ALLOW
将在瀑布链的顶部放置一条规则,该规则会自动将来自源 192.0.2.0 的任何用于端口 25461 的数据包立即发送到端口 25461,而不会将其归结为限制速率的规则。