Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

SSH reverse tunnel daemon

branch: master
README
Tund (tunneling daemon) establishes a reverse SSH tunnel from some publically
accessible computer to your own. In the event of theft or loss, you can log in
to your machine as soon as it connects to the internet.

It's also useful for machines behind a NAT you'd like to have a tunnel to.

You need two computers: the local host (say, your laptop), and the remote host,
which is on the internet. Tund will use SSH forwarding to connect a port on the
remote host to a port on the local host. You can then ssh -p <some-port>
remote.com to access your local host.

First, edit the options in bin/tund.

Install tund and generate a passwordless SSH keypair. I've included an upstart
setup script for you, which should work on Ubuntu.

  local$ sudo bin/setup

Create a user on the remote host
  remote# adduser --disabled-password --shell /bin/false tunnel
  remote# cd ~tunnel
  remote# rm .bash* .profile

On the tunneling host, create .ssh/authorized_keys
  remote# mkdir .ssh
  remote# $VISUAL .ssh/authorized_keys

and paste the public key into that file.

Lock down the user's homedir
  remote# chown -R tunnel:tunnel ~tunnel
  remote# chmod 400 .ssh/authorized_keys
  remote# chmod 500 . .ssh

Confirm that you can establish a tunnel:
  local$ ssh -vgN -i etc/tund/key -R 2222:localhost:22 tunnel@remote.com

You can re-run bin/setup any time to make changes.

I suggest leaving a honeypot account available on your local machine. It will
encourage laptop thiefs to use the machine as-is. When they connect it to the
network, you'll be able to recover it. Conversely, any user capable of running
a privilege escalation attack has already won, when physical access is
available.
Something went wrong with that request. Please try again.