Updated/Added README.md files
This commit is contained in:
		
							parent
							
								
									06539bba8b
								
							
						
					
					
						commit
						f99c80852b
					
				
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1 +1,42 @@
 | 
			
		|||
# TORch: Illuminating the Path to your Node
 | 
			
		||||
 | 
			
		||||
TORch is a solution for creating an SSH-via-Tor backdoor on a remote device as a means of fallback remote management and initial headless device configuration.
 | 
			
		||||
 | 
			
		||||
## Description
 | 
			
		||||
 | 
			
		||||
Since Tor traffic easily crosses NAT boundries, this is a nice solution for 
 | 
			
		||||
* fallback connection to remote devices located on other LANs in the event that the network configuration on the remote side changes and the primary connection / VPN fails
 | 
			
		||||
* the initial discovery and connection to a headless device like a Raspberry Pi on a local network which is configured via DHCP
 | 
			
		||||
 | 
			
		||||
A TORch solution consists of 3 processes:
 | 
			
		||||
* `torch-agent` - Installed on remote machine; responsible for creating Tor hidden service and broadcasting the onion hostname an MQTT broker
 | 
			
		||||
* MQTT broker - Any MQTT broker, reachable via IPv4 or Tor, through TLS or insecure communications
 | 
			
		||||
* `torch-subscriber` - Listens for and handles onion hostname publications
 | 
			
		||||
 | 
			
		||||
## Installation of TORch Agent (Ubuntu)
 | 
			
		||||
 | 
			
		||||
Copy the files to the target device
 | 
			
		||||
* `install-ubuntu2004.sh`
 | 
			
		||||
* `torch-agent.py`
 | 
			
		||||
* `torch.conf`
 | 
			
		||||
* `torch.service`
 | 
			
		||||
 | 
			
		||||
Run the installation script:
 | 
			
		||||
```bash
 | 
			
		||||
vagrant@ubuntu2004:~$ ./install-ubuntu2004.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This will create a local user `torch` and install the TORch agent as a Systemd service named `torch`
 | 
			
		||||
 | 
			
		||||
## Configuration
 | 
			
		||||
 | 
			
		||||
The TORch agent will look for a `torch.conf` configuration in the configuration directory.
 | 
			
		||||
 | 
			
		||||
The configuation directory can be specified by
 | 
			
		||||
* The `TORCH_CONFIG_DIR` environment variable
 | 
			
		||||
* Using the `--config-dir` commandline option
 | 
			
		||||
* Default: `/etc/torch`
 | 
			
		||||
 | 
			
		||||
A fully configured example can be found [here](example/README.md)
 | 
			
		||||
 | 
			
		||||
See the sample [`torch.conf`](torch.conf) file for additional configuration options and details
 | 
			
		||||
							
								
								
									
										45
									
								
								example/README.md
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								example/README.md
									
									
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
# TORch Agent Example
 | 
			
		||||
 | 
			
		||||
The example creates a Vagrant machine configured with TORch Agent
 | 
			
		||||
 | 
			
		||||
## Instructions to Run
 | 
			
		||||
 | 
			
		||||
### Install dependencies
 | 
			
		||||
 | 
			
		||||
* `docker`
 | 
			
		||||
* `mosquitto_sub`
 | 
			
		||||
    * `apt install mosquitto-clients`
 | 
			
		||||
 | 
			
		||||
### Run the Broker
 | 
			
		||||
 | 
			
		||||
Add the following line to your `/etc/hosts` file:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
127.0.0.1    mqtt.example.com
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Run the broker in a terminal window:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
cd example
 | 
			
		||||
./run-broker.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Run the Subscriber
 | 
			
		||||
 | 
			
		||||
In a separate terminal window, run the subscriber:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
cd example
 | 
			
		||||
./run-subscriber.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Run TORch Agent in Vagrant
 | 
			
		||||
 | 
			
		||||
Run the Vagrant box in a third terminal window:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
vagrant up
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You should see that the broker received a connection from the Vagrant box at boot up and the subscriber received the onion hostname.  You can use a local `tor` proxy to connect to the vagrant box using SSH and the onion hostname.
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user