strix-tool/strix-talon

GitHub: strix-tool/strix-talon

一款轻量级的跨平台应用程序出站流量监控与防火墙规则管理工具,无需内核驱动即可实现对进程网络连接的实时可视化与封禁。

Stars: 0 | Forks: 0

# Strix Talon [![License: MIT](https://img.shields.io/badge/License-MIT-informational.svg)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux-blue.svg)](#安装说明) [![Security](https://img.shields.io/badge/security-hardened-success.svg)](SECURITY.md) ![Strix Talon - screenshot](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0df841977202f0fb9380676083ad8a8cdcf4af3f1eec98f25ae305e2b3679450.png) Strix Talon 是开源的 **[Strix Advanced Tools](https://github.com/strix-tool)** 的一部分, 这是一套适用于 Windows 和 Linux 的隐私与安全工具集。 ## 为什么需要它? 大多数机器都有充足的*入站*保护,却几乎无法看到自己的应用程序在*出站*时发送了什么。Talon 弥补了这一空白:它实时显示每个具有活动出站连接的进程,以及它们的确切去向;在出现新目标的那一刻提醒你;并允许你立即切断某个应用或地址。 关键的设计选择在于 Talon **不携带任何内核驱动**。它不需要你信任并签名一个 WFP callout 或自定义的 netfilter 模块,而是将你创建的每条规则直接转换为操作系统**自带的**防火墙——在 Windows 上通过 `netsh advfirewall` 使用 Windows Defender Firewall,在 Linux 上通过 `nft`——并将它创建的所有规则保存在一个私有的、命名空间化的区域中,以便可以干净地移除,且绝不会破坏你现有的防火墙配置。 ## 功能简介 - **实时应用程序出站监控** — 列出每个具有活动出站连接的应用程序,以及它正在通信的远程 IP / 端口,每约 2 秒刷新一次。只读且无需特殊权限。 - **新目标提醒** — 在目标首次出现的那一刻将其标记出来,这样当一个应用悄悄连接到一个新 endpoint 时就会立刻引人注目。 - **封禁应用或地址** — 通过一个操作封禁程序的出站流量 (Windows) 或特定的远程 IP (所有平台);解除封禁也同样简单。 - **全局熔断开关** — 通过一个开关封禁*所有*出站流量(环回接口除外),可选择保持本地 LAN 可达。环回接口始终豁免,因此该开关永远不会将你锁定在自己的机器之外。 - **一目了然的入站暴露情况** — 显示本地 **LISTENING** 套接字,以及每个套接字是绑定到 `0.0.0.0`(暴露给网络)还是 `127.0.0.1`(仅限本地),让你可以看到哪些流量可以*进入*该主机,而不仅仅是流出。 - **一键还原** — Talon 创建的每条规则都在独立的命名空间内;`revert` 会**仅**移除 Talon 的规则,而保持防火墙的其余部分不受影响。 ## 封禁的工作原理(OS 防火墙,无需驱动) Talon 本身不会拦截数据包,也不安装任何内核组件。每条规则都表示为一个 **argv 列表**(绝不是 shell 字符串),并交给平台原生的防火墙处理: - **Windows** — 规则将通过 `netsh advfirewall` 添加到 **Windows Defender Firewall**。规则名称以 `StrixTalon-` 为前缀,因此很容易查找、审计和移除。 - **Linux** — 规则存在于一个由 `nft` 管理的**私有 `strixtalon` nftables 表**中。你现有的表和链永远不会被修改。 因为 Talon 写入的所有内容都在独立的命名空间内,`revert` 可以全面拆除 Talon 的规则,而绝不会触及你(或你的发行版)创建的任何规则。 ## 仓库结构 | 文件 | 介绍 | |---|---| | `strix_talon_core.py` | 纯引擎 + 防火墙 **argv** 构建器(连接/监听器枚举、新目标比对、规则构建、验证)。 | | `StrixTalon.py` | PySide6 桌面仪表板 — 一个现代化、实时监控和规则更改的 UI。 | | `talon.py` | Linux CLI:`watch` / `list` / `listeners` / `rules` / `block` / `unblock` / `killswitch` / `revert`。 | | `tests/test_talon.py` | 自运行测试套件 — `python tests/test_talon.py`。 | | `requirements.txt` | GUI 依赖项:PySide6, psutil。 | ## 安装说明 **从源码运行(任何 OS):**需要 Python 3。GUI 需要 **PySide6** 和 **psutil**;CLI 和测试只需要标准库加上 **psutil**。 ``` git clone https://github.com/strix-tool/strix-talon cd strix-talon pip install -r requirements.txt # GUI (Windows 和 Linux) python StrixTalon.py # CLI (Linux) sudo python3 talon.py watch ``` ### Windows 准备好后,请从 [Releases](https://github.com/strix-tool/strix-talon/releases) 页面下载安装程序, 或者从源码运行 `StrixTalon.py`。监控是只读的,不需要任何权限; **更改防火墙规则需要管理员权限**,因此 GUI 会提供使用绝对解释器路径(而不是 `PATH`)重新以高权限启动的功能。 ### Linux (Ubuntu / Debian) 准备好后,请从 [Releases](https://github.com/strix-tool/strix-talon/releases) 安装 `.deb` 包,或从源码运行。监控不需要特殊权限; 更改防火墙规则的命令使用 `nft`,并通过 `sudo` 运行。 ## 用法 ### GUI (`StrixTalon.py`) ``` python StrixTalon.py ``` 一个现代化的单窗口仪表板:一个包含应用及其出站目标的实时表格(新目标会被高亮显示),一个显示 `0.0.0.0` 与 `127.0.0.1` 暴露情况的本地监听套接字面板,针对每行的**封禁 / 解除封禁**操作,全局**熔断开关**,以及一键**还原**。 ### CLI (`talon.py`) ``` python3 talon.py watch # live per-app egress monitor (read-only) python3 talon.py list # snapshot of current outbound connections python3 talon.py listeners # local LISTENING sockets + exposure sudo python3 talon.py block 203.0.113.5 # block outbound to a remote IP (nft) sudo python3 talon.py unblock 203.0.113.5 # remove that rule sudo python3 talon.py rules # list Talon's own rules sudo python3 talon.py killswitch on # block all outbound except loopback sudo python3 talon.py killswitch on --allow-lan # …but keep the LAN reachable # 按应用程序屏蔽(“此应用程序可能永远无法连接互联网”)在 Windows 的 # GUI 中可用;Linux CLI 按地址屏蔽(nft 无法按程序匹配)。 sudo python3 talon.py killswitch off # lift the kill-switch sudo python3 talon.py revert # remove ALL Talon rules, restore your firewall ``` 监控、列表和列出监听器是只读的,且不需要特殊权限;只有添加或移除规则的命令(`block`、`unblock`、`killswitch`、`revert`)才需要管理员/root 权限。 ## 安全性 防火墙工具会更改敏感的 OS 安全设置,因此其设计核心在于确保它不会对你造成伤害。Talon **不携带任何内核/WFP 驱动** —— 执行完全委托给 OS 自带的防火墙。每条规则都处于**独立的命名空间内**(Windows 上的 `StrixTalon-` 规则名称,Linux 上私有的 `strixtalon` nftables 表),因此 `revert` **仅**移除 Talon 的规则,绝不会破坏你现有的规则集。这里**不存在自我锁定** —— 环回接口始终豁免,熔断开关会保持环回接口(以及可选的 LAN)可达,并且每一次更改都可以一键还原。**没有代码注入** —— 每条防火墙命令都是一个 argv 列表,目标 IP 通过 `ipaddress` 进行验证,并且在构建规则之前,程序路径必须是真实存在的文件。它以**最小权限**运行 —— 可见性是只读的,且不需要特殊权限;只有规则更改才需要管理员/root 权限。请在 **[SECURITY.md](SECURITY.md)** 中阅读完整的威胁模型。发现了漏洞?请参阅其中的报告部分。 ## 已知限制 - **v1 版本没有交互式的允许/拒绝弹窗。**“允许或拒绝*此*新连接”的提示(Little Snitch 的标志性功能)在 Windows 上需要 WFP callout 驱动程序 / 在 Linux 上需要 NFQUEUE,这**不在 v1 的开发范围内**。Talon v1 提供的是实时可见性 + 基于规则的 OS 防火墙封禁 + 新目标提醒。 - **按应用程序封禁仅限 Windows。**`netsh` 根据程序路径匹配出站规则。在 Linux 上,`nft`/`iptables` 原生不支持将运行中的进程映射到规则,因此在 Linux 上 Talon 是通过**目标 IP** 进行封禁的 —— 并对此有明确提示。 - **未签名的 Windows 构建可能会触发 SmartScreen / AV。**防火墙工具会触及安全敏感设置,因此未签名的构建版本在首次运行时可能会被标记;请验证来源并选择**更多信息 → 仍要运行**。 ## 致谢 Strix Talon 不调用任何第三方服务,也不捆绑外部防火墙代码;它构建于标准库的 `ipaddress` 模块、`psutil`、PySide6 以及 OS 自带的防火墙工具之上。致谢与参考:**[ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md)**。 ## 开源协议 [MIT](LICENSE) © 2026 Strix Advanced Tools。请仅在你拥有或被授权管理的机器上使用。
标签:出站流量管理, 子域名枚举, 系统安全, 网络安全, 逆向工具, 防火墙, 隐私保护