gpt4 book ai didi

security - IPTables 不会立即使用 ipset 阻止 IP

转载 作者:行者123 更新时间:2023-12-04 15:18:43 26 4
gpt4 key购买 nike

我有以下 IPTablesIPSet作为阻止攻击的规则源 IP ,但是当我添加攻击时 IPIPSet , 在我的 nginx访问日志,我仍然看到攻击的持续访问IP .过了一会儿,大概3~5分钟,IP被封锁了。

iptables

~$ sudo iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 317K packets, 230M bytes)
num pkts bytes target prot opt in out source destination
1 106K 6004K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set Blacklist src

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set Blacklist src

Chain OUTPUT (policy ACCEPT 350K packets, 58M bytes)
num pkts bytes target prot opt in out source destination

ipset
sudo ipset -L
Name: Blacklist
Type: hash:ip
Revision: 4
Header: family inet hashsize 1024 maxelem 65536 timeout 60
Size in memory: 13280
References: 2
Members:
xxx.xxx.xxx.xxx(attacker ip) timeout 0

我不知道为什么规则没有立即生效,这让我疯狂,就像攻击者在 mock 我一样。

我加 ipsetiptables规则与 -I应该将规则保持在第一个位置的选项。所以也许是 Chain INPUT(policy Accept)做的伎俩?

请帮帮我,非常感谢。

顺便提一句。

我用 Nginx+Djano/uWSGI部署我的应用程序,我使用shell脚本分析nginx日志将邪恶的IP放到 Blacklist ipset .

最佳答案

防火墙规则可能对阻止流量没有立即影响的原因可能是由于 有状态 对数据包的检查。

防火墙分析到达线路中的每个数据包可能效率低下,因此,出于性能原因,用户创建的规则通常仅适用于建立连接的初始数据包(称为 TCP 的 SYNSYN + ACK , ACK ) - 随后,所述连接被自动列入白名单(更准确地说,是原始规则创建的状态被列入白名单),直到终止( FIN )。

这里可能发生的情况是,由于 nginx 擅长的管道和保持事件连接,单个连接可用于发出和处理多个独立的 HTTP 请求。

因此,为了让您解决问题,您可以在 nginx 中禁用流水线和保持事件(不是一个好主意,因为它会影响性能),或者 删除现有的白名单连接 ,例如,使用类似 tcpdrop(8) on *BSD - 当然也必须有一个 Linux 等效工具。

但是,如果您只是遇到单个客户端执行过多请求的问题,并且因此使后端过载,那么适当的操作过程可能是基于 IP 地址的客户端 速率限制 ,标准 limit-req directive of nginx 的帮助。 (但是,请注意,您的一些客户可能位于运营商级 NAT 之后,因此,请注意应用限制的程度,以确保不会出现误报。)

关于security - IPTables 不会立即使用 ipset 阻止 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45396155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com