IP名单
IP名单有效范围
GoEdge中有多个位置可以管理IP名单,分别有着不同的作用范围:
公共名单
- 可以设置为全局有效,这样所有只要开启了WAF的网站都会自动生效,可以在左侧 “网站列表”菜单 – “IP”名单中管理公共黑名单、公共白名单、公共灰名单WAF策略
中的IP名单 - 可以在WAF策略中设置IP黑名单和白名单,设置后对策略本身的规则和使用此策略的开启了WAF的网站有效WAF
设置中的名单 – 开启后只对网站网站有效,当然,前提仍然是当前网站开启了WAF设置
IP名单类型
黑名单
- 其中的IP将会被禁止访问白名单
- 其中的IP将会自动放行,优先级高于黑名单灰名单
- 其中的IP仅作为记录和观察使用,不影响黑名单和白名单的作用(GoEdge v1.3.9中加入)
IP类型
IP名单中的IP可以有以下几种类型:
单个IP
- 比如1.2.3.4
IP段
- 比如1.2.3.4-2.3.4.5
CIDR
- 比如1.2.3.4/24
所有IP
- 这是一种特殊的IP类型,不需要填写任何具体的IP或IP段,代表所有的IP
IP版本
完整支持IPv4和IPv6两种。
拦截IP触发动作
如果你想在系统拦截IP时触发一系列自定义动作,可以在对应的集群 – “集群设置” – “WAF动作”中添加对应的动作。
常见问题
为什么我设置的IP黑名单没有起作用?
- 首先确认IP可以正常访问某个网站:在网站的访问日志中找到该IP的访问记录,确认这个IP确实能正常访问网站
- 如果你是在”公共黑名单“中添加的IP,请先确保当前黑名单为“全局有效”(可以在名单详情中查看),否则只有绑定了具体网站的WAF策略才会生效
- 在“网站列表” – “IP名单”中搜索该IP,确保该IP已经在黑名单中
- 在“网站列表” – “IP名单”中搜索该IP,确保该IP没有在白名单中(单个IP或IP范围)
- 在“网站列表” – “WAF策略“ – 点击集群对应策略 – “IP管理“ – “白名单”中确保该IP没有在白名单中(单个IP或IP范围)
- 在该IP访问的网站中的 – 网站设置 – “WAF”设置中确认已经“启用Web防火墙“
- 在网站设置 – “WAF”设置 – “白名单”中确保该IP没有在白名单中(单个IP或IP范围)
- 登录节点服务器,查看节点日志(
/var/log/edge-node.log
),确保当前边缘节点和API节点连接没有异常 - 登录节点服务器,查看节点日志(
/var/log/edge-node.log
),确保没有出现IP_LIST_DB
相关错误,如果出现,请根据提示进行操作 - 登录节点服务器,删除
edge-node/data/ip_*
相关文件,然后重启节点进程(edge-node restart
),然后稍等片刻后,再观察访问日志,检查该IP是否仍能访问;如果这些文件不存在,可以单纯重启节点中edge-node
进程进行测试; - 如果你在管理系统中批量导入了大量的IP,节点需要一定的时间同步数据,请等一段时间后再尝试加入黑名单
为什么我设置的IP白名单没有起作用?
- 如果你是在”公共白名单“中添加的IP,请先确保当前白名单为“全局有效”(可以在名单详情中查看),否则只有绑定了具体网站的WAF策略才会生效
- 在“网站列表” – “IP名单”中搜索该IP,确保该IP已经在白名单中
- 登录节点服务器,查看节点日志(
/var/log/edge-node.log
),确保当前边缘节点和API节点连接没有异常 - 登录节点服务器,查看节点日志(
/var/log/edge-node.log
),确保没有出现IP_LIST_DB
相关错误,如果出现,请根据提示进行操作 - 登录节点服务器,删除
edge-node/data/ip_*
相关文件,然后重启节点进程(edge-node restart
),然后稍等片刻后,再观察访问日志,检查该IP是否可以访问;如果这些文件不存在,可以单纯重启节点中edge-node
进程进行测试; - 如果你在管理系统中批量导入了大量的IP,节点需要一定的时间同步数据,请等一段时间后再尝试加入白名单
- 如果IP已经在黑名单中,则添加白名单并不会删除黑名单中的相关记录
为什么我添加黑名单后,nftables规则中没有出现此IP?
在管理系统添加黑名单后,系统并不会立即将此IP加入到边缘节点的nftables,而是等待此IP访问边缘节点时才会 短暂地 (一般为1个小时)将IP加入到nftables中。一是避免nftables中规则数量过多,导致系统性能严重下降;二是避免单个网站的黑名单影响别的网站的访问。同时,边缘节点仍然会遵循IP的有效期,拦截当前IP在有效期间的所有访问,nftables只是提升拦截效率的辅助作用。
为什么我的边缘节点日志中会出现大量firewall-cmd相关提示?
如果你的边缘节点中没有安装nftables,那么就会默认使用 firewalld
拦截IP,如果IP数据量较大时,firewall-cmd
命令可能出现操作超时的情况,此时请安装 nftables,然后重启edge-node
进程(edge-node restart
)。
我怎么将系统自动拦截的IP发送到我自己的接口上?
你可以在对应的集群 – “集群设置” – “WAF动作”中添加对应的动作,选择类型为“自定义HTTP API”或者“自定义脚本“。