迈思工作室

Hi, 请登录

轻量IP冲突检测工具V1.1,快速排除IP冲突

轻量IP冲突检测工具V1.1.0(增加历史告警可查+告警趋势图+MAC白名单+网关MAC监测+长期运行优化)


新增功能
  • 数据持久化与历史查询

新增 SQLite 本地历史库(由 [storage] 段控制,默认开启),事件与设备表持久保存,关闭页面或重启程序后仍可追溯。

事件流面板右上角新增两个入口。

「历史告警查询」按时间范围(24 小时 / 7 天 / 30 天 / 不限)与类型(全部 / 冲突 / 漂移 / 攻击 / 网关)检索历史告警,最多返回最近 500 条并显示当前条数,条目操作与实时事件流一致,支持展开详情、复制详情与导出 CSV。

图片

「历史趋势」以分类型柱状图呈现 24 小时 / 7 天 / 30 天的告警分布,便于判断冲突是否集中在某个时段反复出现。

图片
  • 网关 MAC 基线保护

在 [detect] gateway_ip 中填入网关 IP(多个以逗号分隔)后启用,留空(默认)不启用。程序以首次观测到的网关 MAC 为基线,此后变更即产生「网关 MAC 变更」严重告警,用于发现假冒网关。基线随历史库保存,重启无需重新学习;关闭历史库时仅在本次运行内有效。

  • 一键复制事件详情

展开任意事件点「复制详情」,即得结构化文本:类型、时间、级别、次数、双方 MAC 与厂商/设备类型、涉及 IP、历次声明,可直接粘贴至工单或群组。

  • 一键下载运行日志

事件流面板新增「下载运行日志」,可直接获取最近 2000 行日志,无需到程序目录翻文件。

  • 筛选与分批显示

事件流支持时间范围筛选(不限 / 5 分钟 / 15 分钟 / 60 分钟),设备表支持「全部 / 冲突 / 本机」切换,导出 CSV 跟随当前筛选。设备表超过 200 行时分批加载,底部「显示更多」续载,上千台设备时页面加载依旧顺畅。

图片
  • 设备表新增「相关事件」列

按 IP 统计关联告警的发生次数,支持排序,便于优先关注持续产生告警的主机。

图片

  • 告警附带处置建议

钉钉推送与页面事件详情均增加一行处置建议。例如 MAC 漂移提示多为私接路由器、随身 WiFi 或 ARP 代理,建议在交换机上定位该 MAC 所在端口。

  • 启动后自动打开监控页面

程序开始监听后自动打开浏览器并跳转监控页面;监听地址为 0.0.0.0 时按 127.0.0.1 打开,已开启访问令牌时自动携带令牌。该项由 [server] auto_open 控制,默认开启,设为 false 即关闭。

  • 启动环境自检与失败日志

启动时在控制台列出自检结果:抓包驱动、管理员权限、监听端口占用、程序目录可写。启动失败时完整原因写入程序目录下的 startup_error.log 并打印到控制台。

 
判定与统计口径调整
  • MAC 漂移白名单

网卡绑定多个 IP 属正常用法,将这类设备的 MAC 填入 [detect] mac_drift_whitelist(多个用逗号分隔)后,其多个 IP 声明不再计为漂移。

白名单只作用于漂移判定:同一 IP 被两个 MAC 声明、伪造 ARP 攻击与网关 MAC 变更仍照常告警。默认留空。

  • 本机标识按网卡判断

设备表「本机」筛选与事件流「本机」标记改为按本机全部网卡的 MAC 判断,一台机器绑定多个 IP 时都能被正确标识。

图片

  • 告警总数按累计值统计

「告警事件总数」与分类计数统一按累计发生次数统计,同一异常重复出现也计入,不随事件流滚动或列表上限裁剪而下降。总数含网关 MAC 变更与系统事件,故不小于三张分类卡(IP 地址冲突 / MAC 地址漂移 / 疑似 ARP 攻击)之和;点「清空」时计数一并归零。

  • 合并窗口内保留完整明细

合并窗口([detect] dedup_window,默认 30 秒)内同一异常多次出现时,事件详情保留每次原始记录(最多 5 条),连续声明可完整追溯。

  • 判定阈值可配置

[detect] arp_spoof_mac_threshold 与 [detect] mac_drift_ip_threshold 设为 0 即关闭对应判据;支持接收携带 802.1Q VLAN 标签的 ARP 报文,交换机镜像口场景可直接使用。

  • 多 VLAN 环境下的漂移判定

将 [detect] drift_group_by_subnet 设为 true 后,MAC 漂移按 IP 网段分组统计,多归属设备不会被误报;网段按 [detect] drift_subnet_prefix(默认 24,即 IP 前三段相同者归为一组)划分。默认关闭,行为与 V1.0 版一致。

  • 中文计算机名环境支持

计算机名包含中文时,程序可正常启动并开始监听。

 
长期运行优化
  • 日志自动轮转

日志按大小自动轮转,单文件超过 5 MB 即归档,最多保留 3 份,长期运行不持续占用磁盘;该值为内置固定值,不通过配置文件调整。

  • 设备表自动老化

由 [detect] device_age_out 控制,默认 1 小时(3600 秒)无流量的设备移出设备表,避免手机等随机 MAC 设备长期堆积;带「冲突」标记者不参与老化,0 表示不老化。

  • 冲突标记自动复位

设备表的「冲突」标记由 [detect] conflict_flag_ttl 控制,默认保留 600 秒(10 分钟)后复位,0 表示永久保留;事件流中的历史记录不受影响。

 
安全加固(可选)
  • 访问令牌

在 [server] token 中填入令牌后启用,所有接口需携带该令牌。页面首次以 http://<ip>:<端口>/?token=<令牌> 打开即可,同一标签页内自动记住(刷新不丢),换标签页或重开浏览器时在弹窗中填入令牌即可。留空时保持 V1.0 版行为,不校验。

  • 响应安全头

默认开启一组安全响应头,不改变页面使用方式。

 
配置项更新汇总

V1.1.0 新增配置项全部可选:沿用 V1.0 版的配置文件无需补齐,缺失项自动套用内置默认值,修改后重启生效。程序读取同级目录下的 config.ini(打包后即 exe 同级目录)。

  • 页面访问与鉴权

    • [server] auto_open:默认 true。服务就绪后自动打开浏览器并跳转监控页面;设为 false 表示不自动打开。

    • [server] token:访问令牌,默认留空(不校验)。填写后所有接口请求须携带 X-Token 头,页面访问不受限。该值属凭据,请勿提交到公开仓库。

  • 网关 MAC 基线保护

    • [detect] gateway_ip:网关 IP,默认留空。多个用逗号分隔;留空不启用网关 MAC 基线保护。基线随历史库保存,关闭历史库时重启后重新学习。

  • MAC 漂移判定

    • [detect] mac_drift_whitelist:MAC 漂移豁免名单,默认留空。多个用逗号分隔,分隔符与大小写不敏感;命中者不参与漂移判定,IP 冲突、ARP 欺骗与网关 MAC 变更不受影响。

    • [detect] drift_group_by_subnet:MAC 漂移是否按 IP 网段分组判定,默认 false。开启后按 [detect] drift_subnet_prefix 划分网段。

    • [detect] drift_subnet_prefix:分组判定的网段前缀长度,默认 24,即 IP 前三段相同的地址归为一组;32 及以上按单个 IP 分组。

  • 设备表标记与老化

    • [detect] conflict_flag_ttl:设备表「冲突」标记保持时长,默认 600 秒;超时自动复位,0 表示永久保留。

    • [detect] device_age_out:设备表老化时长,默认 3600 秒(1 小时);超过该时长无流量的非冲突条目移出设备表,0 表示不老化。

  • 历史数据

    • [storage] enabled:历史库开关,默认 true。关闭后不保存历史记录、不生成库文件,历史告警与历史趋势只在本次运行期间可用。

    • [storage] db_file:历史库文件名,默认 arp_history.db。相对路径按程序同级目录解析。

    • [storage] retention_days:历史事件保留天数,默认 30。启动时清理超期记录;0 表示不清理。

配置项书写注意:数值项填写纯数字,取值后不要追加说明文字;文件按 UTF-8 保存,用记事本以 ANSI(GBK)另存也能正常读取;修改后重启程序生效。
升级注意事项
  • 覆盖更新后需重启程序生效;配置文件沿用原有的一份即可,缺失的新增项自动套用默认值。

  • 历史库在首次启动时自动创建;已有库文件不会被重建或覆盖,其中的事件保留(超期记录按 [storage] retention_days 清理)。

  • 「清空」按钮同时重置网关 MAC 基线(相当于重新建立基线);事件流与设备表按原样清空。

  • 控制台新增的自检行属正常输出;出现失败项按提示调整,完整原因见程序目录下的 startup_error.log。

  • MAC 漂移白名单默认留空,留空时漂移判定与 V1.0 版一致。

常见问题

Q:设备表里不活跃的设备为什么会消失?
A:设备表自动老化,由 [detect] device_age_out 控制,默认 1 小时无流量即移出,设为 0 即关闭。

Q:设备上的「冲突」标记过一会儿不见了?
A:冲突标记自动复位,由 [detect] conflict_flag_ttl 控制,默认保留 10 分钟;事件流中的相关记录仍保留。

Q:页面提示「未授权」,接口返回 401?
A:说明已开启访问令牌。使用 ?token=<令牌> 打开页面,或在弹窗中输入令牌。

Q:历史告警查询查不到更早的记录?
A:历史记录按 [storage] retention_days 保留(默认 30 天,0 表示不清理),且单次查询最多显示最近 500 条。

Q:查询提示「历史库未启用」,或趋势图是空的?
A:历史库处于关闭状态,只在本次运行期间统计,重启后不再保留;开启历史库后可查历史,并按 24 小时 / 7 天 / 30 天统计趋势。

Q:某台电脑只绑了几个 IP,为什么提示 MAC 漂移?
A:漂移判定按同一 MAC 在统计窗口内声明的活跃 IP 数量触发,默认 4 个及以上。网卡绑定多个网段的 IP 属正常用法,把该网卡的 MAC 填入 [detect] mac_drift_whitelist 即不计为漂移。

夸克网盘给你分享了「ARP检测工具V1.1」,链接:https://pan.quark.cn/s/49086f6dba8c?pwd=3PBz提取码:3PBz

百度网盘分享的文件:ARP检测工具V1.1     链接: https://pan.baidu.com/s/1XS4RdH2EaI7SrNTKvqEAkg?pwd=gyv6 提取码: gyv6


相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址
二维码
评论