Skip to main content

Test and monitors the status of Tor Onion Services

Project description

Onionprobe

Onionprobe is a tool for testing and monitoring the status of Tor Onion Services sites.

It can run a single time or continuously to probe a set of onion services endpoints and paths, optionally exporting to Prometheus.

Requirements

Onionprobe requires the following software:

On Debian, they can be installed using

sudo apt install python3 python3-prometheus-client \
                 python3-stem python3-cryptography \
                 python3-yaml python3-requests     \
                 python3-socks tor

Installation

Onionprobe is available on PyPI:

pip install onionprobe

It's also possible to run it directly from the Git repository:

git clone https://gitlab.torproject.org/tpo/onion-services/onionprobe
cd onionprobe

Usage

Simply ask Onionprobe to try an Onion Service site:

onionprobe -e http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion

It's possible to supply multiple addresses:

onionprobe -e <onion-address1> <onionaddress2> ...

Onionprobe also accepts a configuration file with a list of .onion endpoints and options. A detailed sample config is provided and can be invoked with:

onionprobe -c configs/tor.yaml

By default, Onionprobe starts it's own Tor daemon instance, so the tor binary must be available in the system.

See the manual page for the complete list of options and available metrics.

Testing

Onionprobe comes with a working test environment with the sample configuration and based on Docker Compose, which can be started using

docker-compose up

Then point your browser to:

Compiled configurations

Besides the sample config containing sites listed at https://onion.torproject.org, Onionprobe comes also with other example configs:

  1. Real-World Onion Sites .onions at real-world-onion-sites.yaml, generated by the real-world-onion-sites.py script.
  2. The SecureDrop API .onions at securedrop.yaml, generated by the securedrop.py script.

You can build your own configuration compiler by using the OnionprobeConfigCompiler class.

Folder structure and files

Relevant folders and files in this repository:

  • assets: logos and other stuff.
  • configs: miscelaneous configurations.
  • containers: container configurations.
  • debian: debian packaging.
  • docs: documentation.
  • packages: python packages codebase.
  • scripts: provisioning and other configuration scripts.
  • tests: test procedures.
  • vendors: other third-party libraries and helpers.
  • kvmxfile: please ignore this if you're not a KVMX user.
  • .env: should be manually created if you plan to use custom configuration with Docker Composer.
  • docker-compose.yml: service container configuration.

Tasks

Check the issue tracker.

Acknowledgements

Thanks to:

  • @irl for the idea/specs/tasks.
  • @hiro for suggestions.
  • @arma and @juga for references.
  • @anarcat and @georg for Python and Debian packaging guidance and review.

Alternatives

Known issues

From Stem:

References

Related software and libraries with useful routines:

Relevant issues:

Research questions:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onionprobe-0.3.2.tar.gz (117.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onionprobe-0.3.2-py3-none-any.whl (58.6 kB view details)

Uploaded Python 3

File details

Details for the file onionprobe-0.3.2.tar.gz.

File metadata

  • Download URL: onionprobe-0.3.2.tar.gz
  • Upload date:
  • Size: 117.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for onionprobe-0.3.2.tar.gz
Algorithm Hash digest
SHA256 29bf222d6cb34a29e6607e56584ee27c4791270d8d605a68b3d5a2163ef53a7e
MD5 98552c270df56ae64cf815939b3b630a
BLAKE2b-256 b3503504c49f999bc810a4a8d813ae4272ecd6b4f544668999edc587fb5d8feb

See more details on using hashes here.

File details

Details for the file onionprobe-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: onionprobe-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 58.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for onionprobe-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d9ec4958876dd681eaac4d82dd41a372a59f82844e65f123bbdde075c24edb6
MD5 0024f218059ada196cc16151f59dbca0
BLAKE2b-256 8fcb8c1c8bd2fa293c36cabeca3b54c71d19b91e3d1dea0309d9f0b0fb9ecc37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page