Skip to main content

A console utility to bring up new Tor bridges easily

Project description

torspray

A console utility to bring up new Tor nodes easily

Current progress

Works:

  • key generation
  • node management commands
  • file copy
  • command execution on one or all nodes
  • automatic configuration of tor on the node

Works in progress:

  • meaningful statistics
  • ability to compile torspray to a standalone executable
  • password login support

Why?

This tool is meant to empower less tech-savvy users to be able to quickly and effortlessly bring up tor nodes to help out the network in times of crisis.

What do I need?

  • You will need a virtual machine (VM) with Debian 11 at a hosting provider. I use Hetzner.
  • On installation, specify the ssh key that torspray generates. Passwords support doesn't yet work unfortunately.
    • if you don't remember, run torspray showpubkey
  • Once the server is provisioned you can add it to torspray to manage

Bugs

The software is in very early stages if you encounter problems, open a github issue or DM me on twitter @gergely_kalman

Installation

$ pip install torspray

Usage example

initialization:

$ torspray init pleaseuseaproperemailhere@example.com
[+] Initializing torspray directory: /home/synapse/projects/development/torspray/code/.torspray
[+] Generating SSH keys
Basic configuration written, SSH key generated:
##################################################
#        Use this key when creating the VM:      #
##################################################
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDrMjEtbW/rkbf50kkpejiftyc5SLARU/GFaYusWGBqeRdxhlhipgov5bJQ3BTlZP/3GJZZQg7rqGwv4cR3WNQuqSwjgYIGqT1NNjmyNiJxhDkr1RVIhpDnaQ+odsA4hoIFcMq5Y/Ll/ODn8b4jRJ/DuzZ06tPFmKnmHGWh/E/LfcASUpx00Wbzej2Gb5T/PCs1uq/CO7JxlNzzLT+sz4W3vsEZ1w6HSXPrxnNvrQFFsxBj1CsoI9gH3Ncsroc7f6/LXHGTWIXqns0c8cSbWFPw1yIwBPCa51X2hJHRj9XtOS+wvt/2XtWikp5qd8Zq5aa5m4sqG8/iJYcZOG0TyMXhCqjnrRjflj/ryD7ToUmrzx4LKM0fqnIqloR+TX1mWDTmiHj7yNycXxKPUF0wl0id8uMdtnjJW3A4knr2F/cvu1qrqVJeRCb3SZcYfpIazUwsmOeTYGx8JMqHAalt6nucpjXzlppHIHAqp/1eAskTLSOTdWEBLwDScGgS8ERjfRuE0ICLe1oh92iXQPuQyM+CHyN9sF2evzhPTwAmlEmfjxYtTmd9rFxYzq2VTHWuDAuf/IrDmKr9OoD9Imrr9J0wInlj7QOWExryGeRuBqxAvvEoC83iwWq8ogaO86vGHK6ETDQ7hHVX914zlLq3G6cN/yiRBlpCJCUwqvLZdS48Pw== torspray-8b9932c2@home

Adding nodes, VMs might take time to come up, so have to retry:

$ torspray add testnode 65.108.217.166
[+] Adding server 65.108.217.166, password: None
[-] Failed to reach server, try again later

$ torspray add testnode 65.108.217.166
[+] Adding server 65.108.217.166, password: None
We have:
	username root
	hostname debian-2gb-hel1-1

Listing nodes:

$ torspray list
[+] Servers in the DB:
	testnode: {'address': '65.108.217.166', 'hostname': 'testnode'}

Installing tor bridge on node (log was cut short):

$ torspray spray testnode
[+] Spray verifying versions
$ dpkg --print-architecture
amd64
	version: Debian GNU/Linux
	codename: bullseye
	arch: amd64
[+] Spray enabling updates
...
$ systemctl restart tor.service

Testing execute on node 'testnode'

$ torspray node-exec testnode 'hostname'
[+] Execing: hostname
testnode:
debian-2gb-hel1-1

Showing pubkey because I forgot:

$ torspray showpubkey
##################################################
#        Use this key when creating the VM:      #
##################################################
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDrMjEtbW/rkbf50kkpejiftyc5SLARU/GFaYusWGBqeRdxhlhipgov5bJQ3BTlZP/3GJZZQg7rqGwv4cR3WNQuqSwjgYIGqT1NNjmyNiJxhDkr1RVIhpDnaQ+odsA4hoIFcMq5Y/Ll/ODn8b4jRJ/DuzZ06tPFmKnmHGWh/E/LfcASUpx00Wbzej2Gb5T/PCs1uq/CO7JxlNzzLT+sz4W3vsEZ1w6HSXPrxnNvrQFFsxBj1CsoI9gH3Ncsroc7f6/LXHGTWIXqns0c8cSbWFPw1yIwBPCa51X2hJHRj9XtOS+wvt/2XtWikp5qd8Zq5aa5m4sqG8/iJYcZOG0TyMXhCqjnrRjflj/ryD7ToUmrzx4LKM0fqnIqloR+TX1mWDTmiHj7yNycXxKPUF0wl0id8uMdtnjJW3A4knr2F/cvu1qrqVJeRCb3SZcYfpIazUwsmOeTYGx8JMqHAalt6nucpjXzlppHIHAqp/1eAskTLSOTdWEBLwDScGgS8ERjfRuE0ICLe1oh92iXQPuQyM+CHyN9sF2evzhPTwAmlEmfjxYtTmd9rFxYzq2VTHWuDAuf/IrDmKr9OoD9Imrr9J0wInlj7QOWExryGeRuBqxAvvEoC83iwWq8ogaO86vGHK6ETDQ7hHVX914zlLq3G6cN/yiRBlpCJCUwqvLZdS48Pw== torspray-8b9932c2@home

Adding and spraying 2nd node:

$ torspray add testnode2 65.108.150.86
[+] Adding server 65.108.150.86, password: None
We have:
	username root
	hostname debian-2gb-hel1-2

$ torspray spray testnode2
[+] Spray verifying versions
...

Executing 'hostname' on all nodes we know about:

$ torspray cluster-exec 'hostname'
[+] Execing: hostname
testnode:
debian-2gb-hel1-1
testnode2:
debian-2gb-hel1-2

Running netstatus across all machines:

$ torspray netstatus --interval 1
[+] Status every 1s:
torbridge0 RX:      73.83 kbit/s TX:      51.51 kbit/s - total: RX:      55.10 GB TX:      56.79 GB
torbridge1 RX:      29.88 kbit/s TX:      13.26 kbit/s - total: RX:      36.69 GB TX:      37.93 GB
torbridge2 RX:      54.67 kbit/s TX:      20.14 kbit/s - total: RX:     173.84 GB TX:     175.76 GB
torbridge3 RX:     706.39 kbit/s TX:     619.88 kbit/s - total: RX:      80.57 GB TX:      78.51 GB
torbridge4 RX:     352.24 kbit/s TX:     299.38 kbit/s - total: RX:      73.66 GB TX:      72.94 GB
torbridge5 RX:       5.24 kbit/s TX:      10.65 kbit/s - total: RX:     144.82 GB TX:     147.31 GB
torbridge6 RX:       5.24 kbit/s TX:      10.55 kbit/s - total: RX:       5.97 GB TX:       5.86 GB
torbridge7 RX:     136.70 kbit/s TX:      43.91 kbit/s - total: RX:      84.33 GB TX:      87.20 GB
torbridge8 RX:       5.24 kbit/s TX:      10.65 kbit/s - total: RX:       3.87 GB TX:       4.09 GB
torbridge9 RX:       7.20 kbit/s TX:      24.81 kbit/s - total: RX:      10.38 GB TX:      10.69 GB

date: 2022-03-02 00:37:48.537278, delta: 1.17, sleep time: 0.00     TOTAL: RX:     669.23 GB TX:     677.09 GB
==================================================
...

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

torspray-0.1.4.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

torspray-0.1.4-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file torspray-0.1.4.tar.gz.

File metadata

  • Download URL: torspray-0.1.4.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9

File hashes

Hashes for torspray-0.1.4.tar.gz
Algorithm Hash digest
SHA256 2bb9df0ec0a3fbaf7e6dc09fc77c3564122865207fd1f05449046d01b475777e
MD5 33a902bd36dfae15b31c45012920985c
BLAKE2b-256 3b20468f2b290d7a6528beb09513069e1e7573eb5a1daa64c477928640df13ba

See more details on using hashes here.

File details

Details for the file torspray-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: torspray-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9

File hashes

Hashes for torspray-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cb62c9875588d5851b24273fcc6e0671750779fcd8740d56676d12e065de3f2a
MD5 ee2a158e9752beda2cc9ace3cdbbbc7b
BLAKE2b-256 6319f63b7ea2464306e0381b64253269464ff2bf14cf3d5d0e4a832b1e069b1a

See more details on using hashes here.

Supported by

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