Tallow 是一个小型程序,它将 Windows 机器的所有出站流量重定向到 Tor 匿名网络。任何无法由 Tor 处理的流量(例如 UDP)都会被阻止。Tallow 还会拦截并处理 DNS 请求,以防止潜在的泄漏。
Tallow 有几种应用场景,包括:
请注意,Tallow 本身并非设计为完整的强匿名解决方案。请参阅下面的警告。
使用 Tallow GUI,只需按下大大的"Tor"按钮即可开始通过 Tor 网络重定向流量。再次按下按钮停止 Tor 重定向。请注意,每次切换按钮时,你的互联网连接可能会暂时中断。
要测试 Tor 重定向是否生效,请访问以下网站: https://check.torproject.org。
Tallow 使用以下配置连接到互联网:
+-----------+ +-----------+ +----------+
| PC |------->| TOR |------->| SERVER |
| a.b.c.d |<-------| a.b.c.d |<-------| x.y.z.w |
+-----------+ +-----------+ +----------+
这里 (a.b.c.d) 代表本地地址,(x.y.z.w) 代表远程服务器。
Tallow 使用 WinDivert 拦截进出你的电脑的所有流量。Tallow 处理两种主要流量类型:DNS 流量和 TCP 流。
DNS 查询被 Tallow 自身拦截并处理。Tallow 不会寻找域名的真实 IP 地址,而是生成一个伪随机的"假"域名(在 44.0.0.0/24 范围内),并在查询响应中使用该地址。假 IP 也会与该域名关联并记录在表中,供以后参考。另一种做法是通过 Tor(支持 DNS)查找真实 IP。但由于 Tallow 使用 SOCKS4a,真实 IP 并非必需。本地处理 DNS 请求要快得多。
TCP 连接也会被拦截。Tallow 将出站 TCP 连接"反射"为指向 Tor 程序的入站 SOCKS4a 连接。如果连接目标是假 IP,Tallow 会查找对应的域名,并将其用于 SOCKS4a 连接。否则,连接会被阻止(默认情况下),或者使用通过 Tor 的 SOCKS4 直接连接。通过一点魔法(参见 redirect.c),可以将 TCP 连接到 SOCKS4(a)。
所有其他流量都会被直接阻止。这包括所有入站(非 Tor)流量以及非 TCP 和非 DNS 的出站流量。此外,Tallow 会阻止 hosts.deny 文件中列出的所有域名。其中包括 Windows 更新、Windows 回传以及一些常见的广告服务器,以帮助避免 Tor 带宽浪费。你可以根据自己的需要编辑和定制 hosts.deny 文件。
Tallow 源自 TorWall 原型(其中"tallow"是"torwall"去掉字母 'r' 后的变位词)。
Tallow 的工作方式略有不同,旨在重定向所有流量,而不仅仅是 HTTP 端口 80。此外,与原型不同,Tallow 不 使用 Privoxy,也不会以任何方式改变任何 TCP 流的内容(请参阅下面的警告)。
要构建 Tallow,你需要用于 Linux 的 MinGW 交叉编译器。
你还需要下载并将以下外部依赖项放入 contrib/ 目录中:
然后只需运行 build.sh 脚本。
目前,Tallow 并未尝试对通过 Tor 网络发送的流量内容进行匿名化。这些信息可能被用于去匿名化。更多信息请参阅此链接。除非你知道自己在做什么,否则不应依赖 Tallow 来实现强匿名性。