基于 Windows 防火墙的 IP 黑名单自动封禁方案

试了一下无事发生,重启了几回又不弹错误了,但是现在自动更新规则后也不会弹通知了

因为现在更改为每小时更新,频繁通知会影响用户

自动更新的结果现在保存至 C:\Users\%USERNAME%\BT_BAN\OUTPUT.log
通知改为仅在首次配置以及每天的 00:05 弹出,显示当前的 IP 规则数目

请尝试双击执行 C:\Users\%USERNAME%\BT_BAN\NOTIFY.vbs ,如无意外应该会弹出通知
若开启了免打扰,消息会收纳在通知区域内而不弹出,请留意右下角通知图标的变化

我也是上行跑满,下行只有几十k

BT_ban/Windows防火墙是否支持cidr?
如果支持,能否添加一个新功能?
用户可自定义“v6信任值”
取值范围:-64至0
默认值:0
用途:增加黑名单的适用范围。

以下操作仅为码瓜“俺寻思这能行”所写,不作为效果实现的唯一路径:
操作步骤:
1.当黑名单添加一个新的IP/cidr,如果它的掩码介于/128到/64,则重置为/64;如果介于/64至/0,则不处理。
2.将cidr的掩码进一步缩小,大小相当于v6信任值的大小。
3.将cidr转换得合乎标准。

例:
用户已将设置“v6信任值”为-8。黑名单添加了新的IP/cidr:“aaaa: bbbb: cccc: dddd: eeee: ffff: 1111: 2222/128” 、“1234: 1234: 1234: 1230::/60”(由于论坛奇怪的超文本机制,我必须加空格避免转换,实际上应该没有空格)。
1.转换为“aaaa: bbbb: cccc: dddd: eeee: ffff: 1111: 2222/64” 、“1234: 1234: 1234: 1230::/60”。
2.转换为“aaaa: bbbb: cccc: dddd: eeee: ffff: 1111: 2222/56” 、“1234: 1234: 1234: 1230::/52”。
3.转换为“aaaa: bbbb: cccc: dd00::/56” 、“1234: 1234: 1234: 1000::/52”。

另:v4应该也可以做类似机制,但是我并不了解ipv4掩码和地区划分是否有关系。

这个是支持的

现在的情况已经严重到需要白名单了吗?

ipv4的地址分配非常破碎和物理位置关系不大

意思是说根据预设某种规则 将加入黑名单的单个IPv6地址
放大成一个范围性黑名单? 相当于一种可控的AOE?

仅用于从黑名单一个ipv6放大为对应的AOE,未涉及白名单。
这是用户自行扩大影响所致,并不影响BTN数据,也不会因为BTN分发数据导致误伤。
想到啥就说啥,毕竟我是码瓜,不然我就自己写了。万一现在天马行空的需求未来用上了呢(

要不要重置值也允许自定义?
有些地方ISP的PD是路由器/60终端/64,有些地方是路由器/56终端/60。
另外还得检查v6信任值设置过小导致处理后的掩码为“负值”的情况,负值得归零。
掩码归零相当于把自己从BT网络中ban了,还得写个系统提醒,不然想破头也想不明白为什么BT突然没流量了(

所以在设想中这个过程应该是 全自动的还是半自动呢?

确实 每个地方的情况不一样 使用固定范围效果不好
可能需要一种自动或半自动确定 范围的方法

这些在逻辑上不会有困难

如果你说的是黑名单列表的更新:BT_ban不是定时自动下载PBH黑名单的吗,我认为这个功能运行在每次下载黑名单之后,应用到Windows防火墙之前。
如果你说的是自动调整“v6信任值”的大小:分析一个cidr下有多少正常用户和赛博魅魔,需不需要用小掩码代替多条目,这种事需要大量的即时数据分析,BTN来分析可能更适合。目前用户根据个人经验写个静态数值就差不多了。

我只知道openwrt可以看PD信息,作为终端的win好像看不到这些信息。留着给用户想填什么填什么吧。

这个功能有没有可能直接内置到BC里?(然后BTN也开发了相应功能导致“v6信任值”叠加,掩码叠到0了/悲)

或者简单一点 在客户端里面加一个 在一定IP范围内只允许连接一个用户
类似于现在的 是否允许多个peer从同一IP连入

/64前輟就不能再分了… 還是60/前輟好 :grimacing: