实施实时 IP 白名单系统的最佳方式
Best way to implement an Real-Time IP Whitelisting System
我想设置一个 IP 白名单系统来保护我的网络服务器。
我可以保护 3 层:(Internet =>) 防火墙 => Nginx 反向代理 => Node.js服务器
就实用性而言,我正在保护我的 Node.js 服务器,因为我可以在实时 Firebase 中动态 Allow/Deny IP Table 我通过自定义网络界面进行编辑.但它并不能完全阻止 DDoS,因为即使我 return 对未经授权的 IP 出错,我的节点服务器也会直接处理负载,这并不好...
我更愿意在上层保护我的服务器,比如 Nginx 或防火墙。
然而,IP列表是服务器上的文件,实现像我现在使用的那样舒适的解决方案似乎很复杂。
您有什么建议,您对我目前的解决方案有何看法?
谢谢!
有两种构建"dynamic" IP过滤器的方法:
- 在每次请求时,Nginx 都会询问 Firebase(或其他 ip 白名单来源)"does this client in ip white list?"。为此,您需要一个允许为 nginx 编写脚本的模块,例如 ngx_http_lua_module, ngx_http_perl_module or nginScript;
- 在每次白名单更新时 Firebase 触发事件,然后一些应用程序捕获事件并重建防火墙规则或 nginx ip 过滤器。
第二种方式似乎更能抵御DDoS攻击,但当ip白名单很大且变化频繁时不太适用。
我想设置一个 IP 白名单系统来保护我的网络服务器。
我可以保护 3 层:(Internet =>) 防火墙 => Nginx 反向代理 => Node.js服务器
就实用性而言,我正在保护我的 Node.js 服务器,因为我可以在实时 Firebase 中动态 Allow/Deny IP Table 我通过自定义网络界面进行编辑.但它并不能完全阻止 DDoS,因为即使我 return 对未经授权的 IP 出错,我的节点服务器也会直接处理负载,这并不好...
我更愿意在上层保护我的服务器,比如 Nginx 或防火墙。 然而,IP列表是服务器上的文件,实现像我现在使用的那样舒适的解决方案似乎很复杂。
您有什么建议,您对我目前的解决方案有何看法?
谢谢!
有两种构建"dynamic" IP过滤器的方法:
- 在每次请求时,Nginx 都会询问 Firebase(或其他 ip 白名单来源)"does this client in ip white list?"。为此,您需要一个允许为 nginx 编写脚本的模块,例如 ngx_http_lua_module, ngx_http_perl_module or nginScript;
- 在每次白名单更新时 Firebase 触发事件,然后一些应用程序捕获事件并重建防火墙规则或 nginx ip 过滤器。
第二种方式似乎更能抵御DDoS攻击,但当ip白名单很大且变化频繁时不太适用。