4

我需要torify(使用torsocks)一个python deamon应用程序。
在macos上测试一切正常,在linux上我有这个错误:

1507484799 WARNING torsocks[9]: [syscall] Unsupported syscall number 217. Denying the call (in tsocks_syscall() at syscall.c:488)
1507484800 ERROR torsocks[6]: Unable to resolve. Status reply: 4 (in socks5_recv_resolve_ptr_reply() at socks5.c:829)
Segmentation fault

我应该调查什么?

4

1 回答 1

5

更新:

我的补丁被 Torsocks 源代码接受。如果您收到不支持的系统调用 217 的错误,请获取最新的 Torsocks 代码:https ://gitweb.torproject.org/torsocks.git 。

如果您收到其他不受支持的系统调用的错误,请在 bugtracker 上开票: https ://trac.torproject.org/projects/tor/newticket


最近开发了一个补丁来使 torsocks 完全支持这个系统调用(217:getdents64)。该补丁尚未被主构建接受,但您可以轻松地自己构建它。只需克隆这个 git repo:https ://github.com/seisvelas/torsocks并按照构建说明进行操作。

补丁应该(希望)很快成为官方躯干的一部分。您可以在此处关注跟踪器上的错误报告: https ://trac.torproject.org/projects/tor/ticket/28861

如果您想知道为什么会发生这种情况,那是因为 torsocks 有一个允许系统调用的白名单。Torsocks 的第 3 版有望通过使用 seccomp/pledge 来解决这个问题,但目前处于开发早期阶段。同时,不代表安全问题的系统调用可以手动添加到白名单中。由于 getdents 和 getdents64(后者是给 OP 带来问题的系统调用)对我来说似乎没有问题,我开发了链接补丁,目前正在等待它被主 torsocks 代码库接受。

于 2018-12-20T01:35:01.060 回答