【问题标题】:Naxsi - blacklist and whitelist setup with NginxNaxsi - 使用 Nginx 设置黑名单和白名单
【发布时间】:2020-04-14 15:33:46
【问题描述】:

打开这个问题:

https://github.com/nbs-system/naxsi/issues/486

但似乎在那里不活跃。

我目前在我的项目中使用 modsecurity 来过滤掉坏 IP 并允许好的 IP:

类似这样的:

modsecurity_rules '
      SecRuleEngine On
      SecRule REMOTE_ADDR "@ipMatchFromFile /etc/modsecurity/whitelist.txt" id:1,phase:1,allow
      SecRule REMOTE_ADDR "@ipMatchFromFile /etc/modsecurity/blacklist.txt" id:2,phase:1,deny,status:429,msg:\'blacklist\'

将此功能添加到 NAXSI 的最佳方法是什么?

我应该添加规则还是修改代码?当这是不可能的时候,你能提供一些关于其中一个、两个或一个都没有的提示吗(是否有任何性能影响或一般影响)

在 NGINX 设置中实现此目标的任何其他可能性?

试过这种方法:

############################
## Block rules: 1700-1800 ##
############################

MainRule "str:1.1.1.1" "msg:IP Blacklist" "mz:$HEADERS_VAR:X-Forwarded-For" "s:$BLACK:8" id:1701;
MainRule "str:2.2.2.2" "msg:IP Blacklist" "mz:$HEADERS_VAR:X-Forwarded-For" "s:$BLACK:8" id:1702;

其中 1.1.1.1 和 2.2.2.2 将是我想要阻止的 IP(来自黑名单) - 我将每天生成 config/list

但是,我仍然不知道如何将某些 IP 列入白名单,以便它们永远不会被阻止(通过阻止规则也可以通过其他规则)。有什么想法吗?

正在考虑针对所有人的白名单规则:

MainRule wl:0 "mz:$HEADERS_VAR|X-Forwarded-For:xxx.xxx.xxx.xxx";

但它也不是一个有效的规则....

你会建议什么方法?

【问题讨论】:

    标签: nginx


    【解决方案1】:

    我认为为此您可以使用ngx_stream_access_module 模块。

    您可以创建两个列表并将它们包含到您的项目 nginx 配置文件中。 例如:

    include /path/to/file/blacklist.conf
    include /path/to/file/whitelist.conf
    

    【讨论】:

    • 非常感谢。我有一个问题,在 nginx 中添加模块是一个好习惯吗?我想保留 modsecurity 并添加 naxsi,但建议只使用一个模块。在 ngx_stream_access_module 的情况下,我也会得到 2 个模块。后者可能小于 modsecurity。关于性能的任何建议?还是只是可维护性问题
    • 也刚刚意识到.... Naxsi 仍然可以从白名单中阻止 ip,不是吗?或者它如何知道列表?
    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多