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.4.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.4-py3-none-any.whl (58.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: onionprobe-0.3.4.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.4.tar.gz
Algorithm Hash digest
SHA256 c427d2bad768e7e469ba2db761f1915e1d635bf0936d41ec46f5588541fd1aa8
MD5 9997ff108ec6f4f3ba495ae3be5a2dfc
BLAKE2b-256 6a22f1a15490a232b170e10b018dd847783b2f77f203412d3f4a9dc5c3539f70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: onionprobe-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 58.7 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 42e42656a97d0b218acb2afa2da499b6ec0c294aeed5237d660e47aa8be26b69
MD5 8ec907736d03fd03c8fa27c0983150c7
BLAKE2b-256 50be81333d73a02731d5e1809136e68f1e7301748195ced58876d3f9b176c217

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