IP名单

IP名单类型

GoEdge中有多个位置可以管理IP名单,分别有着不同的作用范围:

  • 公共名单 - 可以设置为全局有效,这样所有只要开启了WAF的网站都会自动生效,可以在左侧 “网站列表”菜单 – “IP”名单中管理公共黑名单和公共白名单
  • WAF策略中的IP名单 - 可以在WAF策略中设置IP黑名单和白名单,设置后对策略本身的规则和使用此策略的开启了WAF的网站有效
  • WAF设置中的名单 – 开启后只对网站网站有效,当然,前提仍然是当前网站开启了WAF设置

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黑名单没有起作用?

  1. 首先确认IP可以正常访问某个网站:在网站的访问日志中找到该IP的访问记录,确认这个IP确实能正常访问网站
  2. 如果你是在”公共黑名单“中添加的IP,请先确保当前黑名单为“全局有效”(可以在名单详情中查看),否则只有绑定了具体网站的WAF策略才会生效
  3. 在“网站列表” – “IP名单”中搜索该IP,确保该IP已经在黑名单中
  4. 在“网站列表” – “IP名单”中搜索该IP,确保该IP没有在白名单中(单个IP或IP范围)
  5. 在“网站列表” – “WAF策略“ – 点击集群对应策略 – “IP管理“ – “白名单”中确保该IP没有在白名单中(单个IP或IP范围)
  6. 在该IP访问的网站中的 – 网站设置 – “WAF”设置中确认已经“启用Web防火墙“
  7. 在网站设置 – “WAF”设置 – “白名单”中确保该IP没有在白名单中(单个IP或IP范围)
  8. 登录节点服务器,查看节点日志(/var/log/edge-node.log),确保当前边缘节点和API节点连接没有异常
  9. 登录节点服务器,查看节点日志(/var/log/edge-node.log),确保没有出现 IP_LIST_DB 相关错误,如果出现,请根据提示进行操作
  10. 登录节点服务器,删除 edge-node/data/ip_* 相关文件,然后重启节点进程(edge-node restart),然后稍等片刻后,再观察访问日志,检查该IP是否仍能访问;如果这些文件不存在,可以单纯重启节点中 edge-node 进程进行测试;
  11. 如果你在管理系统中批量导入了大量的IP,节点需要一定的时间同步数据,请等一段时间后再尝试加入黑名单

为什么我设置的IP白名单没有起作用?

  1. 如果你是在”公共白名单“中添加的IP,请先确保当前白名单为“全局有效”(可以在名单详情中查看),否则只有绑定了具体网站的WAF策略才会生效
  2. 在“网站列表” – “IP名单”中搜索该IP,确保该IP已经在白名单中
  3. 登录节点服务器,查看节点日志(/var/log/edge-node.log),确保当前边缘节点和API节点连接没有异常
  4. 登录节点服务器,查看节点日志(/var/log/edge-node.log),确保没有出现 IP_LIST_DB 相关错误,如果出现,请根据提示进行操作
  5. 登录节点服务器,删除 edge-node/data/ip_* 相关文件,然后重启节点进程(edge-node restart),然后稍等片刻后,再观察访问日志,检查该IP是否可以访问;如果这些文件不存在,可以单纯重启节点中 edge-node 进程进行测试;
  6. 如果你在管理系统中批量导入了大量的IP,节点需要一定的时间同步数据,请等一段时间后再尝试加入白名单
  7. 如果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”或者“自定义脚本“。

GoEdge文档