Торсы и неподдерживаемые системные вызовы
Мне нужно торифицировать (используя торсы) приложение 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
что я должен расследовать?
0 ответов
Обновить
Мой патч был принят в исходный код Torsocks. Если вы получаете сообщение об ошибке неподдерживаемого системного вызова 217, получите новейший код Torsocks: https://gitweb.torproject.org/torsocks.git.
Если вы получаете сообщение об ошибке для другого неподдерживаемого системного вызова, сделайте запрос на багтрекер: https://trac.torproject.org/projects/tor/newticket
Недавно был разработан патч, позволяющий торсокам поддерживать именно этот системный вызов (217: getdents64). Патч еще не был принят в основную сборку, но вы можете легко собрать его самостоятельно. Просто клонируйте этот репозиторий git: https://github.com/seisvelas/torsocks и следуйте инструкциям по сборке.
Патч должен (надеюсь) стать частью официальных торсов очень скоро. Вы можете следить за отчетом об ошибках на трекере здесь: https://trac.torproject.org/projects/tor/ticket/28861
Если вам интересно, почему это происходит, то это потому, что торсоки имеют белый список, из которых разрешены системные вызовы. Версия 3 torsocks решает эту проблему с помощью seccomp, но в настоящее время находится на ранней стадии разработки. Тем временем системные вызовы, которые не представляют проблем безопасности, можно вручную добавить в белый список. Поскольку getdents и getdents64 (последний является системным вызовом, который дал OP его проблему) для меня кажутся беспроблемными, я разработал связанный патч и в настоящее время ожидаю его принятия в основную кодовую базу torsocks.