
Быстрый и модульный сканер для выходных узлов Tor. Канонический репозиторий (включая систему отслеживания проблем) находится по адресу https://gitlab.torproject.org/tpo/network-health/exitmap

Этот репозиторий не поддерживается. Обратитесь к форку The Tor Project.
Exitmap — это быстрый и модульный сканер на Python для
Tor выходных релеев. Модули Exitmap реализуют задачи,
которые выполняются на (подмножестве) всех выходных релеев. Если у вас есть опыт
функционального программирования, думайте о exitmap как об интерфейсе map() для выходных релеев Tor:
модули могут выполнять любые TCP-задачи, такие как получение веб-страницы,
загрузка файла, подключение к SSH-серверу или вход в IRC-канал.
На практике exitmap полезен для мониторинга надежности и доверия к выходным релеям. The Tor Project использует exitmap для проверки ложноотрицательных результатов на сервисе check и для поиска вредоносных выходных релеев. Легко разрабатывать новые модули для exitmap; просто посмотрите на файл HACKING в каталоге doc/ или изучите один из существующих модулей.
Exitmap использует Stem для создания цепей ко всем заданным выходным релеям. Каждый раз, когда tor уведомляет exitmap о установленной цепи, модуль вызывается для этой цепи. Модули могут быть чистыми Python-скриптами или исполняемыми файлами. Для исполняемых файлов необходим torsocks.
Наконец, обратите внимание, что exitmap — это инструмент для измерения сети и мало полезен обычным пользователям Tor. The Tor Project уже регулярно запускает этот инструмент. Дополнительные сканирования exitmap только создают излишнюю нагрузку на сеть. Единственная причина, по которой exitmap доступен публично, — это то, что его исходный код и дизайн могут быть интересны некоторым.
Exitmap использует библиотеку Stem для взаимодействия с Tor. Существует множество способов установить Stem. Самый простой — использовать pip вместе с предоставленным файлом requirements.txt:
$ pip install -r requirements.txt
Единственный обязательный аргумент exitmap — это имя модуля. Например, вы можете запустить exitmap с модулем checktest, выполнив:
$ ./bin/exitmap checktest
Вывод в командной строке покажет, как Tor загружается, вывод модуля checktest и сводку сканирования. Если вам не нужны три прыжка и вы предпочитаете использовать два прыжка с статическим первым прыжком, выполните:
$ ./bin/exitmap --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
Чтобы выполнить тот же тест только через немецкие выходные релеи, выполните:
$ ./bin/exitmap --country DE --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
Если вы хотите сделать паузу в пять секунд между созданием цепей, чтобы снизить нагрузку на сеть Tor и цель сканирования, выполните:
$ ./bin/exitmap --build-delay 5 checktest
Обратите внимание, что 1234567890ABCDEF1234567890ABCDEF12345678 — это псевдо-отпечаток,
который вы должны заменить на релей, который контролируете.
Чтобы узнать больше обо всех опциях exitmap, выполните:
$ ./bin/exitmap --help
Exitmap поставляется с батарейками, предоставляя следующие модули:
По умолчанию exitmap пытается прочитать файл .exitmaprc в вашем домашнем каталоге. Файл принимает все опции командной строки, но необходимо заменить дефисы на подчеркивания. Вот пример:
[Defaults]
first_hop = 1234567890ABCDEF1234567890ABCDEF12345678
verbosity = debug
build_delay = 1
analysis_dir = /path/to/exitmap_scans
Не нравится exitmap? Тогда посмотрите на tortunnel, SoaT, torscanner, DetecTor или SelekTOR.
Перед отправкой pull request, пожалуйста, убедитесь, что все модульные тесты проходят, выполнив:
$ pip install -r requirements-dev.txt
$ py.test --cov-report term-missing --cov-config .coveragerc --cov=src test
Контакт: Philipp Winter [email protected]
Отпечаток OpenPGP: B369 E7A2 18FE CEAD EB96 8C73 CF70 89E3 D7FD C0D0