nginx 有主动屏蔽 ip 的插件吗?

2021-04-20 01:58:38 +08:00
 LeeReamond
比如由 lua 插件,或者后端节点调用一个接口,让 nginx 拒绝来自某 ip 的服务员,有现成插件吗?应用场景比如人工认定受到来自某 ip 的攻击。

原生支持屏蔽,但没有取出功能,不太合适,一旦加入除非手动取消否则就永远屏蔽了,不符合需求
2961 次点击
所在节点    NGINX
9 条回复
ZeroClover
2021-04-20 03:03:16 +08:00
ipset
learningman
2021-04-20 03:15:13 +08:00
ipset 可以设置 timeout
然后 fail2ban
Livid
2021-04-20 04:36:05 +08:00
https://github.com/openresty/lua-resty-memcached

把要屏蔽的 IP 写进 memcached,用 Lua 判断当前访问的 IP 有没有对应的 memcached key 。

需要注意的一个坑是,如果是 IPv6 地址的话,因为 Lua Resty 的某个转义机制,IPv6 地址里的 : 会被转义,这里需要注意一下。
ryd994
2021-04-20 05:00:00 +08:00
如果是不特定来源而且不需要特别复杂的逻辑的话,limit_req 可以提供基于 token bucket 的限制频率。可以设置 burst 。
token buket 空了自然就释放了
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req
zzzmh
2021-04-20 13:49:57 +08:00
同有这个需求,目前在研究 openresty
mentalidade
2021-04-20 13:51:04 +08:00
kong 有那个插件,不过是存到 redis 里面的。简单的话,就 openresty 把写一个简单的
keelele
2021-04-21 09:40:07 +08:00
可以自己添加
Alliot
2021-07-29 09:33:36 +08:00
fail2ban 也可以满足你这个需求吧
LeeReamond
2021-07-29 10:45:46 +08:00
@Alliot f2b 一直没用明白,不知道怎么接入除了系统登录外其他的东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX